Example #1
0
        public async Task Can_dispatch_event()
        {
            List <object> projectedEvents = new List <object>();
            var           handlerResolver = new ProjectionHandlerResolver(new TestProjectionModule(projectedEvents));
            const string  streamId        = "stream";
            var           eventId         = Guid.NewGuid();
            const int     version         = 2;
            var           timeStamp       = DateTimeOffset.UtcNow;
            var           headers         = new ReadOnlyDictionary <string, object>(new Dictionary <string, object>());

            using (var dispatcher = new TestProjectionDispatcher(handlerResolver, new InMemoryCheckpointRepository()))
            {
                await dispatcher.Start();

                await dispatcher.DoDispatch(streamId, eventId, version, timeStamp, "checkpoint", headers, new TestEvent());
            }

            projectedEvents.Count.Should().Be(1);

            var projectionEvent = projectedEvents[0].As <ProjectionEvent <TestEvent> >();

            projectionEvent.StreamId.Should().Be(streamId);
            projectionEvent.EventId.Should().Be(eventId);
            projectionEvent.Version.Should().Be(version);
            projectionEvent.TimeStamp.Should().Be(timeStamp);
            projectionEvent.Headers.Should().NotBeNull();
        }
Example #2
0
        public void Can_resolve_handlers()
        {
            var handlerResolver = new ProjectionHandlerResolver(new TestProjectionModule(new List <object>()));
            var handlers        = handlerResolver.ResolveAll <TestEvent>().ToArray();

            handlers.Length.Should().Be(1);
        }
Example #3
0
        public void Can_invoke_handlers()
        {
            List <object> projectedEvents = new List <object>();
            var           handlerResolver = new ProjectionHandlerResolver(new TestProjectionModule(projectedEvents));
            var           handlers        = handlerResolver.ResolveAll <TestEvent>().ToArray();
            var           projectionEvent = new ProjectionEvent <TestEvent>("streamid", Guid.NewGuid(), 1, DateTimeOffset.UtcNow, null, new TestEvent());

            foreach (var handler in handlers)
            {
                handler(projectionEvent, CancellationToken.None);
            }

            projectedEvents.Count.Should().Be(1);
        }
Example #4
0
        public async Task Blah()
        {
            using (var eventStore = Wireup
                                    .Init()
                                    .UsingInMemoryPersistence()
                                    .Build())
            {
                using (var client = new EventStoreClient(eventStore.Advanced))
                {
                    var handlerResolver = new ProjectionHandlerResolver(new TestProjectionModule());
                    var dispatcher      = new NEventStoreProjectionDispatcher(
                        client,
                        handlerResolver,
                        new InMemoryCheckpointRepository());

                    await dispatcher.Start();
                }
            }
        }