public void StopServer_ShouldAlsoStopClient() { var done = new AutoResetEvent(false); //A new server is created so other tests are not affected var server = new SpeedDateServer(); var client = new SpeedDateClient(); client.Started += () => done.Set(); server.Started += () => { client.Start(new DefaultConfigProvider( new NetworkConfig(SetUp.MasterServerIp, SetUp.MasterServerPort + 1), //Connect to port PluginsConfig.DefaultPeerPlugins)); //Load peer-plugins only }; server.Start(new DefaultConfigProvider( new NetworkConfig("0.0.0.0", SetUp.MasterServerPort + 1), //Listen in port PluginsConfig.DefaultServerPlugins) //Load server-plugins only ); done.WaitOne(TimeSpan.FromSeconds(30)).ShouldBeTrue(); client.IsConnected.ShouldBeTrue(); client.Stopped += () => done.Set(); server.Stop(); server.Dispose(); done.WaitOne(TimeSpan.FromSeconds(10)).ShouldBeTrue(); client.IsConnected.ShouldBeFalse(); }
static void Main(string[] args) { var server = new SpeedDateServer(); server.Start(new FileConfigProvider("ServerConfig.xml")); //server.GetPlugin<LobbiesPlugin>().AddFactory(new LobbyFactory("Deathmatch", server.GetPlugin<LobbiesPlugin>(), DemoLobbyFactories.Deathmatch)); //server.GetPlugin<LobbiesPlugin>().AddFactory(new LobbyFactory("2v2v4", server.GetPlugin<LobbiesPlugin>(), DemoLobbyFactories.TwoVsTwoVsFour)); //server.GetPlugin<LobbiesPlugin>().AddFactory(new LobbyFactory("3v3auto", server.GetPlugin<LobbiesPlugin>(), DemoLobbyFactories.ThreeVsThreeQueue)); System.Console.ReadLine(); }
public void OneTimeSetUp() { DatabaseMock.Setup(db => db.CreateAccountObject()).Returns(new AccountData()); DatabaseMock.Setup(db => db.GetAccount(TestAccount.Username)).Returns(TestAccount); DatabaseMock.Setup(db => db.GetAccount(It.IsNotIn(TestAccount.Username))).Returns(() => null); DatabaseMock.Setup(db => db.GetAccountByEmail(TestAccount.Email)).Returns(TestAccount); DatabaseMock.Setup(db => db.GetAccountByEmail(It.IsNotIn(TestAccount.Email))).Returns(() => null); DatabaseMock.Setup(db => db.GetAccountByToken(TestAccount.Token)).Returns(TestAccount); DatabaseMock.Setup(db => db.GetAccountByToken(It.IsNotIn(TestAccount.Token))).Returns(() => null); Server = new SpeedDateServer(); Server.Start(new DefaultConfigProvider(new NetworkConfig(IPAddress.Any, MasterServerPort), PluginsConfig.DefaultServerPlugins, new IConfig[] { new DatabaseConfig { CheckConnectionOnStartup = false }, new AuthConfig { GuestPrefix = GuestPrefix, EnableGuestLogin = true } })); Server.GetPlugin <LobbiesPlugin>().ShouldNotBeNull(); Server.GetPlugin <LobbiesPlugin>().Factories.Add("1v1", (plugin, properties, creator) => new Lobby(plugin.GenerateLobbyId(), new[] { new LobbyTeam("Team Blue") { MinPlayers = 1, MaxPlayers = 1 }, new LobbyTeam("Team Red") { MinPlayers = 1, MaxPlayers = 1 } }, plugin) { Name = properties.ExtractLobbyName() }); Server.GetPlugin <LobbiesPlugin>().Factories.Add("2v2v4", (plugin, properties, creator) => new Lobby(plugin.GenerateLobbyId(), new[] { new LobbyTeam("Team Blue") { MinPlayers = 1, MaxPlayers = 2 }, new LobbyTeam("Team Red") { MinPlayers = 1, MaxPlayers = 2 }, new LobbyTeam("Team Noobs") { MinPlayers = 1, MaxPlayers = 4 } }, plugin) { Name = properties.ExtractLobbyName() }); Server.GetPlugin <LobbiesPlugin>().Factories.Add("3v3auto", (plugin, properties, creator) => new Lobby(plugin.GenerateLobbyId(), new[] { new LobbyTeam("Team Blue") { MinPlayers = 1, MaxPlayers = 3 }, new LobbyTeam("Team Red") { MinPlayers = 1, MaxPlayers = 3 }, }, plugin) { Name = properties.ExtractLobbyName() }); Server.GetPlugin <MailPlugin>().SetSmtpClient(SmtpClientMock.Object); Server.GetPlugin <DatabasePlugin>().SetDbAccess(DatabaseMock.Object); }