示例#1
0
        public void TestResetWinListAreOnPublishServerMessageAndOnWinListModifiedCalled()
        {
            IServer server = CreateServerWithHost();

            server.StartServer();
            CountCallTetriNETCallback playerCallback1 = new CountCallTetriNETCallback();
            CountCallTetriNETCallback playerCallback2 = new CountCallTetriNETCallback();
            IPlayer player1 = _factory.CreatePlayer(0, "player1", playerCallback1);
            IPlayer player2 = _factory.CreatePlayer(1, "player2", playerCallback2);
            CountCallTetriNETCallback spectatorCallback1 = new CountCallTetriNETCallback();
            CountCallTetriNETCallback spectatorCallback2 = new CountCallTetriNETCallback();
            ISpectator spectator1 = _factory.CreateSpectator(0, "spectator1", spectatorCallback1);
            ISpectator spectator2 = _factory.CreateSpectator(1, "spectator2", spectatorCallback2);

            _host.PlayerManager.Add(player1);
            _host.PlayerManager.Add(player2);
            _host.SpectatorManager.Add(spectator1);
            _host.SpectatorManager.Add(spectator2);
            server.StartGame();
            _host.GameLost(player1.Callback); // player has lost
            _actionQueue.Process();           // --> stop game because only one alive player left --> gene

            server.ResetWinList();

            Assert.AreEqual(server.WinList.Count, 0);
            Assert.AreEqual(playerCallback1.GetCallCount("OnPublishServerMessage"), 1);
            Assert.AreEqual(playerCallback2.GetCallCount("OnPublishServerMessage"), 1);
            Assert.AreEqual(playerCallback1.GetCallCount("OnWinListModified"), 2);
            Assert.AreEqual(playerCallback2.GetCallCount("OnWinListModified"), 2);
        }
示例#2
0
        public void TestAddSamePlayerCallback()
        {
            ITetriNETCallback callback      = new CountCallTetriNETCallback();
            IPlayerManager    playerManager = CreatePlayerManager(5);

            playerManager.Add(new Player(0, "player1", callback));

            bool inserted = playerManager.Add(new Player(1, "player2", callback));

            Assert.AreEqual(playerManager.PlayerCount, 1);
            Assert.IsFalse(inserted);
        }
示例#3
0
        public void TestStopServerCallsOnServerStopped()
        {
            IServer server = CreateServerWithHost();

            server.StartServer();
            CountCallTetriNETCallback callback = new CountCallTetriNETCallback();

            _host.PlayerManager.Add(_factory.CreatePlayer(0, "player1", callback));

            server.StopServer();

            Assert.AreEqual(callback.GetCallCount("OnServerStopped"), 1);
        }
示例#4
0
        public void TestHostPlayerRegisteredNotCalledIfErrorOnRegisterPlayer()
        {
            IHost host  = CreateHost();
            int   count = 0;

            host.HostPlayerRegistered += (player, id) => count++;
            CountCallTetriNETCallback callback1 = new CountCallTetriNETCallback();
            CountCallTetriNETCallback callback2 = new CountCallTetriNETCallback();

            host.RegisterPlayer(callback1, _clientVersion, "player1", "team1");
            host.RegisterPlayer(callback2, _clientVersion, "player1", "team1"); // same name -> register failed

            Assert.AreEqual(count, 1);
            Assert.AreEqual(callback1.GetCallCount("OnPlayerRegistered"), 0); // OnPlayerRegistered callback is called from HostBase if register has failed
            Assert.AreEqual(callback2.GetCallCount("OnPlayerRegistered"), 1); // OnPlayerRegistered callback is called from HostBase if register has failed
        }
示例#5
0
        public void TestHostSpectatorRegisteredCalledOnRegisterSpectator()
        {
            IHost host  = CreateHost();
            int   count = 0;

            host.HostSpectatorRegistered += (player, id) => count++;
            CountCallTetriNETCallback callback1 = new CountCallTetriNETCallback();
            CountCallTetriNETCallback callback2 = new CountCallTetriNETCallback();

            host.RegisterSpectator(callback1, _clientVersion, "spectator1");
            host.RegisterSpectator(callback2, _clientVersion, "spectator2");

            Assert.AreEqual(count, 2);
            Assert.AreEqual(callback1.GetCallCount("OnSpectatorRegistered"), 0); // OnSpectatorRegistered callback is called from HostBase if register has failed
            Assert.AreEqual(callback2.GetCallCount("OnSpectatorRegistered"), 0); // OnSpectatorRegistered callback is called from HostBase if register has failed
        }
示例#6
0
        public void TestCallbackIndexerFindExistingPlayer()
        {
            ITetriNETCallback callback1     = new CountCallTetriNETCallback();
            ITetriNETCallback callback2     = new CountCallTetriNETCallback();
            ITetriNETCallback callback3     = new CountCallTetriNETCallback();
            IPlayer           player1       = new Player(0, "player1", callback1);
            IPlayer           player2       = new Player(1, "player2", callback2);
            IPlayer           player3       = new Player(2, "player3", callback3);
            IPlayerManager    playerManager = CreatePlayerManager(5);

            playerManager.Add(player1);
            playerManager.Add(player2);
            playerManager.Add(player3);

            IPlayer searched = playerManager[callback2];

            Assert.AreEqual(searched, player2);
        }
示例#7
0
        public void TestCallbackIndexerFindNonExistingPlayer()
        {
            ITetriNETCallback callback1     = new CountCallTetriNETCallback();
            ITetriNETCallback callback2     = new CountCallTetriNETCallback();
            ITetriNETCallback callback3     = new CountCallTetriNETCallback();
            ITetriNETCallback callback4     = new CountCallTetriNETCallback();
            IPlayer           player1       = new Player(0, "player1", callback1);
            IPlayer           player2       = new Player(1, "player2", callback2);
            IPlayer           player3       = new Player(2, "player3", callback3);
            IPlayer           player4       = new Player(3, "player4", callback4); // NOT ADDED IN PLAYERMANAGER
            IPlayerManager    playerManager = CreatePlayerManager(5);

            playerManager.Add(player1);
            playerManager.Add(player2);
            playerManager.Add(player3);

            IPlayer searched = playerManager[3];

            Assert.IsNull(searched);
        }
示例#8
0
        public void TestRegisterFailedIfWrongClientVersion()
        {
            IHost host  = CreateHost();
            int   count = 0;

            host.HostPlayerRegistered += (player, id) => count++;
            CountCallTetriNETCallback callback = new CountCallTetriNETCallback();

            host.RegisterPlayer(
                callback,
                new Versioning
            {
                Major = 0,
                Minor = 0
            },
                "player1", "team1");

            Assert.AreEqual(count, 0);
            Assert.AreEqual(callback.GetCallCount("OnPlayerRegistered"), 1);
        }