Context("when finding the link fails", func() { BeforeEach(func() { netlinker.LinkByNameReturns(nil, errors.New("no link for you")) }) It("returns a meaningful error", func() { err := addressManager.AddAddress("my-link", address) Expect(err).To(MatchError("link by name failed: no link for you")) }) }) It("adds an address to the link", func() { err := addressManager.AddAddress("my-link", address) Expect(err).NotTo(HaveOccurred()) Expect(netlinker.AddrAddCallCount()).To(Equal(1)) actualLink, netlinkAddr := netlinker.AddrAddArgsForCall(0) Expect(actualLink).To(Equal(link)) Expect(netlinkAddr.IPNet).To(Equal(address)) }) Context("when adding the addres fails", func() { BeforeEach(func() { netlinker.AddrAddReturns(errors.New("welp")) }) It("returns the error", func() { err := addressManager.AddAddress("my-link", address) Expect(err).To(MatchError("address add failed: welp")) })