示例#1
0
        public Agent(AgentConfiguration configuration)
        {
            this.Configuration = configuration;
            _client            = new TcpClient(Configuration.CsIp, Configuration.CsPort);
            NetworkStream stream = _client.GetStream();

            this._communicator = new SenderReceiverQueueAdapter(new StreamMessageSenderReceiver(stream, new Parser()),
                                                                HandleJoinTimeError);
        }
示例#2
0
        public void TestConstructorThrowsExceptionIfGameStartedNull()
        {
            //given

            var senderReceiverQueueAdapter
                = new SenderReceiverQueueAdapter(
                      new StreamMessageSenderReceiver(
                          new EchoStream(),
                          new Parser()));
            var       strategyMock = new Mock <IStrategy>();
            AgentInfo agentInfo    = new AgentInfo(strategyMock.Object, null);

            //when
            _ = new MessageHandler(senderReceiverQueueAdapter, agentInfo);

            //then
            //AgentInfoNotValidException thrown
        }
示例#3
0
        GetGmAgentConnections()
        {
            Stream agentToGmStream = new EchoStream();
            Stream gmToAgentStream = new EchoStream();
            Stream agentSideStream = new StreamRWJoin(gmToAgentStream, agentToGmStream);
            Stream gmSideStream    = new StreamRWJoin(agentToGmStream, gmToAgentStream);
            var    agentQueueAdapter
                = new SenderReceiverQueueAdapter(
                      new StreamMessageSenderReceiver(
                          agentSideStream,
                          new Parser()));
            var gmQueueAdapter
                = new SenderReceiverQueueAdapter(
                      new StreamMessageSenderReceiver(
                          gmSideStream,
                          new Parser()));

            return(agentQueueAdapter, gmQueueAdapter);
        }
        public void TestCanTransferMessage()
        {
            Stream stream = new EchoStream();

            Message <JoinGameRequest> expected = new Message <JoinGameRequest>
                                                     (new JoinGameRequest {
                TeamId = "Hello"
            });

            SenderReceiverQueueAdapter adapter
                = new SenderReceiverQueueAdapter(
                      new StreamMessageSenderReceiver(stream, new Parser()));

            //when
            adapter.Send(expected);
            Message received = adapter.Take();

            //then
            Assert.AreEqual(expected.MessagePayload.TeamId,
                            ((Message <JoinGameRequest>)received).MessagePayload.TeamId);

            //after
            adapter.Dispose();
        }