public void RegisterOneSubscriberAndPublishMessageTest()
        {
            MessageBusClient.UserCount = 0;
            var server = new MessageBusServer();

            server.Start(_ipAddress, _port);

            var client1 = new MessageBusClient();

            client1.Start(_ipAddress, _port);
            Thread.Sleep(_sleep);

            var client2 = new MessageBusClient();

            client2.Start(_ipAddress, _port++);
            Thread.Sleep(_sleep);

            client1.RegisterProvider("channel1");
            Thread.Sleep(_sleep);

            client2.RegisterSubscriber("channel1");
            Thread.Sleep(_sleep);

            client1.PublishMessage("channel1", "message");
            Thread.Sleep(_sleep);
            Thread.Sleep(_sleep);
            Assert.Equal("message", client2.ChannelMessageClient[0].MessageString);
        }
        public void RegisterTwoProvidersAndRequestChannelsTest()
        {
            MessageBusClient.UserCount = 0;
            var server = new MessageBusServer();

            server.Start(_ipAddress, _port);

            var client1 = new MessageBusClient();

            client1.Start(_ipAddress, _port);
            Thread.Sleep(_sleep);
            var client2 = new MessageBusClient();

            client2.Start(_ipAddress, _port++);

            client1.RegisterProvider("channel1");
            Thread.Sleep(_sleep);
            client1.RequestChannels();
            Thread.Sleep(_sleep);

            client2.RegisterProvider("channel2");
            Thread.Sleep(_sleep);
            client2.RequestChannels();
            Thread.Sleep(_sleep);
            Assert.Equal("channel2", client2.ChannelListMessageClient[1]);
        }
        public void ChannelUnavailableTest()
        {
            MessageBusClient.UserCount = 0;
            var server = new MessageBusServer();

            server.Start(_ipAddress, _port);

            var client1 = new MessageBusClient();

            client1.Start(_ipAddress, _port);
            Thread.Sleep(_sleep);

            var client2 = new MessageBusClient();

            client2.Start(_ipAddress, _port++);
            Thread.Sleep(_sleep);

            client1.RegisterProvider("channel1");
            Thread.Sleep(_sleep);

            client2.RegisterSubscriber("channel1");
            Thread.Sleep(_sleep);

            client1.UnregisterProvider("channel1");
            Thread.Sleep(_sleep);

            Assert.Equal("Channel Unavailable", client2.ChannelMessageClient[0].MessageString);
        }
        public void UnregisterOneProviderNotRegisteredAndPublishMessageTest()
        {
            MessageBusClient.UserCount = 0;
            var server = new MessageBusServer();

            server.Start(_ipAddress, _port);

            var client1 = new MessageBusClient();

            client1.Start(_ipAddress, _port);
            Thread.Sleep(_sleep);

            var client2 = new MessageBusClient();

            client2.Start(_ipAddress, _port++);
            Thread.Sleep(_sleep);

            client1.RegisterProvider("channel1");
            Thread.Sleep(_sleep);

            client2.UnregisterProvider("channel1");
            Thread.Sleep(_sleep);

            client1.PublishMessage("channel1", "message1");
            Thread.Sleep(_sleep);

            Assert.Empty(client2.ChannelMessageClient);
        }
        public void MultipleConnectionsTest()
        {
            MessageBusClient.UserCount = 0;
            var server = new MessageBusServer();

            server.Start(_ipAddress, _port);

            var client1 = new MessageBusClient();

            client1.Start(_ipAddress, _port);
            Thread.Sleep(1000);
            var client2 = new MessageBusClient();

            client2.Start(_ipAddress, _port++);
            Thread.Sleep(_sleep);

            Assert.Equal(2, server.ConnectedClientCount);
        }