コード例 #1
0
        public async Task TestAcceptMessagePickAnswerShouldChangeDistToPieceAndPickPiece()
        {
            EmptyAnswerPayload pickPayload       = new EmptyAnswerPayload();
            Message            pickAnswerMessage = new Message(MessageID.PickAnswer, agentID, pickPayload);
            Message            startMessage      = CreateStartMessage();

            BufferBlock <Message> inputBuffer = new BufferBlock <Message>();

            inputBuffer.Post(startMessage);
            inputBuffer.Post(pickAnswerMessage);

            PlayerConfiguration configuration = GenerateSampleConfiguration();
            var player = new Models.Player(configuration, inputBuffer, new TcpSocketClient <Message, Message>(logger), logger);

            // Act
            bool expectedHasPieceValue = true;
            var  expectedDistance      = int.MaxValue;

            await player.AcceptMessage(CancellationToken.None);

            await player.AcceptMessage(CancellationToken.None);

            var realHasPieceValue      = player.HasPiece;
            var realDistToClosestPiece = player.Board[player.Position.y, player.Position.x].DistToPiece;

            // Assert
            Assert.Equal(expectedHasPieceValue, realHasPieceValue);
            Assert.Equal(expectedDistance, realDistToClosestPiece);
        }
コード例 #2
0
        public async Task TestAcceptMessageDestructionAnswerShouldDestroyHoldingPiece()
        {
            // Arrange
            EmptyAnswerPayload destructionPayload = new EmptyAnswerPayload();
            Message            destructionMessage = new Message(MessageID.DestructionAnswer, agentID, destructionPayload);

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

            BufferBlock <Message> inputBuffer = new BufferBlock <Message>();

            inputBuffer.Post(startMessage);
            inputBuffer.Post(pickMessage);
            inputBuffer.Post(destructionMessage);

            PlayerConfiguration configuration = GenerateSampleConfiguration();
            var player = new Player.Models.Player(configuration, inputBuffer, new TcpSocketClient <Message, Message>(logger), logger);

            // Act
            bool expectedHasPieceValue = false;

            await player.AcceptMessage(CancellationToken.None);

            await player.AcceptMessage(CancellationToken.None);

            await player.AcceptMessage(CancellationToken.None);

            bool realHasPieceValue        = player.HasPiece;
            bool?realIsHeldPieceShamValue = player.IsHeldPieceSham;

            // Assert
            Assert.Equal(expectedHasPieceValue, realHasPieceValue);
            Assert.Null(realIsHeldPieceShamValue);
        }