Exemplo n.º 1
0
        public async Task PersistentSubscription_CanBeCreatedAndReceiveEventsMultipleEventHandler()
        {
            PersistentSubscriptionDetails      persistentSubscriptionDetails = new("$ce-test", "local-1");
            TestDomainEventHandler             eventHandler1 = new();
            TestDomainEventHandler             eventHandler2 = new();
            Mock <IDomainEventHandlerResolver> domainEventHandlerResolver = new Mock <IDomainEventHandlerResolver>();

            domainEventHandlerResolver.Setup(d => d.GetDomainEventHandlers(It.IsAny <IDomainEvent>())).Returns(new List <IDomainEventHandler>()
            {
                eventHandler1,
                eventHandler2
            });
            InMemoryPersistentSubscriptionsClient persistentSubscriptionsClient = new();
            CancellationToken cancellationToken = CancellationToken.None;

            var persistentSubscription =
                PersistentSubscription.Create(persistentSubscriptionsClient, persistentSubscriptionDetails, domainEventHandlerResolver.Object);

            await persistentSubscription.ConnectToSubscription(cancellationToken);

            persistentSubscription.Connected.ShouldBeTrue();

            String @event = "{\r\n  \"estateId\": \"4fc2692f-067a-443e-8006-335bf2732248\",\r\n  \"estateName\": \"Demo Estate\"\r\n}\t";

            //Manually add events.
            persistentSubscriptionsClient.WriteEvent(@event, "EstateCreatedEvent", cancellationToken);

            //Crude - but a decent start point
            eventHandler1.DomainEvents.Count.ShouldBe(1);
            eventHandler2.DomainEvents.Count.ShouldBe(1);
        }
Exemplo n.º 2
0
        public async Task PersistentSubscription_CanBeCreatedAndFilterOutSystemEvent()
        {
            PersistentSubscriptionDetails      persistentSubscriptionDetails = new("$ce-test", "local-1");
            TestDomainEventHandler             eventHandler = new();
            Mock <IDomainEventHandlerResolver> domainEventHandlerResolver = new Mock <IDomainEventHandlerResolver>();

            domainEventHandlerResolver.Setup(d => d.GetDomainEventHandlers(It.IsAny <IDomainEvent>())).Returns(new List <IDomainEventHandler>()
            {
                eventHandler
            });
            InMemoryPersistentSubscriptionsClient persistentSubscriptionsClient = new();
            CancellationToken cancellationToken = CancellationToken.None;

            var persistentSubscription =
                PersistentSubscription.Create(persistentSubscriptionsClient, persistentSubscriptionDetails, domainEventHandlerResolver.Object);

            await persistentSubscription.ConnectToSubscription(cancellationToken);

            persistentSubscription.Connected.ShouldBeTrue();

            String @event = "";

            //Manually add events.
            persistentSubscriptionsClient.WriteEvent(@event, "$", cancellationToken);

            //Crude - but a decent start point
            eventHandler.DomainEvents.Count.ShouldBe(0);
        }