}) }) }) Describe("Containers", func() { It("sends a list request and returns all containers", func() { fakeConnection.WhenListing = func(warden.Properties) ([]string, error) { return []string{"handle-a", "handle-b"}, nil } props := warden.Properties{"foo": "bar"} containers, err := client.Containers(props) Ω(err).ShouldNot(HaveOccurred()) Ω(fakeConnection.ListedProperties()).Should(ContainElement(props)) Ω(containers).Should(HaveLen(2)) Ω(containers[0].Handle()).Should(Equal("handle-a")) Ω(containers[1].Handle()).Should(Equal("handle-b")) }) Context("when there is a connection error", func() { disaster := errors.New("oh no!") BeforeEach(func() { fakeConnection.WhenListing = func(warden.Properties) ([]string, error) { return nil, disaster } })