public void TestMessageBusBankGUID() { IMessageBusBank <string> messageBusBank = _erector.Container.Resolve <IMessageBusBank <string> >(); string messageBusBankGUID = messageBusBank.MessageBusBankGUID; Assert.IsFalse(String.IsNullOrEmpty(messageBusBankGUID)); }
public void TestGetNextChatMessageServiceGET() { IMarshaller marshaller = _erector.Container.Resolve <IMarshaller>(); IGetNextChatMessageService getNextChatMessageService = _erector.Container.Resolve <IGetNextChatMessageService>(); 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(getNextChatMessageService.ServiceGUID, messageBus); getNextChatMessageService.MessageBusBank = messageBusBank; getNextChatMessageService.MessageBusReaderBank = messageBusReaderBank; getNextChatMessageService.MessageBusReaderBank.AddAnotherReader(getNextChatMessageService.ProcessMessage); getNextChatMessageService.MessageBusWiter = messageBusWriter; IChatMessageEnvelope requestEnvelope = _erector.Container.Resolve <IChatMessageEnvelope>(); requestEnvelope.ChatMessageID = 123; //Test ITack cannot be null string tackCannotBeNull; try { tackCannotBeNull = getNextChatMessageService.Get(requestEnvelope); Assert.Fail(); } catch (InvalidOperationException ex) { string message = ex.Message; Assert.AreEqual(message, getNextChatMessageService.ExceptionMessage_ITackCannotBeNull); } getNextChatMessageService.Tack = GetMockedITack(); requestEnvelope = GetValidChatMessageEnvelope(); requestEnvelope.CreatedDateTime = DateTime.Now; IChatMessageEnvelope responseEnvelope; //Read next message string read = getNextChatMessageService.Get(requestEnvelope); Assert.IsFalse(String.IsNullOrEmpty(read)); responseEnvelope = marshaller.UnMarshall <IChatMessageEnvelope>(read); Assert.IsNotNull(responseEnvelope); Assert.IsTrue(responseEnvelope.ChatMessageID > requestEnvelope.ChatMessageID); Assert.AreEqual(responseEnvelope.ChatChannelID, requestEnvelope.ChatChannelID); Assert.IsTrue(DateTime.Compare(responseEnvelope.CreatedDateTime, requestEnvelope.CreatedDateTime) > 0); }
public void TestRegisterResolveRelaseMessageBus() { IMessageBusBank <string> messageBusBank = _erector.Container.Resolve <IMessageBusBank <string> >(); bool addMessageBus = false; bool releaseMessageBus = false; IMessageBus <string> resolveMessageBus = null; string busKeyCode = "123"; IMessageBus <string> messageBus = null; try { addMessageBus = messageBusBank.RegisterMessageBus(busKeyCode, messageBus); } catch (InvalidOperationException ex) { Assert.AreEqual(ex.Message, messageBusBank.ExceptionMessage_MessgeBusCannotBeNull); } messageBus = _erector.Container.Resolve <IMessageBus <string> >(); try { addMessageBus = messageBusBank.RegisterMessageBus(String.Empty, messageBus); } catch (InvalidOperationException ex) { Assert.AreEqual(ex.Message, messageBusBank.ExceptionMessage_BusKeyCodeCannotBeNullOrEmpty); } addMessageBus = messageBusBank.RegisterMessageBus(busKeyCode, messageBus); Assert.IsTrue(addMessageBus); try { resolveMessageBus = messageBusBank.ResolveMessageBus(String.Empty); } catch (InvalidOperationException ex) { Assert.AreEqual(ex.Message, messageBusBank.ExceptionMessage_BusKeyCodeCannotBeNullOrEmpty); } resolveMessageBus = messageBusBank.ResolveMessageBus(busKeyCode); Assert.IsNotNull(resolveMessageBus); Assert.AreEqual(messageBus.MessageBusGUID, resolveMessageBus.MessageBusGUID); try { releaseMessageBus = messageBusBank.ReleaseMessageBus(String.Empty); } catch (InvalidOperationException ex) { Assert.AreEqual(ex.Message, messageBusBank.ExceptionMessage_BusKeyCodeCannotBeNullOrEmpty); } releaseMessageBus = messageBusBank.ReleaseMessageBus(busKeyCode); Assert.IsTrue(releaseMessageBus); }
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); }
private IRoutingTable <T> GetMockedRoutingTable <T>() { IMessageBusBank <T> messageBusBank = _erector.Container.Resolve <IMessageBusBank <T> >(); var mockedRoutingTable = new Mock <IRoutingTable <T> >(); mockedRoutingTable .Setup(routingTable => routingTable.RoutingTableGUID) .Returns("15242"); mockedRoutingTable .SetupProperty(routingTable => routingTable.MessageBusBank, messageBusBank); mockedRoutingTable .Setup(routingTable => routingTable.RegisterRoute(It.IsAny <string>(), It.IsAny <Action <T> >())) .Returns(() => true); mockedRoutingTable .Setup(routingTable => routingTable.ResolveRoute(It.IsAny <string>())) .Returns(() => (message) => { }); mockedRoutingTable .Setup(routingTable => routingTable.ReleaseRoute(It.IsAny <string>())) .Returns(() => true); return(mockedRoutingTable.Object); }
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); }