fakeNetworkPool.RemoveError = disaster }) It("returns the error and releases the uid", func() { _, err := pool.Restore(snapshot) Expect(err).To(Equal(disaster)) Expect(fakeUIDPool.Released).To(ContainElement(uint32(10000))) }) }) Context("when removing a port from the pool fails", func() { disaster := errors.New("oh no!") JustBeforeEach(func() { fakePortPool.RemoveError = disaster }) It("returns the error and releases the uid, network, and all ports", func() { _, err := pool.Restore(snapshot) Expect(err).To(Equal(disaster)) Expect(fakeUIDPool.Released).To(ContainElement(uint32(10000))) Expect(fakeNetworkPool.Released).To(ContainElement(restoredNetwork.String())) Expect(fakePortPool.Released).To(ContainElement(uint32(61001))) Expect(fakePortPool.Released).To(ContainElement(uint32(61002))) Expect(fakePortPool.Released).To(ContainElement(uint32(61003))) }) }) })