Ejemplo n.º 1
0
        public void TestGameLostWithMultiplePlayingPlayer()
        {
            IGame game = CreateGame("game1", 5, 10);
            game.Start(new CancellationTokenSource());
            CountCallTetriNETCallback callback1 = new CountCallTetriNETCallback();
            IClient client1 = CreateClient("client1", callback1);
            game.Join(client1, false);
            CountCallTetriNETCallback callback2 = new CountCallTetriNETCallback();
            IClient client2 = CreateClient("client2", callback2);
            game.Join(client2, false);
            CountCallTetriNETCallback callback3 = new CountCallTetriNETCallback();
            IClient client3 = CreateClient("client3", callback3);
            game.Join(client3, false);
            game.StartGame(client1);
            callback1.Reset();
            callback2.Reset();
            callback3.Reset();

            game.GameLost(client2);
            FlushActionQueue();

            Assert.AreEqual(GameStates.GameStarted, game.State);
            Assert.AreEqual(ClientStates.Playing, client1.State);
            Assert.AreEqual(ClientStates.GameLost, client2.State);
            Assert.AreEqual(ClientStates.Playing, client3.State);
            Assert.AreEqual(1, callback1.GetCallCount("OnPlayerLost"));
            Assert.AreEqual(0, callback2.GetCallCount("OnPlayerLost"));
            Assert.AreEqual(1, callback3.GetCallCount("OnPlayerLost"));
        }
Ejemplo n.º 2
0
        public void TestGameLostWithTwoPlayingPlayers()
        {
            IGame game = CreateGame("game1", 5, 10);
            game.Start(new CancellationTokenSource());
            CountCallTetriNETCallback callback1 = new CountCallTetriNETCallback();
            IClient client1 = CreateClient("client1", callback1);
            game.Join(client1, false);
            CountCallTetriNETCallback callback2 = new CountCallTetriNETCallback();
            IClient client2 = CreateClient("client2", callback2);
            game.Join(client2, false);
            CountCallTetriNETCallback callback3 = new CountCallTetriNETCallback();
            IClient client3 = CreateClient("client3", callback3);
            game.Join(client3, true);
            game.StartGame(client1);
            callback1.Reset();
            callback2.Reset();
            callback3.Reset();

            game.GameLost(client2);
            FlushActionQueue();

            Assert.AreEqual(GameStates.WaitStartGame, game.State);
            Assert.AreEqual(ClientStates.WaitInGame, client1.State);
            Assert.AreEqual(ClientStates.GameLost, client2.State);
            Assert.AreEqual(ClientStates.WaitInGame, client3.State);
            Assert.AreEqual(1, callback1.GetCallCount("OnPlayerLost"));
            Assert.AreEqual(0, callback2.GetCallCount("OnPlayerLost"));
            Assert.AreEqual(1, callback3.GetCallCount("OnPlayerLost"));
            Assert.AreEqual(1, callback1.GetCallCount("OnGameFinished"));
            Assert.AreEqual(1, callback2.GetCallCount("OnGameFinished"));
            Assert.AreEqual(1, callback3.GetCallCount("OnGameFinished"));
            Assert.AreEqual(1, callback1.GetCallCount("OnWinListModified"));
            Assert.AreEqual(1, callback2.GetCallCount("OnWinListModified"));
            Assert.AreEqual(1, callback3.GetCallCount("OnWinListModified"));
            Assert.AreEqual(1, callback1.GetCallCount("OnPlayerWon"));
            Assert.AreEqual(1, callback2.GetCallCount("OnPlayerWon"));
            Assert.AreEqual(1, callback3.GetCallCount("OnPlayerWon"));
            //Assert.AreEqual(client1.Id, callback1.GetCallParameters("OnPlayerWon", 0)[0]);
        }
Ejemplo n.º 3
0
        public void TestLeavePlayingPlayerWhileGameStartedMultiplePlayingPlayerLeft()
        {
            IGame game = CreateGame("game1", 5, 10);
            game.Start(new CancellationTokenSource()); 
            CountCallTetriNETCallback callback1 = new CountCallTetriNETCallback();
            IClient client1 = CreateClient("client1", callback1);
            game.Join(client1, false);
            CountCallTetriNETCallback callback2 = new CountCallTetriNETCallback();
            IClient client2 = CreateClient("client2", callback2);
            game.Join(client2, false);
            CountCallTetriNETCallback callback3 = new CountCallTetriNETCallback();
            IClient client3 = CreateClient("client3", callback3);
            game.Join(client3, false);
            game.StartGame(client1);
            callback1.Reset();
            callback2.Reset();
            callback3.Reset();

            game.Leave(client2);

            Assert.AreEqual(GameStates.GameStarted, game.State);
            Assert.AreEqual(ClientStates.Playing, client1.State);
            Assert.AreEqual(ClientStates.Playing, client3.State);
            Assert.AreEqual(0, callback1.GetCallCount("OnGameFinished"));
            Assert.AreEqual(0, callback2.GetCallCount("OnGameFinished"));
            Assert.AreEqual(0, callback3.GetCallCount("OnGameFinished"));
            Assert.AreEqual(0, callback1.GetCallCount("OnWinListModified"));
            Assert.AreEqual(0, callback2.GetCallCount("OnWinListModified"));
            Assert.AreEqual(0, callback3.GetCallCount("OnWinListModified"));
        }
Ejemplo n.º 4
0
        public void TestGameLostWithOnePlayingPlayer()
        {
            IGame game = CreateGame("game1", 5, 10);
            game.Start(new CancellationTokenSource());
            CountCallTetriNETCallback callback1 = new CountCallTetriNETCallback();
            IClient client1 = CreateClient("client1", callback1);
            game.Join(client1, false);
            game.StartGame(client1);
            callback1.Reset();

            game.GameLost(client1);
            FlushActionQueue();

            Assert.AreEqual(GameStates.WaitStartGame, game.State);
            Assert.AreEqual(ClientStates.GameLost, client1.State);
            Assert.AreEqual(0, callback1.GetCallCount("OnPlayerLost"));
            Assert.AreEqual(1, callback1.GetCallCount("OnGameFinished"));
            Assert.AreEqual(0, callback1.GetCallCount("OnWinListModified"));
        }
Ejemplo n.º 5
0
        public void TestJoinSpectatorWhileGameStarted()
        {
            IGame game = CreateGame("game1", 5, 10);
            game.Start(new CancellationTokenSource()); 
            CountCallTetriNETCallback callback1 = new CountCallTetriNETCallback();
            IClient client1 = CreateClient("client1", callback1);
            game.Join(client1, false);
            CountCallTetriNETCallback callback2 = new CountCallTetriNETCallback();
            IClient client2 = CreateClient("client2", callback2);
            game.Join(client2, false);
            CountCallTetriNETCallback callback3 = new CountCallTetriNETCallback();
            IClient client3 = CreateClient("client3", callback3);
            game.Join(client3, true);
            game.StartGame(client1);
            callback1.Reset();
            callback2.Reset();
            callback3.Reset();

            CountCallTetriNETCallback callback4 = new CountCallTetriNETCallback();
            IClient client4 = CreateClient("client4", callback4);
            game.Join(client4, true);

            Assert.AreEqual(ClientStates.WaitInGame, client4.State);
            Assert.AreEqual(ClientRoles.Spectator, client4.Roles);
            Assert.AreEqual(1, callback1.GetCallCount("OnClientGameJoined"));
            Assert.AreEqual(1, callback2.GetCallCount("OnClientGameJoined"));
            Assert.AreEqual(1, callback3.GetCallCount("OnClientGameJoined"));
            Assert.AreEqual(1, callback4.GetCallCount("OnGameJoined"));
        }