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); }
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); }
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); }
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); }
public void TestShamPieceCheck() { ShamPiece piece = new ShamPiece(); Assert.True(piece.CheckForSham()); }