public void RemoveEntityShouldClearLossyMessages()
        {
            string       entityId = "entity";
            MessagingBus bus      = new MessagingBus(MessagingBusType.SYSTEM, new DummyMessageHandler(), null);

            bus.Enqueue(new QueuedSceneMessage_Scene
            {
                payload = new Protocol.CreateEntity {
                    entityId = entityId
                },
                message = QueuedSceneMessage.Type.SCENE_MESSAGE.ToString(),
                tag     = "entity_1"
            }, QueueMode.Lossy);
            bus.Enqueue(new QueuedSceneMessage_Scene
            {
                payload = new Protocol.RemoveEntity()
                {
                    entityId = entityId
                },
                type    = QueuedSceneMessage.Type.SCENE_MESSAGE,
                method  = MessagingTypes.ENTITY_DESTROY,
                message = QueuedSceneMessage.Type.SCENE_MESSAGE.ToString(),
            });
            bus.Enqueue(new QueuedSceneMessage_Scene
            {
                payload = new Protocol.CreateEntity {
                    entityId = entityId
                },
                message = QueuedSceneMessage.Type.SCENE_MESSAGE.ToString(),
                tag     = "entity_1"
            }, QueueMode.Lossy);

            Assert.AreEqual(0, bus.unreliableMessagesReplaced);
            Assert.AreEqual(3, bus.pendingMessagesCount);
        }
Exemplo n.º 2
0
 public void SetUp()
 {
     _commandQueueBus = new Mock <ICommandQueue>();
     _resultAwaiter   = new Mock <IResultAwaiter>();
     _resultPublisher = new Mock <IResultPublisher>();
     _bus             = new MessagingBus(_commandQueueBus.Object, _resultPublisher.Object, _resultAwaiter.Object);
 }
        public void LossyMessageIsReplaced()
        {
            string       entityId = "entity";
            MessagingBus bus      = new MessagingBus(MessagingBusType.SYSTEM, new DummyMessageHandler(), null);

            bus.Enqueue(new QueuedSceneMessage_Scene
            {
                payload = new Protocol.CreateEntity {
                    entityId = entityId
                },
                message = QueuedSceneMessage.Type.SCENE_MESSAGE.ToString(),
                tag     = "entity_1"
            }, QueueMode.Lossy);
            bus.Enqueue(new QueuedSceneMessage_Scene
            {
                payload = new Protocol.CreateEntity {
                    entityId = entityId
                },
                message = QueuedSceneMessage.Type.SCENE_MESSAGE.ToString(),
                tag     = "entity_1"
            }, QueueMode.Lossy);

            Assert.AreEqual(1, bus.unreliableMessagesReplaced);
            Assert.AreEqual(1, bus.pendingMessagesCount);
        }
Exemplo n.º 4
0
 public void SetupTests()
 {
     if (bus == null)
     {
         bus = new MessagingBus("bus", dummyHandler, null);
     }
     if (nextQueueMessage == null)
     {
         SetupDataFile();
         nextQueueMessage = queuedMessages.GetEnumerator();
     }
 }
Exemplo n.º 5
0
        private static MessagingBus SetupBus(OrderView orderView)
        {
            IPersistanceStore persitenceStore  = new MemoryPersistance();
            IDomainEventQuery domainEventQuery = new InProcPersistedDomainEventQuery(persitenceStore);
            IDomainEventStore domainEventStore = new PyxisDomainEventStore(
                persitenceStore,
                domainEventQuery);
            IDomainResultStoreQuery storeQuery  = new InProcDomainResultStoreQuery(persitenceStore);
            IDomainResultStore      resultStore = new DomainResultPersistanceStore(
                persitenceStore,
                storeQuery);
            ITimeoutProvider timeoutProvider = new TimeoutProvider(1000);
            IResultPublisher resultPublisher = new ResultPublisher(
                resultStore,
                timeoutProvider);
            IResultAwaiter resultAwaiter = new ResultAwaiter(
                resultStore,
                timeoutProvider);
            IList <IHandleCommand>        commandHanlders   = new List <IHandleCommand>();
            IList <IHandleEvent>          eventHandlers     = new List <IHandleEvent>();
            IMessageDispatcher <ICommand> commandDispatcher = new CqrsMessagingHandler(
                resultPublisher,
                commandHanlders,
                eventHandlers);
            ICommandQueue commandQueue = new InProcCommandQueue(commandDispatcher);
            MessagingBus  bus          = new MessagingBus(
                commandQueue,
                resultPublisher,
                resultAwaiter);
            IDomainRepository domainRepository = new DomainRepository(
                domainEventStore,
                bus);
            ISession session = new Session(domainRepository);

            commandHanlders.Add(new OrderCommandHandler(session));
            eventHandlers.Add(new OrderEventHandler(orderView));

            return(bus);
        }