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); }
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()); }
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); }
public async Task TestConnects() { await relay0.ConnectToNodeAsync(1); await Task.Delay(100); Assert.AreEqual(1, relay0.GetConnectedClientsCount()); Assert.AreEqual(1, relay1.GetConnectedClientsCount()); }