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