It("returns the error", func() { _, err := container.Properties() Ω(err).Should(Equal(disaster)) }) }) }) Describe("Property", func() { propertyName := "propertyName" propertyValue := "propertyValue" Context("when getting property succeeds", func() { BeforeEach(func() { fakeConnection.PropertyReturns(propertyValue, nil) }) It("returns the value", func() { result, err := container.Property(propertyName) Ω(err).ShouldNot(HaveOccurred()) Ω(result).Should(Equal(propertyValue)) }) }) Context("when getting property fails", func() { disaster := errors.New("oh no!") BeforeEach(func() { fakeConnection.PropertyReturns("", disaster) })
}) }) }) Describe("Property", func() { handle := "suitcase" property := "dfghjkl" var gotValue string itRetries(func() error { var err error gotValue, err = conn.Property(handle, property) return err }, func(err error) { innerConnection.PropertyReturns("some-value", err) }, func() int { return innerConnection.PropertyCallCount() }, func() { It("calls through to garden", func() { Ω(innerConnection.PropertyCallCount()).Should(Equal(1)) calledHandle, calledProperty := innerConnection.PropertyArgsForCall(0) Ω(calledHandle).Should(Equal(handle)) Ω(calledProperty).Should(Equal(property)) }) It("returns the limits", func() { Ω(gotValue).Should(Equal("some-value")) }) })