示例#1
0
var _ = Describe("Bridge", func() {
	Describe("#Connect", func() {
		var bridge domain.Bridge
		var client, backend *fakes.FakeConn
		var logger lager.Logger

		BeforeEach(func() {
			logger = lagertest.NewTestLogger("Bridge test")
			backend = &fakes.FakeConn{}
			client = &fakes.FakeConn{}

			clientAddr := &fakes.FakeAddr{}
			backendAddr := &fakes.FakeAddr{}

			client.RemoteAddrReturns(clientAddr)
			backend.RemoteAddrReturns(backendAddr)

			bridge = domain.NewBridge(client, backend, logger)
		})

		Context("When operating normally", func() {

			It("forwards data from the client to backend", func() {
				expectedText := "hello"
				var copiedToBackend string
				clientReadCount := 0
				client.ReadStub = func(p []byte) (int, error) {
					if clientReadCount == 0 {
						copy(p, expectedText)
						clientReadCount++
示例#2
0
			bridge.ConnectStub = func(connectReadyChan, disconnectChan chan interface{}) func() {
				return func() {
					close(connectReadyChan)
					<-disconnectChan
				}
			}(connectReadyChan, disconnectChan)

			bridges.CreateReturns(bridge)

			clientConn = &fakes.FakeConn{}
			backendConn = &fakes.FakeConn{}

			clientAddr := &fakes.FakeAddr{}
			backendAddr := &fakes.FakeAddr{}

			clientConn.RemoteAddrReturns(clientAddr)
			backendConn.RemoteAddrReturns(backendAddr)

			dialErr = nil
			dialedAddress = ""

			domain.Dialer = func(protocol, address string) (net.Conn, error) {
				dialedProtocol = protocol
				dialedAddress = address
				return backendConn, dialErr
			}
		})

		AfterEach(func() {
			domain.Dialer = net.Dial
		})