示例#1
0
			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"))
			})
		})