88 "github.com/stretchr/testify/assert"
99)
1010
11- const stdOutOneHostOnlyNetwork = `Name: vboxnet0
11+ const (
12+ stdOutOneHostOnlyNetwork = `
13+ Name: vboxnet0
1214GUID: 786f6276-656e-4074-8000-0a0027000000
1315DHCP: Disabled
1416IPAddress: 192.168.99.1
@@ -21,7 +23,8 @@ Status: Up
2123VBoxNetworkName: HostInterfaceNetworking-vboxnet0
2224
2325`
24- const stdOutTwoHostOnlyNetwork = `Name: vboxnet0
26+ stdOutTwoHostOnlyNetwork = `
27+ Name: vboxnet0
2528GUID: 786f6276-656e-4074-8000-0a0027000000
2629DHCP: Disabled
2730IPAddress: 192.168.99.1
@@ -44,8 +47,23 @@ HardwareAddress: 0a:00:27:00:00:01
4447MediumType: Ethernet
4548Status: Up
4649VBoxNetworkName: HostInterfaceNetworking-vboxnet1
47-
4850`
51+ stdOutListTwoDHCPServers = `
52+ NetworkName: HostInterfaceNetworking-vboxnet0
53+ IP: 192.168.99.6
54+ NetworkMask: 255.255.255.0
55+ lowerIPAddress: 192.168.99.100
56+ upperIPAddress: 192.168.99.254
57+ Enabled: Yes
58+
59+ NetworkName: HostInterfaceNetworking-vboxnet1
60+ IP: 192.168.99.7
61+ NetworkMask: 255.255.255.0
62+ lowerIPAddress: 192.168.99.100
63+ upperIPAddress: 192.168.99.254
64+ Enabled: No
65+ `
66+ )
4967
5068// Tests that when we have a host only network which matches our expectations,
5169// it gets returned correctly.
@@ -223,3 +241,33 @@ func TestFailWithDuplicateHostOnlyNetworks(t *testing.T) {
223241 assert .Nil (t , net )
224242 assert .Equal (t , errDuplicateHostOnlyInterfaceNetworks , err )
225243}
244+
245+ func TestGetDHCPServers (t * testing.T ) {
246+ vbox := & VBoxManagerMock {
247+ args : "list dhcpservers" ,
248+ stdOut : stdOutListTwoDHCPServers ,
249+ }
250+
251+ servers , err := getDHCPServers (vbox )
252+
253+ assert .Equal (t , 2 , len (servers ))
254+ assert .NoError (t , err )
255+
256+ server , present := servers ["HostInterfaceNetworking-vboxnet0" ]
257+ assert .True (t , present )
258+ assert .Equal (t , "HostInterfaceNetworking-vboxnet0" , server .NetworkName )
259+ assert .Equal (t , "192.168.99.6" , server .IPv4 .IP .String ())
260+ assert .Equal (t , "192.168.99.100" , server .LowerIP .String ())
261+ assert .Equal (t , "192.168.99.254" , server .UpperIP .String ())
262+ assert .Equal (t , "ffffff00" , server .IPv4 .Mask .String ())
263+ assert .True (t , server .Enabled )
264+
265+ server , present = servers ["HostInterfaceNetworking-vboxnet1" ]
266+ assert .True (t , present )
267+ assert .Equal (t , "HostInterfaceNetworking-vboxnet1" , server .NetworkName )
268+ assert .Equal (t , "192.168.99.7" , server .IPv4 .IP .String ())
269+ assert .Equal (t , "192.168.99.100" , server .LowerIP .String ())
270+ assert .Equal (t , "192.168.99.254" , server .UpperIP .String ())
271+ assert .Equal (t , "ffffff00" , server .IPv4 .Mask .String ())
272+ assert .False (t , server .Enabled )
273+ }
0 commit comments