public void SendingMessageToEveryoneElse_WhenAnyUser_ShouldSendMessagesToEveryoneElse()
        {
            // Arrange
            var message = new PublicMessageResponse("Sender", "Hello everyone!");

            string senderUsername = "******";

            var users = new List <ChatUser>()
            {
                new ChatUser(senderUsername),
                new ChatUser("User001"),
                new ChatUser("User002"),
                new ChatUser("User003"),
            };

            var logger = Substitute.For <ILogger <MessageSenderService> >();

            var userService = Substitute.For <IUserService>();

            userService.GetConnectedUsers().Returns(users);

            var networkServer = Substitute.For <INetworkServer>();

            var messageSenderService = new MessageSenderService(logger, userService, networkServer);

            // Act
            messageSenderService.SendMessageToEveryoneElse(senderUsername, message);

            // Assert
            networkServer.Received(users.Count - 1).SendMessage(Arg.Any <string>(), Arg.Any <byte[]>());
        }
        public void NotifyUser_WhenUserExists_ShouldSendMessage()
        {
            // Arrange
            string username = "******";

            var logger = Substitute.For <ILogger <MessageSenderService> >();

            var userService = Substitute.For <IUserService>();

            userService.TryGetUserByName(Arg.Is(username), out Arg.Any <ChatUser>())
            .Returns(args =>
            {
                args[1] = new ChatUser(username);
                return(true);
            });

            var networkServer = Substitute.For <INetworkServer>();

            var messageSenderService = new MessageSenderService(logger, userService, networkServer);

            // Act
            messageSenderService.NotifyUser(username, "Hey!", NotificationLevel.Warning);

            // Arrange
            networkServer.Received(1).SendMessage(username, Arg.Any <byte[]>());
        }
        public void NotifyEveryone_WhenAnyUser_ShouldSendMessagesToEveryone()
        {
            // Arrange
            var users = new List <ChatUser>()
            {
                new ChatUser("User001"),
                new ChatUser("User002"),
                new ChatUser("User003"),
            };

            var logger = Substitute.For <ILogger <MessageSenderService> >();

            var userService = Substitute.For <IUserService>();

            userService.GetConnectedUsers().Returns(users);

            var networkServer = Substitute.For <INetworkServer>();

            var messageSenderService = new MessageSenderService(logger, userService, networkServer);

            // Act
            messageSenderService.NotifyEveryone("Hey everyone!", NotificationLevel.Information);

            // Assert
            networkServer.Received(users.Count).SendMessage(Arg.Any <string>(), Arg.Any <byte[]>());
        }
        public void SendingMessageToUser_WhenUserExists_ShouldSendMessage()
        {
            // Arrange
            string username = "******";
            var    message  = new DirectMessageResponse("Sender", username, "Hello!", true);

            var logger = Substitute.For <ILogger <MessageSenderService> >();

            var userService = Substitute.For <IUserService>();

            userService.TryGetUserByName(Arg.Is(username), out Arg.Any <ChatUser>())
            .Returns(args =>
            {
                args[1] = new ChatUser(username);
                return(true);
            });

            var networkServer = Substitute.For <INetworkServer>();

            var messageSenderService = new MessageSenderService(logger, userService, networkServer);

            // Act
            bool result = messageSenderService.SendMessageToUser(username, message);

            // Arrange
            Assert.True(result);
            networkServer.Received(1).SendMessage(username, Arg.Any <byte[]>());
        }
Beispiel #5
0
        public void EnqueueSubjectTest()
        {
            var subscriber = new TestSubscriber();

            MessageSenderService.EnqueueSubject.Subscribe(subscriber);

            var messageSenderService = new MessageSenderService();
            var testMessage          = new TestMessage
            {
                Title = "Test Message"
            };

            messageSenderService.Send <TestMessageSender, TestMessage>(testMessage);

            Thread.Sleep(TimeSpan.FromSeconds(1));
            Assert.AreEqual(1, TestSubscriber.ActionContexts.Count);
            var actionContext = TestSubscriber.ActionContexts[0];
            var data          = JsonConvert.DeserializeObject <TestMessage>(actionContext.Data);

            Assert.AreEqual(testMessage.Title, data.Title);
            Assert.AreEqual("Message Enqueue", actionContext.Action);
            Assert.AreEqual(typeof(TestMessageSender), actionContext.MessageSenderType);
            Assert.AreEqual(typeof(TestMessage), actionContext.MessageType);
            Assert.AreNotEqual(null, actionContext.JobId);
        }
Beispiel #6
0
 public LspBasicHandler(ILanguageServer router, IWorkspace workspaceManager, ILoggerFactory loggingFactory = null)
 {
     _router           = router;
     _workspaceManager = workspaceManager;
     _documentSelector = new DocumentSelector(
         new DocumentFilter
     {
         Pattern = Resources.ConfigurationStrings.file_watch_pattern
     });
     _loggingFactory = loggingFactory;
     _log            = _loggingFactory?.CreateLogger("");
     _mss            = new MessageSenderService(_router);
 }
        public ActionResult Unpark(int slotNumber)
        {
            try
            {
                this.parkingDetails = this.driverService.UnParkVehicle(slotNumber);
                MessageSenderService.AddMessageToQueue("Vehicle Number " + this.parkingDetails.VehicleNumber + " has been UnParked at Slot Id " + this.parkingDetails.SlotNumber);
            }
            catch (Exception e)
            {
                return(this.BadRequest(new ResponseEntity(HttpStatusCode.BadRequest, e.Message)));
            }

            return(this.Ok(new ResponseEntity(HttpStatusCode.OK, "Vehicle Unparked Successfully", this.parkingDetails)));
        }
        public ActionResult Park([FromBody] VehicleDetails vehicleDetails)
        {
            try
            {
                this.parkingDetails = driverService.ParkVehicle(vehicleDetails);
                MessageSenderService.AddMessageToQueue("Vehicle Number " + this.parkingDetails.VehicleNumber + " has been Parked at Slot Id " + this.parkingDetails.SlotNumber + " at time: " + this.parkingDetails.EntryTime);
            }
            catch (Exception e)
            {
                return(this.BadRequest(new ResponseEntity(HttpStatusCode.BadRequest, e.Message)));
            }

            return(this.Ok(new ResponseEntity(HttpStatusCode.OK, "Vehicle Parked Successfully", this.parkingDetails)));
        }
Beispiel #9
0
        public void ScheduleTestMessage()
        {
            var messageSenderService = new MessageSenderService();
            var testMessage          = new TestMessage
            {
                Title = "Test Message"
            };

            messageSenderService.Schedule <TestMessageSender, TestMessage>(testMessage, DateTimeOffset.Now.AddSeconds(-2));

            Thread.Sleep(TimeSpan.FromSeconds(2));
            Assert.AreEqual(1, TestMessage.TestMessages.Count);
            Assert.AreEqual(testMessage.Title, TestMessage.TestMessages[0].Title);
        }
Beispiel #10
0
        public void SendTestMessage()
        {
            var messageSenderService = new MessageSenderService();
            var testMessage          = new TestMessage
            {
                Title = "Test Message"
            };

            messageSenderService.Send <TestMessageSender, TestMessage>(testMessage);

            Thread.Sleep(TimeSpan.FromSeconds(2));
            Assert.AreEqual(1, TestMessage.TestMessages.Count);
            Assert.AreEqual(testMessage.Title, TestMessage.TestMessages[0].Title);
        }
Beispiel #11
0
        static void Main(string[] args)
        {
            Console.WriteLine("Starting server..");
            _arduinos = getArduinoPorts();
            _arduinos.ForEach(x => x.OpenConnection());
            _threads        = new List <Thread>();
            _messageSenders = new List <MessageSenderService>();

            _devices = new List <Device>();

            foreach (var arduino in _arduinos)
            {
                var thread = new Thread(new MessageReaderService(arduino).Work);
                thread.Start();
                _threads.Add(thread);
                var service = new MessageSenderService(arduino);
                _messageSenders.Add(service);
                service.RequestAllLights();
            }

            _watcher = new FileSystemWatcher
            {
                NotifyFilter =
                    NotifyFilters.LastAccess | NotifyFilters.LastWrite // These are the flags of change types to watch for
                    | NotifyFilters.FileName | NotifyFilters.DirectoryName,
                Path   = Path.GetDirectoryName(Database.Filename),
                Filter = Path.GetFileName(Database.Filename)
            };
            _watcher.Changed            += DatabaseOnChanged;
            _watcher.EnableRaisingEvents = true; // Begin watching

            while (!_quit)
            {
                Console.WriteLine("Server started!");
                if (Console.ReadLine() == "Exit")
                {
                    Console.WriteLine("Are you sure you want to stop the server? (y, n)");
                    if (Console.ReadLine() == "y")
                    {
                        _quit = true;
                    }
                }
            }

            foreach (var thread in _threads)
            {
                thread.Abort();
            }
        }
        private static void Main(string[] args)
        {
            //TODO: Valid Service Bus Connection string and the QueuePath should be provided
            var connectionString = "";
            var queuePath        = "demoqueue";

            using (var messageSender = new MessageSenderService(connectionString, queuePath))
            {
                //Send messages
                for (var x = 0; x < 10; x++)
                {
                    messageSender.SendMessage($"Message: {x}");
                }
            }
        }
Beispiel #13
0
        public void SendTestMessages()
        {
            var messageSenderService = new MessageSenderService();
            var testMessages         = new TestMessage[20];

            for (int i = 0; i < testMessages.Length; i++)
            {
                testMessages[i] = new TestMessage
                {
                    Title = $"Test message #{i}"
                }
            }
            ;

            messageSenderService.Send <TestMessageSender, TestMessage>(testMessages);

            Thread.Sleep(TimeSpan.FromSeconds(2));
            Assert.AreEqual(testMessages.Length, TestMessage.TestMessages.Count);
        }
        static void Main(string[] args)
        {
            System.Console.WriteLine("The mail sender service has started...");

            GlobalConfiguration.Configuration.AddMailServer(x =>
            {
            }).AddConsole().HangfireConfig(x =>
            {
                x.RetryCount       = 5;
                x.ConnectionString = "Server=.;Initial catalog=MessageServiceTestDatabase;user id=sa;password=12345";
            });

            var messageSenderService = new MessageSenderService();

            var email = new Email()
            {
                Subject = "Test email"
            };

            messageSenderService.Send <EmailMessageSender, Email>(email);

            var key = System.Console.ReadKey();
        }
Beispiel #15
0
 private void CreateMsgSender()
 {
     msgSender = new MessageSenderService(server);
 }