Expect(linkName).To(Equal("dns0")) }) It("sets the address on the dummy device in the sandbox namespace", func() { ns.ExecuteStub = func(callback func(*os.File) error) error { Expect(addressManager.AddAddressCallCount()).To(Equal(0)) err := callback(nil) Expect(addressManager.AddAddressCallCount()).To(Equal(1)) return err } err := startDNS.Execute(context) Expect(err).NotTo(HaveOccurred()) Expect(addressManager.AddAddressCallCount()).To(Equal(1)) ifName, address := addressManager.AddAddressArgsForCall(0) Expect(ifName).To(Equal("dns0")) Expect(address.IP.String()).To(Equal("10.10.10.10")) }) It("ups the dummy device in the sandbox namespace", func() { ns.ExecuteStub = func(callback func(*os.File) error) error { Expect(linkFactory.SetUpCallCount()).To(Equal(0)) err := callback(nil) Expect(linkFactory.SetUpCallCount()).To(Equal(1)) return err } err := startDNS.Execute(context) Expect(err).NotTo(HaveOccurred())
addAddress = commands.AddAddress{ InterfaceName: "my-interface", Address: net.IPNet{ IP: net.ParseIP("192.168.1.1"), Mask: net.CIDRMask(24, 32), }, } }) It("adds the address to the interface", func() { err := addAddress.Execute(context) Expect(err).NotTo(HaveOccurred()) Expect(addressManager.AddAddressCallCount()).To(Equal(1)) interfaceName, address := addressManager.AddAddressArgsForCall(0) Expect(interfaceName).To(Equal("my-interface")) Expect(address.String()).To(Equal("192.168.1.1/24")) }) Context("when adding the address fails", func() { BeforeEach(func() { addressManager.AddAddressReturns(errors.New("no address for you")) }) It("wraps and propagates the error", func() { err := addAddress.Execute(context) Expect(err).To(MatchError("add address: no address for you")) }) })