コード例 #1
0
ファイル: DslTests.cs プロジェクト: jfloodnet/ProjectionsDsl
        public void ShouldExecuteWhenForEvent(
            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>();
        }
コード例 #2
0
ファイル: DslTests.cs プロジェクト: jfloodnet/ProjectionsDsl
        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); }
        }