コード例 #1
0
        public async Task TestAcceptMessagePutAnswerShouldChangeHasPieceValue()
        {
            // Arrange
            PlayerConfiguration              configuration = GenerateSampleConfiguration();
            BufferBlock <Message>            inputBuffer   = new BufferBlock <Message>();
            ISocketClient <Message, Message> client        = GenerateSocketClient();
            var player = new Models.Player(configuration, inputBuffer, client, logger);

            Message messageStart = CreateStartMessage();

            inputBuffer.Post(messageStart);
            await player.AcceptMessage(CancellationToken.None);

            Message pickMessage = new Message(MessageID.PickAnswer, agentID, new EmptyAnswerPayload());

            inputBuffer.Post(pickMessage);
            await player.AcceptMessage(CancellationToken.None);

            PutAnswerPayload payload = new PutAnswerPayload()
            {
                PutEvent = PutEvent.NormalOnGoalField,
            };
            Message putAnswer = new Message(MessageID.PutAnswer, agentID, payload);

            // Act
            inputBuffer.Post(putAnswer);
            await player.AcceptMessage(CancellationToken.None);

            // Assert
            bool hasPiece = player.HasPiece;

            Assert.False(hasPiece);
        }
コード例 #2
0
        public async Task TestAcceptMessagePutAnswerShouldMarkFields()
        {
            // Arrange
            PlayerConfiguration              configuration = GenerateSampleConfiguration();
            BufferBlock <Message>            inputBuffer   = new BufferBlock <Message>();
            ISocketClient <Message, Message> client        = GenerateSocketClient();
            var player = new Models.Player(configuration, inputBuffer, client, logger);

            Message messageStart = CreateStartMessage();

            inputBuffer.Post(messageStart);
            await player.AcceptMessage(CancellationToken.None);

            PutAnswerPayload payload = new PutAnswerPayload()
            {
                PutEvent = PutEvent.NormalOnGoalField,
            };
            Message putAnswer = new Message(MessageID.PutAnswer, agentID, payload);

            // Act
            inputBuffer.Post(putAnswer);
            await player.AcceptMessage(CancellationToken.None);

            // Assert
            GoalInfo actualGoalInfo = player.Board[player.Position.y, player.Position.x].GoalInfo;

            Assert.Equal(GoalInfo.DiscoveredGoal, actualGoalInfo);
        }