58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package aghnet
|
|
|
|
import (
|
|
"net"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestValidateHardwareAddress(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
wantErrMsg string
|
|
in net.HardwareAddr
|
|
}{{
|
|
name: "success_eui_48",
|
|
wantErrMsg: "",
|
|
in: net.HardwareAddr{0x00, 0x01, 0x02, 0x03, 0x04, 0x05},
|
|
}, {
|
|
name: "success_eui_64",
|
|
wantErrMsg: "",
|
|
in: net.HardwareAddr{0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07},
|
|
}, {
|
|
name: "success_infiniband",
|
|
wantErrMsg: "",
|
|
in: net.HardwareAddr{
|
|
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
|
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
|
0x10, 0x11, 0x12, 0x13,
|
|
},
|
|
}, {
|
|
name: "error_nil",
|
|
wantErrMsg: `validating hardware address "": address is empty`,
|
|
in: nil,
|
|
}, {
|
|
name: "error_empty",
|
|
wantErrMsg: `validating hardware address "": address is empty`,
|
|
in: net.HardwareAddr{},
|
|
}, {
|
|
name: "error_bad",
|
|
wantErrMsg: `validating hardware address "00:01:02:03": bad len: 4`,
|
|
in: net.HardwareAddr{0x00, 0x01, 0x02, 0x03},
|
|
}}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
err := ValidateHardwareAddress(tc.in)
|
|
if tc.wantErrMsg == "" {
|
|
assert.NoError(t, err)
|
|
} else {
|
|
require.Error(t, err)
|
|
assert.Equal(t, tc.wantErrMsg, err.Error())
|
|
}
|
|
})
|
|
}
|
|
}
|