Пример #1
0
        public async Task TestCheckHoldingAsync()
        {
            var conf         = GenerateConfiguration();
            var socketClient = GenerateSocketClient();
            var player       = GenerateGMPlayer(conf, socketClient);
            var piece        = new ShamPiece();
            var field        = new TaskField(0, 0);

            Assert.True(field.MoveHere(player));
            Assert.True(player.Holding is null);

            // Act
            await player.CheckHoldingAsync(CancellationToken.None);

            Assert.True(player.Holding is null);
            Assert.Null(prevSended);

            await Task.Delay(conf.CheckForShamPenalty * 2);

            player.Holding = piece;
            lastSended     = null;
            await player.CheckHoldingAsync(CancellationToken.None);

            Assert.Equal(MessageID.CheckAnswer, lastSended.MessageID);
        }
Пример #2
0
        public async Task TestPickAsync()
        {
            var conf         = GenerateConfiguration();
            var socketClient = GenerateSocketClient();
            var player       = GenerateGMPlayer(conf, socketClient);
            var piece        = new ShamPiece();
            var field        = new TaskField(0, 0);

            Assert.True(field.MoveHere(player));
            Assert.True(player.Holding is null);

            // Act
            bool picked = await player.PickAsync(CancellationToken.None);

            Assert.False(picked);
            Assert.True(player.Holding is null);
            Assert.Equal(MessageID.PickError, lastSended.MessageID);
            var payload = (PickErrorPayload)lastSended.Payload;

            Assert.Equal(PickError.NothingThere, payload.ErrorSubtype);
            Assert.Null(prevSended);

            // delay
            await Task.Delay(conf.PickupPenalty * 2);

            field.Put(piece);
            lastSended = null;
            picked     = await player.PickAsync(CancellationToken.None);

            Assert.True(picked);
            Assert.Equal(piece, player.Holding);
            Assert.Equal(MessageID.PickAnswer, lastSended.MessageID);

            // delay
            await Task.Delay(conf.PickupPenalty * 2);

            lastSended = null;
            picked     = await player.PickAsync(CancellationToken.None);

            Assert.False(picked);
            Assert.Equal(piece, player.Holding);
            Assert.Equal(MessageID.PickError, lastSended.MessageID);
            payload = (PickErrorPayload)lastSended.Payload;
            Assert.Equal(PickError.Other, payload.ErrorSubtype);

            // delay
            await Task.Delay(conf.PickupPenalty * 2);

            var secondPiece = new NormalPiece();

            field.Put(secondPiece);
            lastSended = null;
            picked     = await player.PickAsync(CancellationToken.None);

            Assert.False(picked);
            Assert.Equal(piece, player.Holding);
            Assert.Equal(MessageID.PickError, lastSended.MessageID);
            payload = (PickErrorPayload)lastSended.Payload;
            Assert.Equal(PickError.Other, payload.ErrorSubtype);
        }
Пример #3
0
        public async Task TestDestroyAsync()
        {
            var conf         = GenerateConfiguration();
            var socketClient = GenerateSocketClient();
            var player       = GenerateGMPlayer(conf, socketClient);
            var piece        = new ShamPiece();

            player.Holding = piece;
            var field = new TaskField(0, 0);

            Assert.True(field.MoveHere(player));

            // Act
            bool detroyed = await player.DestroyHoldingAsync(CancellationToken.None);

            Assert.True(detroyed);
            Assert.True(player.Holding is null);
            Assert.Equal(MessageID.DestructionAnswer, lastSended.MessageID);
            Assert.Null(prevSended);

            // delay
            await Task.Delay(conf.DestroyPenalty * 2);

            lastSended = null;
            detroyed   = await player.DestroyHoldingAsync(CancellationToken.None);

            Assert.False(detroyed);
        }
Пример #4
0
        public void TestShamPiecePut()
        {
            int          x      = 3;
            int          y      = 4;
            ShamPiece    piece  = new ShamPiece();
            NonGoalField field  = new NonGoalField(x, y);
            bool         result = field.Put(piece).putEvent == PutEvent.ShamOnGoalArea ? true : false;

            Assert.True(result);
        }
Пример #5
0
        public void TestShamPieceCheck()
        {
            ShamPiece piece = new ShamPiece();

            Assert.True(piece.CheckForSham());
        }