Example #1
0
        public async Task TestDirectMessageForwarded()
        {
            // So, that 1 and 2 had no way to connect
            factory1.NatSimulation = true;
            factory2.NatSimulation = true;

            await relay1.ConnectToNodeAsync(0);

            await relay2.ConnectToNodeAsync(0);

            await Task.Delay(100);

            byte[] recieved = null;
            Guid   sender   = Guid.Empty;

            relay2.OnDirectMessage += (s, d) =>
            {
                sender   = (Guid)s;
                recieved = d;
            };

            relay1.SendDirectMessage(relay2.OwnId, new[] { (byte)42 });

            await Task.Delay(100);

            Assert.IsNotNull(recieved);
            CollectionAssert.AreEqual(new[] { (byte)42 }, recieved);
            Assert.AreEqual(relay1.OwnId, sender);
        }
Example #2
0
        public async Task TestConnectsToNeighbours2()
        {
            await relay1.ConnectToNodeAsync(2);

            await relay0.ConnectToNodeAsync(1);

            await Task.Delay(100);

            Assert.AreEqual(2, relay0.GetConnectedClientsCount());
            Assert.AreEqual(2, relay1.GetConnectedClientsCount());
            Assert.AreEqual(2, relay2.GetConnectedClientsCount());
        }
Example #3
0
        private static void Main()
        {
            AppDomain currentDomain = AppDomain.CurrentDomain;

            currentDomain.UnhandledException += MyHandler;

            LocalNetworkConnectionHub hub = new LocalNetworkConnectionHub();

            LocalNetworkConnectionFactory factory0 = hub.CreateNodeFactory();
            LocalNetworkConnectionFactory factory1 = hub.CreateNodeFactory();

            INetworkRelay <int> relay0 = new NetworkRelay <LocalNetworkConnection, int>(factory0);
            INetworkRelay <int> relay1 = new NetworkRelay <LocalNetworkConnection, int>(factory1);

            relay0.CreateMatchmakingFile(MatchmakingFileId);
            relay1.CreateMatchmakingFile(MatchmakingFileId);

            relay0.CreateLeaderboardsFile(LeaderboardsFileId);
            relay1.CreateLeaderboardsFile(LeaderboardsFileId);

            relay0.ConnectToNodeAsync(1).Wait();

            Task.Delay(100).Wait();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            client0 = new FormMatchmaking <int>(relay0, MatchmakingFileId, LeaderboardsFileId);
            client1 = new FormMatchmaking <int>(relay1, MatchmakingFileId, LeaderboardsFileId);

            Task.Delay(100).Wait();

            var thread = new Thread(ThreadStart);

            thread.TrySetApartmentState(ApartmentState.STA);
            thread.Start();

            Application.Run(client0);
        }
Example #4
0
        public async Task TestConnects()
        {
            await relay0.ConnectToNodeAsync(1);

            await Task.Delay(100);

            Assert.AreEqual(1, relay0.GetConnectedClientsCount());
            Assert.AreEqual(1, relay1.GetConnectedClientsCount());
        }