コード例 #1
0
        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();
        }
コード例 #2
0
        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();
        }
コード例 #3
0
ファイル: SetUp.cs プロジェクト: proepkes/SpeedDate
        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);
        }