コード例 #1
0
        public void OnMessageReceived_WithNewtonsoftJObject_UpdatesObject()
        {
            dynamic @object = new
            {
                _id     = 1,
                Content = "new object"
            };
            JObject jObject = JObject.FromObject(@object);

            Creator.CreateObject(jObject);

            dynamic uObject = new
            {
                _id     = 1,
                Content = "updated object"
            };
            JObject newJObject = JObject.FromObject(uObject);
            var     message    = newJObject.ToString();

            ConsumerUpdater.Start();

            Publisher.PublishMessage(message);
            AutoResetEvent.WaitOne(); //Wait until entry updated

            var actualObject = Reader.ReadObjects().First(o => (int)o["_id"] == 1);

            Assert.AreEqual(1, (int)actualObject["_id"]);
            Assert.AreEqual("updated object", (string)actualObject["Content"]);
            ConsumerUpdater.Stop();
        }
コード例 #2
0
        public void PublishMessage_ConsumeMessage_PassesMessage()
        {
            var messageSent = "Hello world!";

            Publisher.PublishMessage(messageSent);
            var messageReceived = Consumer.ConsumeMessage();

            Assert.AreEqual(messageSent, messageReceived);
        }
コード例 #3
0
        public void OnMessageReceived_WithIdInMessage_DeletesEntry()
        {
            CreateEntry("new object");
            ConsumerDeleter.Start();

            Publisher.PublishMessage("1");
            AutoResetEvent.WaitOne(); //Wait until entry deleted

            var jObjects = Reader.ReadObjects();

            Assert.AreEqual(0, jObjects.Count);
            ConsumerDeleter.Stop();
        }
コード例 #4
0
        public void PublishMessage_AutoConsumeMessage_PassesMessage()
        {
            var messageSent = "Hello world!";

            AutoConsumer.MessageReceived += _consumer_MessageReceived;
            AutoConsumer.Start();
            //Perhaps try waiting for 10 secs here
            //to make sure it does not crash.

            _publisher.PublishMessage(messageSent);

            _autoResetEvent.WaitOne(); //Wait until message received.
            Assert.AreEqual(messageSent, _message);
            AutoConsumer.Stop();
            //This stops it from running continuously. Nice.
            //I guess because once the channel is killed,
            //It has no context that can wait for a Message to come back,
            //so it stops waiting.
        }
コード例 #5
0
        public IEnumerable <Categories> Modify()
        {
            _logger.LogInformation("called");
            var category = new Categories()
            {
                CategoryName = "dib it"
            };

            _categoriesService.AddCategories(category);

            MessagePublisher.PublishMessage(category);

            category = new Categories()
            {
                CategoryName = "dib not it"
            };
            _categoriesService.RolledBackAddCategories(category);
            var categories = _categoriesService.GetCategories();

            return(categories);
        }
コード例 #6
0
        public void OnMessageReceived_WithObjectInMessage_CreatesEntry()
        {
            dynamic @object = new
            {
                _id     = 1,
                Content = "new object"
            };
            JObject jObject = JObject.FromObject(@object);
            var     message = jObject.ToString();

            ConsumerCreator.Start();

            Publisher.PublishMessage(message);
            AutoResetEvent.WaitOne(); //Wait until entry created

            var jObjects      = Reader.ReadObjects();
            var actualJObject = jObjects.FirstOrDefault();

            Assert.AreEqual("", actualJObject["Content"]);
            ConsumerCreator.Stop();
        }
コード例 #7
0
        public void OnMessageReceived_WithEntriesInDb_ReadsEntriesAndPublishesMessage()
        {
            dynamic @object = new
            {
                _id     = 1,
                Content = "new object"
            };
            JObject jObject = JObject.FromObject(@object);

            Broker.CreateObject(jObject);
            ConsumerReader.Start();

            Publisher.PublishMessage("Not important");
            AutoResetEvent.WaitOne(); //Wait until Results published.

            var receivedMessage = Consumer.ConsumeMessage();
            var jObjects        = JsonConvert.DeserializeObject <List <JObject> >(receivedMessage);
            var actualJObject   = jObjects[0];

            Assert.AreEqual("new object", (string)actualJObject["Content"]);
            ConsumerReader.Stop();
        }