Example #1
0
        public void EventStoreProjection(Mock <ICheckPointRepository> checkpoint,
                                         Subject <IEvent> source, FakeDocumentWriter writer, TestEvent @event)
        {
            var settings = EventStore.ClientAPI.ConnectionSettings.Create();

            settings.SetDefaultUserCredentials(new EventStore.ClientAPI.SystemData.UserCredentials("admin", "changeit"));

            var connection = EventStore.ClientAPI.EventStoreConnection.Create(settings, new IPEndPoint(IPAddress.Loopback, 1113));

            connection.Connect();

            new Projection <ListOfProjectedState>(connection, checkpoint.Object, writer)
            .FromAll()
            .InitialiseState(() => new ListOfProjectedState())
            .When <TestEvent>((e, s) =>
                              s.AddState(
                                  new TestProjectionState(e.SomeState)),
                              e => e.Id);

            connection.AppendToStream("test", ExpectedVersion.Any, JsonEventData.Create(Guid.NewGuid(), @event));

            while (true)
            {
                Thread.Sleep(500);
            }
        }
Example #2
0
        public void WithoutBuilder(
            Subject <IEvent> source, FakeDocumentWriter writer, TestEvent @event)
        {
            writer.DB.Clear();
            new DocumentWriterProjection <ListOfProjectedState>(
                source, writer, () => new ListOfProjectedState())
            .When <TestEvent>((e, s) =>
                              s.AddState(
                                  new TestProjectionState(e.SomeState)),
                              e => e.Id);

            source.OnNext(@event);

            writer.DB.Select(x => x.Value).ShouldContain <ListOfProjectedState>();
        }
Example #3
0
        public void ShouldNotExecuteWhenForEventsNotInterestedIn(
            Subject<IEvent> source, FakeDocumentWriter writer, NotInterestedInThis @event)
        {
            writer.DB.Clear();

            new DocumentWriterProjection<ListOfProjectedState>(
                source, writer, () => new ListOfProjectedState())
                .When<TestEvent>((e, s) =>
                                 s.AddState(
                                     new TestProjectionState(e.SomeState)),
                                 e => e.Id);

            source.OnNext(@event);

            writer.DB.Select(x => x.Value).ShouldBeEmpty();
        }
Example #4
0
        public void ShouldNotExecuteWhenForEventsNotInterestedIn(
            Subject <IEvent> source, FakeDocumentWriter writer, NotInterestedInThis @event)
        {
            writer.DB.Clear();

            new DocumentWriterProjection <ListOfProjectedState>(
                source, writer, () => new ListOfProjectedState())
            .When <TestEvent>((e, s) =>
                              s.AddState(
                                  new TestProjectionState(e.SomeState)),
                              e => e.Id);

            source.OnNext(@event);

            writer.DB.Select(x => x.Value).ShouldBeEmpty();
        }
Example #5
0
        public void EventStoreProjection(Mock<ICheckPointRepository> checkpoint,
            Subject<IEvent> source, FakeDocumentWriter writer, TestEvent @event)
        {
            var settings = EventStore.ClientAPI.ConnectionSettings.Create();
            settings.SetDefaultUserCredentials(new EventStore.ClientAPI.SystemData.UserCredentials("admin", "changeit"));

            var connection = EventStore.ClientAPI.EventStoreConnection.Create(settings, new IPEndPoint(IPAddress.Loopback, 1113));

            connection.Connect();

            new Projection<ListOfProjectedState>(connection,checkpoint.Object, writer)
                 .FromAll()
                 .InitialiseState(() => new ListOfProjectedState())
                 .When<TestEvent>((e, s) =>
                                  s.AddState(
                                      new TestProjectionState(e.SomeState)),
                                  e => e.Id);

            connection.AppendToStream("test", ExpectedVersion.Any, JsonEventData.Create(Guid.NewGuid(), @event));

            while (true) { Thread.Sleep(500); }
        }
Example #6
0
        public void WithoutBuilder(
            Subject<IEvent> source, FakeDocumentWriter writer, TestEvent @event)
        {
            writer.DB.Clear();
            new DocumentWriterProjection<ListOfProjectedState>(
                 source, writer, () => new ListOfProjectedState())
                .When<TestEvent>((e, s) =>
                                 s.AddState(
                                     new TestProjectionState(e.SomeState)),
                                 e => e.Id);

            source.OnNext(@event);

            writer.DB.Select(x => x.Value).ShouldContain<ListOfProjectedState>();
        }