示例#1
0
			Ω(attachedIO).Should(Equal(processIO))

			Ω(process.ID()).Should(Equal(uint32(42)))

			status, err := process.Wait()
			Ω(err).ShouldNot(HaveOccurred())
			Ω(status).Should(Equal(123))

			Eventually(stdout).Should(gbytes.Say("stdout data"))
			Eventually(stderr).Should(gbytes.Say("stderr data"))
		})
	})

	Describe("NetIn", func() {
		It("sends a net in request", func() {
			fakeConnection.NetInReturns(111, 222, nil)

			hostPort, containerPort, err := container.NetIn(123, 456)
			Ω(err).ShouldNot(HaveOccurred())
			Ω(hostPort).Should(Equal(uint32(111)))
			Ω(containerPort).Should(Equal(uint32(222)))

			h, hp, cp := fakeConnection.NetInArgsForCall(0)
			Ω(h).Should(Equal("some-handle"))
			Ω(hp).Should(Equal(uint32(123)))
			Ω(cp).Should(Equal(uint32(456)))
		})

		Context("when the request fails", func() {
			disaster := errors.New("oh no!")
		})
	})

	Describe("NetIn", func() {
		var hostPort uint32 = 23456
		var containerPort uint32 = 34567

		var gotHostPort uint32
		var gotContainerPort uint32

		itRetries(func() error {
			var err error
			gotHostPort, gotContainerPort, err = conn.NetIn("la-contineur", 1, 2)
			return err
		}, func(err error) {
			innerConnection.NetInReturns(hostPort, containerPort, err)
		}, func() int {
			return innerConnection.NetInCallCount()
		}, func() {
			It("calls through to garden", func() {
				Ω(innerConnection.NetInCallCount()).Should(Equal(1))

				handle, hostPort, containerPort := innerConnection.NetInArgsForCall(0)
				Ω(handle).Should(Equal("la-contineur"))
				Ω(hostPort).Should(Equal(uint32(1)))
				Ω(containerPort).Should(Equal(uint32(2)))
			})

			It("returns the ports", func() {
				Ω(gotHostPort).Should(Equal(hostPort))
				Ω(gotContainerPort).Should(Equal(containerPort))