Beispiel #1
0
        public void TestModifyChatMessageServiceSendResponse()
        {
            IMarshaller marshaller = _erector.Container.Resolve <IMarshaller>();

            IModifyChatMessageService modifyChatMessageService = _erector.Container.Resolve <IModifyChatMessageService>();

            string clientGuid = Guid.NewGuid().ToString();
            IMessageBus <string> messageBus_Client  = _erector.Container.Resolve <IMessageBus <string> >();
            IMessageBus <string> messageBus_Service = _erector.Container.Resolve <IMessageBus <string> >();

            messageBus_Client.JsonSchema =
                (message) =>
            {
                //NOTE: Require this schema for the client only since I'm not sending anything to the service.
                return(_erector.Container.Resolve <IChatMessageEnvelope>().GetMyJSONSchema());
            };

            IMessageBusBank <string> messageBusBank = _erector.Container.Resolve <IMessageBusBank <string> >();

            messageBusBank.RegisterMessageBus(modifyChatMessageService.ServiceGUID, messageBus_Service);
            messageBusBank.RegisterMessageBus(clientGuid, messageBus_Client);


            IChatMessageEnvelope requestEnvelope = GetValidChatMessageEnvelope();
            string requestPayload = marshaller.MarshallPayloadJSON(requestEnvelope);
            bool   success        = false;

            //MessageBusBank cannot be null
            try
            {
                success = modifyChatMessageService.SendResponse(clientGuid, requestPayload);
                Assert.Fail();
            }
            catch (InvalidOperationException ex)
            {
                string message = ex.Message;
                Assert.AreEqual(message, modifyChatMessageService.ExceptionMessage_MessageBusBankCannotBeNull);
            }
            success = false;

            //Client should recieve message in their message bus.
            modifyChatMessageService.MessageBusBank = messageBusBank;
            success = modifyChatMessageService.SendResponse(clientGuid, requestPayload);
            Assert.IsTrue(success);
            string clientMessage = messageBus_Client.ReceiveMessage();

            Assert.IsFalse(String.IsNullOrEmpty(clientMessage));
            Assert.AreEqual(requestPayload, clientMessage);
        }
Beispiel #2
0
        public bool CompositionRoute()
        {
            lock (_thisLock)
            {
                try
                {
                    //NOTE: Set up message bus banks
                    _messageBusBankRouters  = _erector.Container.Resolve <IMessageBusBank <string> >();
                    _messageBusBankServices = _erector.Container.Resolve <IMessageBusBank <string> >();

                    //**** Set up Network A ****/
                    //NOTE: Set up router A
                    IRoutingService <string> routingServiceA = _erector.Container.Resolve <IRoutingService <string> >();
                    ISkyWatch skyWatchA = _erector.Container.Resolve <ISkyWatch>();

                    //NOTE: Set up the ModifyChatMessageService A
                    IModifyChatMessageService modifyChatMessageServiceA = _erector.Container.Resolve <IModifyChatMessageService>();
                    ServiceFarmServiceCompositionRoute(modifyChatMessageServiceA, routingServiceA, ChatServiceNames.ModifyChatMessageService);
                    ChatMessageServiceCompositionRoute(modifyChatMessageServiceA, routingServiceA, skyWatchA);

                    //NOTE: Set up the GetNextChatMessageService A
                    IGetNextChatMessageService getNextChatMessageServiceA = _erector.Container.Resolve <IGetNextChatMessageService>();
                    ServiceFarmServiceCompositionRoute(getNextChatMessageServiceA, routingServiceA, ChatServiceNames.GetNextChatMessageService);
                    ChatMessageServiceCompositionRoute(getNextChatMessageServiceA, routingServiceA, skyWatchA);

                    //NOTE: Set up the GetLatestChatMessageService A
                    IGetLatestChatMessageService getLatestChatMessageServiceA = _erector.Container.Resolve <IGetLatestChatMessageService>();
                    ServiceFarmServiceCompositionRoute(getLatestChatMessageServiceA, routingServiceA, ChatServiceNames.GetLatestChatMessageService);
                    ChatMessageServiceCompositionRoute(getLatestChatMessageServiceA, routingServiceA, skyWatchA);


                    return(true);
                }
                catch (Exception ex)
                {
                    _log.Error(String.Format("CompositionRoute() - Exception: \n{0}\n{1} \n\n InnerException: \n{2}\n{3}\n\n", ex.Message, ex.StackTrace, ex.InnerException.Message, ex.InnerException.StackTrace));
                    throw new ApplicationException(ex.Message, ex);
                }
            }
        }
Beispiel #3
0
        public void TestModifyChatMessageServiceCreateUpdateDelete()
        {
            IMarshaller marshaller = _erector.Container.Resolve <IMarshaller>();

            IModifyChatMessageService modifyChatMessageService = _erector.Container.Resolve <IModifyChatMessageService>();

            IMessageBus <string>           messageBus           = _erector.Container.Resolve <IMessageBus <string> >();
            IMessageBusReaderBank <string> messageBusReaderBank = _erector.Container.Resolve <IMessageBusReaderBank <string> >();

            messageBusReaderBank.SpecifyTheMessageBus(messageBus);
            IMessageBusWriter <string> messageBusWriter = _erector.Container.Resolve <IMessageBusWriter <string> >();

            messageBusWriter.SpecifyTheMessageBus(messageBus);

            IMessageBusBank <string> messageBusBank = _erector.Container.Resolve <IMessageBusBank <string> >();

            messageBusBank.RegisterMessageBus(modifyChatMessageService.ServiceGUID, messageBus);

            modifyChatMessageService.MessageBusBank       = messageBusBank;
            modifyChatMessageService.MessageBusReaderBank = messageBusReaderBank;
            modifyChatMessageService.MessageBusReaderBank.AddAnotherReader(modifyChatMessageService.ProcessMessage);
            modifyChatMessageService.MessageBusWiter = messageBusWriter;

            IChatMessageEnvelope requestEnvelope = _erector.Container.Resolve <IChatMessageEnvelope>();

            requestEnvelope.ChatMessageID = 123;

            //Test ITack cannot be null
            string tackCannotBeNull;

            try
            {
                tackCannotBeNull = modifyChatMessageService.Post(requestEnvelope);
                Assert.Fail();
            }
            catch (InvalidOperationException ex)
            {
                string message = ex.Message;
                Assert.AreEqual(message, modifyChatMessageService.ExceptionMessage_ITackCannotBeNull);
            }
            try
            {
                tackCannotBeNull = modifyChatMessageService.Put(requestEnvelope);
                Assert.Fail();
            }
            catch (InvalidOperationException ex)
            {
                string message = ex.Message;
                Assert.AreEqual(message, modifyChatMessageService.ExceptionMessage_ITackCannotBeNull);
            }
            try
            {
                tackCannotBeNull = modifyChatMessageService.Delete(requestEnvelope);
                Assert.Fail();
            }
            catch (InvalidOperationException ex)
            {
                string message = ex.Message;
                Assert.AreEqual(message, modifyChatMessageService.ExceptionMessage_ITackCannotBeNull);
            }

            modifyChatMessageService.Tack = GetMockedITack();
            requestEnvelope = _erector.Container.Resolve <IChatMessageEnvelope>();
            IChatMessageEnvelope responseEnvelope;

            //Create
            string created = modifyChatMessageService.Post(requestEnvelope);

            Assert.IsFalse(String.IsNullOrEmpty(created));
            responseEnvelope = marshaller.UnMarshall <IChatMessageEnvelope>(created);
            Assert.AreEqual(responseEnvelope.ChatMessageID, requestEnvelope.ChatMessageID);
            Assert.IsTrue(DateTime.Compare(responseEnvelope.CreatedDateTime, DateTime.MinValue) > 0);
            requestEnvelope = _erector.Container.Resolve <IChatMessageEnvelope>();
            requestEnvelope.ChatMessageID = 123;


            //Update
            string updated = modifyChatMessageService.Put(requestEnvelope);

            Assert.IsFalse(String.IsNullOrEmpty(updated));
            responseEnvelope = marshaller.UnMarshall <IChatMessageEnvelope>(updated);
            Assert.AreEqual(responseEnvelope.ChatMessageID, requestEnvelope.ChatMessageID);
            Assert.IsTrue(DateTime.Compare(responseEnvelope.ModifiedDateTime, requestEnvelope.ModifiedDateTime) > 0);
            requestEnvelope = _erector.Container.Resolve <IChatMessageEnvelope>();
            requestEnvelope.ChatMessageID = 123;


            //Delete
            string deleted = modifyChatMessageService.Delete(requestEnvelope);

            Assert.IsFalse(String.IsNullOrEmpty(deleted));
            responseEnvelope = marshaller.UnMarshall <IChatMessageEnvelope>(deleted);
            Assert.AreEqual(responseEnvelope.ChatMessageID, requestEnvelope.ChatMessageID);
            Assert.IsTrue(DateTime.Compare(responseEnvelope.ModifiedDateTime, requestEnvelope.ModifiedDateTime) > 0);
        }