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); }
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); }
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); }
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 }
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 }
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); }
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); }
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); }