disaster := errors.New("oh no!") BeforeEach(func() { fakeConnection.CreateReturns("", disaster) }) It("returns it", func() { _, err := client.Create(garden.ContainerSpec{}) Ω(err).Should(Equal(disaster)) }) }) }) Describe("Containers", func() { It("sends a list request and returns all containers", func() { fakeConnection.ListReturns([]string{"handle-a", "handle-b"}, nil) props := garden.Properties{"foo": "bar"} containers, err := client.Containers(props) Ω(err).ShouldNot(HaveOccurred()) Ω(fakeConnection.ListArgsForCall(0)).Should(Equal(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!")
}) }) Describe("List", func() { properties := garden.Properties{ "A": "B", } var gotHandles []string itRetries(func() error { var err error gotHandles, err = conn.List(properties) return err }, func(err error) { innerConnection.ListReturns([]string{"a", "b"}, err) }, func() int { return innerConnection.ListCallCount() }, func() { It("calls through to garden", func() { Ω(innerConnection.ListCallCount()).Should(Equal(1)) listedProperties := innerConnection.ListArgsForCall(0) Ω(listedProperties).Should(Equal(properties)) }) It("returns the handles", func() { Ω(gotHandles).Should(Equal([]string{"a", "b"})) }) }) })