diff options
author | Christopher Koch <c@chrisko.ch> | 2019-01-15 20:55:06 +0000 |
---|---|---|
committer | Chris K <c@chrisko.ch> | 2019-01-19 14:44:00 -0800 |
commit | feb8958aff848a6d7363fea2e29a2ac071685055 (patch) | |
tree | 768aee371b4b7a1af1aba5691e97b7970d5c560d /dhcpv4/option_string_test.go | |
parent | fe6f307df5d78a54ddd4a56a275043317148fe5a (diff) |
dhcpv4: consolidate string options into one file.
Diffstat (limited to 'dhcpv4/option_string_test.go')
-rw-r--r-- | dhcpv4/option_string_test.go | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/dhcpv4/option_string_test.go b/dhcpv4/option_string_test.go new file mode 100644 index 0000000..0704f31 --- /dev/null +++ b/dhcpv4/option_string_test.go @@ -0,0 +1,102 @@ +package dhcpv4 + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestOptDomainName(t *testing.T) { + o := OptDomainName{DomainName: "foo"} + require.Equal(t, OptionDomainName, o.Code(), "Code") + require.Equal(t, []byte{'f', 'o', 'o'}, o.ToBytes(), "ToBytes") + require.Equal(t, "Domain Name -> foo", o.String()) +} + +func TestParseOptDomainName(t *testing.T) { + data := []byte{'t', 'e', 's', 't'} + o, err := ParseOptDomainName(data) + require.NoError(t, err) + require.Equal(t, &OptDomainName{DomainName: "test"}, o) +} + +func TestOptHostName(t *testing.T) { + o := OptHostName{HostName: "foo"} + require.Equal(t, OptionHostName, o.Code(), "Code") + require.Equal(t, []byte{'f', 'o', 'o'}, o.ToBytes(), "ToBytes") + require.Equal(t, "Host Name -> foo", o.String()) +} + +func TestParseOptHostName(t *testing.T) { + data := []byte{'t', 'e', 's', 't'} + o, err := ParseOptHostName(data) + require.NoError(t, err) + require.Equal(t, &OptHostName{HostName: "test"}, o) +} + +func TestOptRootPath(t *testing.T) { + o := OptRootPath{Path: "/foo/bar/baz"} + require.Equal(t, OptionRootPath, o.Code(), "Code") + wantBytes := []byte{ + '/', 'f', 'o', 'o', '/', 'b', 'a', 'r', '/', 'b', 'a', 'z', + } + require.Equal(t, wantBytes, o.ToBytes(), "ToBytes") + require.Equal(t, "Root Path -> /foo/bar/baz", o.String()) +} + +func TestParseOptRootPath(t *testing.T) { + data := []byte{byte(OptionRootPath), 4, '/', 'f', 'o', 'o'} + o, err := ParseOptRootPath(data[2:]) + require.NoError(t, err) + require.Equal(t, &OptRootPath{Path: "/foo"}, o) +} + +func TestOptBootfileName(t *testing.T) { + opt := OptBootfileName{ + BootfileName: "linuxboot", + } + require.Equal(t, OptionBootfileName, opt.Code()) + require.Equal(t, []byte{'l', 'i', 'n', 'u', 'x', 'b', 'o', 'o', 't'}, opt.ToBytes()) + require.Equal(t, "Bootfile Name -> linuxboot", opt.String()) +} + +func TestParseOptBootfileName(t *testing.T) { + expected := []byte{ + 'l', 'i', 'n', 'u', 'x', 'b', 'o', 'o', 't', + } + opt, err := ParseOptBootfileName(expected) + require.NoError(t, err) + require.Equal(t, "linuxboot", opt.BootfileName) +} + +func TestOptTFTPServer(t *testing.T) { + opt := OptTFTPServerName{ + TFTPServerName: "linuxboot", + } + require.Equal(t, OptionTFTPServerName, opt.Code()) + require.Equal(t, []byte("linuxboot"), opt.ToBytes()) + require.Equal(t, "TFTP Server Name -> linuxboot", opt.String()) +} + +func TestParseOptTFTPServerName(t *testing.T) { + expected := []byte{ + 'l', 'i', 'n', 'u', 'x', 'b', 'o', 'o', 't', + } + opt, err := ParseOptTFTPServerName(expected) + require.NoError(t, err) + require.Equal(t, "linuxboot", string(opt.TFTPServerName)) +} + +func TestOptClassIdentifier(t *testing.T) { + o := OptClassIdentifier{Identifier: "foo"} + require.Equal(t, OptionClassIdentifier, o.Code(), "Code") + require.Equal(t, []byte("foo"), o.ToBytes(), "ToBytes") + require.Equal(t, "Class Identifier -> foo", o.String()) +} + +func TestParseOptClassIdentifier(t *testing.T) { + data := []byte("test") + o, err := ParseOptClassIdentifier(data) + require.NoError(t, err) + require.Equal(t, &OptClassIdentifier{Identifier: "test"}, o) +} |