})

		It("returns a wrapped error", func() {
			err := controller.Del(payload)
			Expect(err).To(MatchError("datastore delete: some-datastore-error"))
		})
	})

	It("releases the IP allocation", func() {
		err := controller.Del(payload)
		Expect(err).NotTo(HaveOccurred())

		Expect(ipAllocator.ReleaseIPCallCount()).To(Equal(1))

		networkID, containerID := ipAllocator.ReleaseIPArgsForCall(0)
		Expect(networkID).To(Equal("some-network-id"))
		Expect(containerID).To(Equal("some-container-id"))
	})

	Context("when releasing the IP fails", func() {
		BeforeEach(func() {
			ipAllocator.ReleaseIPReturns(errors.New("mango"))
		})

		It("returns a wrapped error", func() {
			err := controller.Del(payload)
			Expect(err).To(MatchError("release ip: mango"))
		})
	})
})