var ifaceName string if _, err := gonet.InterfaceByName("en0"); err == nil { ifaceName = "en0" } else if _, err := gonet.InterfaceByName("eth0"); err == nil { ifaceName = "eth0" } else { panic("Not sure which interface name to use: en0 and eth0 are not found") } routesSearcher.SearchRoutesRoutes = []Route{ Route{ Destination: "fake-route1-dest", Gateway: "fake-route1-gateway", InterfaceName: "fake-route1-iface", }, Route{ Destination: "0.0.0.0", Gateway: "fake-route2-gateway", InterfaceName: ifaceName, }, } network, err := resolver.GetDefaultNetwork() Expect(err).ToNot(HaveOccurred()) ip := gonet.ParseIP(network.IP) Expect(ip).ToNot(BeNil()) Expect(ip).ToNot(Equal(gonet.ParseIP("0.0.0.0"))) netmask := gonet.ParseIP(network.Netmask) Expect(netmask).ToNot(BeNil())
BeforeEach(func() { routesSearcher = &fakenet.FakeRoutesSearcher{} ipResolver = &fakeip.FakeIPResolver{} resolver = NewDefaultNetworkResolver(routesSearcher, ipResolver) }) Describe("Resolve", func() { Context("when default route is found", func() { BeforeEach(func() { routesSearcher.SearchRoutesRoutes = []Route{ Route{ // non-default route Destination: "non-default-route1-dest", Gateway: "non-default-route1-gateway", InterfaceName: "non-default-route1-iface", }, Route{ // route with default destination Destination: "0.0.0.0", Gateway: "fake-gateway", InterfaceName: "fake-interface-name", }, } }) Context("when primary IPv4 exists for the found route", func() { BeforeEach(func() { ipResolver.GetPrimaryIPv4IPNet = &gonet.IPNet{ IP: gonet.ParseIP("127.0.0.1"), Mask: gonet.CIDRMask(16, 32), } })