public async Task AsyncClient_ConnectMultipleClientsToServer_ConnectionsSucceed() { var port = Network.GetTcpPort(); var uriString = string.Format("http://localhost:{0}", port); var uri = new Uri(uriString); var applicationContext = Substitute.For<IApplicationContext>(); using (var server = new Server.Server(uri)) { server.Start(applicationContext); var clients = new List<Client.AsyncClient>(); const int NumClients = 100; var clientReceivedMessageCount = 0; for (var i = 0; i < NumClients; i++) { var client = new Client.AsyncClient(uri); client.OnMessage += (sender, eventArgs) => clientReceivedMessageCount++; var connected = await client.Connect(Client.Enums.TransportType.ServerSentEvents); Assert.IsTrue(connected); clients.Add(client); } Assert.AreEqual(NumClients, clients.Count); server.SendMessage("x"); foreach (var client in clients) { client.Dispose(); } // Probably won't receive all messages - no sleep or synchronisation implemented to ensure exactly NumClients messages Assert.IsTrue(clientReceivedMessageCount > 0); Assert.IsTrue(clientReceivedMessageCount <= NumClients); } }
public void TestServerSendAddMessageInDb() { var abonent = new Server.Abonent() { id = 1, name = "1", status = Server.Status.Online }; var message = new Server.Message() { SenderId = 1, RecipientId = 2, TextOfMessage = "test" }; List <Server.Message> messages = new List <Server.Message>(); messages.Add(message); Dictionary <int, Server.Abonent> allAbonents = new Dictionary <int, Server.Abonent>(); mockDataBase.Setup(r => r.AddAbonentToDb(1, "1")); mockDataBase.Setup(r => r.GetAbonentFromDb()).Returns(allAbonents); mockDataBase.Setup(r => r.GetMessagesFromDb(2)).Returns(messages); mockLogger.Setup(r => r.Logging("test")); mockCallback.Setup(r => r.cbShowAbonent(abonent)); mockCallback.Setup(r => r.cbSendMessage("1", "test")); mockOperationContext.Setup(r => r.GetChannelCallback(It.IsAny <OperationContext>())).Returns(mockCallback.Object); var server = new Server.Server(mockDataBase.Object, mockLogger.Object, mockOperationContext.Object); server.Connect("1"); server.Connect("2"); server.Disconnect(2); List <int> recipient = new List <int>(); recipient.Add(2); server.SendMessage(1, recipient, "test"); mockDataBase.Verify(r => r.AddMessageToDb(1, 2, "test")); }
private void SongChanged() { server.SendMessage("192.168.0.15: <Song>" + SelectedSong); }