public void ActorHandlersMap_CanAddTwoActorsHandlingSameMessageTypeInDifferentPartitions() { var actorHandlersMap = new ActorHandlerMap(); var partition = Guid.NewGuid().ToByteArray(); var actorWithoutPartition = new ConfigurableActor(new[] { new MessageHandlerDefinition { Handler = null, Message = MessageDefinition.Create <SimpleMessage>() } }); var actorWithPartition = new ConfigurableActor(new[] { new MessageHandlerDefinition { Handler = null, Message = MessageDefinition.Create <SimpleMessage>(partition) } }); actorHandlersMap.Add(actorWithoutPartition); actorHandlersMap.Add(actorWithPartition); actorHandlersMap.Get(MessageIdentifier.Create(typeof(SimpleMessage), partition)); actorHandlersMap.Get(MessageIdentifier.Create(typeof(SimpleMessage))); }
public void WhenDuplicatedKeyExceptionThrown_NonOfTheActorHandlersIsAdded() { var actorHandlersMap = new ActorHandlerMap(); var simpleMessageActor = new ConfigurableActor(new[] { new MessageHandlerDefinition { Handler = null, Message = MessageDefinition.Create <SimpleMessage>() } }); var exceptionMessageActor = new ConfigurableActor(new[] { new MessageHandlerDefinition { Handler = null, Message = MessageDefinition.Create <ExceptionMessage>() }, new MessageHandlerDefinition { Handler = null, Message = MessageDefinition.Create <SimpleMessage>() } }); actorHandlersMap.Add(simpleMessageActor); actorHandlersMap.Get(MessageIdentifier.Create <SimpleMessage>()); Assert.Throws <DuplicatedKeyException>(() => { actorHandlersMap.Add(exceptionMessageActor); }); actorHandlersMap.Get(MessageIdentifier.Create <SimpleMessage>()); Assert.Throws <KeyNotFoundException>(() => actorHandlersMap.Get(MessageIdentifier.Create <ExceptionMessage>())); }
public void AddingActorWithoutRegisteredMessageHandlers_ThrowsNoException() { var actorHandlersMap = new ActorHandlerMap(); var voidActor = new ConfigurableActor(Enumerable.Empty <MessageHandlerDefinition>()); actorHandlersMap.Add(voidActor); }
public void CanAddReturnsTrue_IfActorIsNotYetAdded() { var actorHandlersMap = new ActorHandlerMap(); var actor = new EchoActor(); Assert.True(actorHandlersMap.CanAdd(actor)); }
public void AddingActorsHandlingTheSameMessageTwice_ThowsDuplicatedKeyException() { var actorHandlersMap = new ActorHandlerMap(); var actor = new EchoActor(); actorHandlersMap.Add(actor); Assert.Throws <DuplicatedKeyException>(() => { actorHandlersMap.Add(actor); }); }
public void GettingHandlerForNonRegisteredMessageIdentifier_ThrowsKeyNotFoundException() { var actorHandlersMap = new ActorHandlerMap(); var actor = new EchoActor(); actorHandlersMap.Add(actor); Assert.Throws <KeyNotFoundException>(() => actorHandlersMap.Get(new MessageIdentifier(KinoMessages.Exception))); }
public void CanAddReturnsFalse_IfActorAlreadyAdded() { var actorHandlersMap = new ActorHandlerMap(); var actor = new EchoActor(); actorHandlersMap.Add(actor); Assert.False(actorHandlersMap.CanAdd(actor)); }
public void Setup() { logger = new Mock <ILogger>(); actorHandlersMap = new ActorHandlerMap(); securityProvider = new Mock <ISecurityProvider>(); securityProvider.Setup(m => m.DomainIsAllowed(It.IsAny <string>())).Returns(true); localRouterSocket = new Mock <ILocalSocket <IMessage> >(); internalRegistrationSender = new Mock <ILocalSendingSocket <InternalRouteRegistration> >(); localSocketFactory = new Mock <ILocalSocketFactory>(); receivingSocket = new Mock <ILocalSocket <IMessage> >(); localSocketFactory.Setup(m => m.Create <IMessage>()).Returns(receivingSocket.Object); asyncQueue = new Mock <IAsyncQueue <AsyncMessageContext> >(); actorHost = new ActorHost(actorHandlersMap, asyncQueue.Object, new AsyncQueue <ActorRegistration>(), securityProvider.Object, localRouterSocket.Object, internalRegistrationSender.Object, localSocketFactory.Object, logger.Object); }