summaryrefslogtreecommitdiffhomepage
path: root/dhcpv4/modifiers_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpv4/modifiers_test.go')
-rw-r--r--dhcpv4/modifiers_test.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/dhcpv4/modifiers_test.go b/dhcpv4/modifiers_test.go
index ce4ff38..f50e40b 100644
--- a/dhcpv4/modifiers_test.go
+++ b/dhcpv4/modifiers_test.go
@@ -136,3 +136,56 @@ func TestWithRelay(t *testing.T) {
require.Equal(t, ip, d.GatewayIPAddr())
require.Equal(t, uint8(1), d.HopCount())
}
+
+func TestWithNetmask(t *testing.T) {
+ d := &DHCPv4{}
+ d = WithNetmask(net.IPv4Mask(255, 255, 255, 0))(d)
+ require.Equal(t, 1, len(d.options))
+ require.Equal(t, OptionSubnetMask, d.options[0].Code())
+ osm := d.options[0].(*OptSubnetMask)
+ require.Equal(t, net.IPv4Mask(255, 255, 255, 0), osm.SubnetMask)
+}
+
+func TestWithLeaseTime(t *testing.T) {
+ d := &DHCPv4{}
+ d = WithLeaseTime(uint32(3600))(d)
+ require.Equal(t, 1, len(d.options))
+ require.Equal(t, OptionIPAddressLeaseTime, d.options[0].Code())
+ olt := d.options[0].(*OptIPAddressLeaseTime)
+ require.Equal(t, uint32(3600), olt.LeaseTime)
+}
+
+func TestWithDNS(t *testing.T) {
+ d := &DHCPv4{}
+ d = WithDNS(net.ParseIP("10.0.0.1"), net.ParseIP("10.0.0.2"))(d)
+ require.Equal(t, 1, len(d.options))
+ require.Equal(t, OptionDomainNameServer, d.options[0].Code())
+ olt := d.options[0].(*OptDomainNameServer)
+ require.Equal(t, 2, len(olt.NameServers))
+ require.Equal(t, net.ParseIP("10.0.0.1"), olt.NameServers[0])
+ require.Equal(t, net.ParseIP("10.0.0.2"), olt.NameServers[1])
+ require.NotEqual(t, net.ParseIP("10.0.0.1"), olt.NameServers[1])
+}
+
+func TestWithDomainSearchList(t *testing.T) {
+ d := &DHCPv4{}
+ d = WithDomainSearchList("slackware.it", "dhcp.slackware.it")(d)
+ require.Equal(t, 1, len(d.options))
+ osl := d.options[0].(*OptDomainSearch)
+ require.Equal(t, OptionDNSDomainSearchList, osl.Code())
+ require.NotNil(t, osl.DomainSearch)
+ require.Equal(t, 2, len(osl.DomainSearch.Labels))
+ require.Equal(t, "slackware.it", osl.DomainSearch.Labels[0])
+ require.Equal(t, "dhcp.slackware.it", osl.DomainSearch.Labels[1])
+}
+
+func TestWithRouter(t *testing.T) {
+ d := &DHCPv4{}
+ rtr := net.ParseIP("10.0.0.254")
+ d = WithRouter(rtr)(d)
+ require.Equal(t, 1, len(d.options))
+ ortr := d.options[0].(*OptRouter)
+ require.Equal(t, OptionRouter, ortr.Code())
+ require.Equal(t, 1, len(ortr.Routers))
+ require.Equal(t, rtr, ortr.Routers[0])
+}