context.LinkFactoryReturns(linkFactory) linkExists = conditions.LinkExists{ Name: "my-interface", } }) Context("when the link exists", func() { BeforeEach(func() { linkFactory.ExistsReturns(true) }) It("returns true", func() { Expect(linkExists.Satisfied(context)).To(BeTrue()) Expect(linkFactory.ExistsCallCount()).To(Equal(1)) Expect(linkFactory.ExistsArgsForCall(0)).To(Equal("my-interface")) }) }) Context("when the link does not exist", func() { BeforeEach(func() { linkFactory.ExistsReturns(false) }) It("returns false", func() { Expect(linkExists.Satisfied(context)).To(BeFalse()) Expect(linkFactory.ExistsCallCount()).To(Equal(1)) Expect(linkFactory.ExistsArgsForCall(0)).To(Equal("my-interface")) }) })
It("wraps and returns the error", func() { err := cleanupSandboxCommand.Execute(context) Expect(err).To(MatchError("sandbox destroy: potato")) }) }) Context("when there is an error destroying vxlan device", func() { BeforeEach(func() { linkFactory.DeleteLinkByNameReturns(errors.New("some-error")) }) It("checks if the link still exists", func() { cleanupSandboxCommand.Execute(context) Expect(linkFactory.ExistsCallCount()).To(Equal(1)) linkName := linkFactory.ExistsArgsForCall(0) Expect(linkName).To(Equal(cleanupSandboxCommand.VxlanDeviceName)) }) Context("when the link no longer exists", func() { BeforeEach(func() { linkFactory.ExistsReturns(false) }) It("returns without an error", func() { err := cleanupSandboxCommand.Execute(context) Expect(err).NotTo(HaveOccurred()) }) }) Context("when the link still exists", func() {