public async Task Then_the_projection_processed_the_next_events_as_subscription()
        {
            ProjectionManager.Start(_projection);

            _waitForProjection.WaitOne();
            _waitForProjection.Reset();
            _waitForProjection.WaitOne();
            await Task.Delay(1000);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(connectedProjection =>
                     connectedProjection.Name.Equals(_projection) &&
                     connectedProjection.State == ConnectedProjectionState.Subscribed);

            await PushToStream(Fixture.CreateMany <SomethingHappened>(4));

            await Task.Delay(500);

            var assertionContext = new ProjectionContext(CreateContextOptionsFor <ProjectionContext>());

            assertionContext.ProcessedEvents
            .Should()
            .ContainAll(
                PushedMessages,
                (processedMessage, message, i) => processedMessage.Position == i && processedMessage.Event == message.GetType().Name&& processedMessage.EvenTime == message.On);
        }
        public async Task Then_all_projections_are_subscribed()
        {
            await ProjectionManager.Start(CancellationToken.None);

            await Task.Delay(1000);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .OnlyContain(connectedProjection => connectedProjection.State == ConnectedProjectionState.Subscribed);
        }
        public async Task VerifySetup()
        {
            (await Resolve <IReadonlyStreamStore>().ReadHeadPosition())
            .Should()
            .Be(HeadPosition.NoMessages);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .OnlyContain(connectedProjection => connectedProjection.State == ConnectedProjectionState.Stopped);
        }
        public void Then_the_projection_is_catching_up()
        {
            ProjectionManager.Start(_projection);

            _waitForProjection.WaitOne();
            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(connectedProjection =>
                     connectedProjection.Name.Equals(_projection) &&
                     connectedProjection.State == ConnectedProjectionState.CatchingUp);
        }
예제 #5
0
        public async Task Then_all_projections_that_should_not_resume_are_still_stopped()
        {
            await ProjectionManager.Resume(CancellationToken.None);

            await Task.Delay(1000);

            ProjectionManager
            .GetRegisteredProjections()
            .Where(projection => projection.Name != _projectionToResume)
            .Should()
            .OnlyContain(projection => projection.State == ConnectedProjectionState.Stopped);
        }
예제 #6
0
        public async Task Then_the_projection_is_catching_up()
        {
            await ProjectionManager.Start(_projection, CancellationToken.None);

            _waitForProjection.WaitOne();
            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(connectedProjection =>
                     connectedProjection.Id == _projection &&
                     connectedProjection.State == ConnectedProjectionState.CatchingUp);
        }
예제 #7
0
        public async Task Then_the_projection_is_subscribed()
        {
            ProjectionManager.Start(_projection);

            await Task.Delay(250);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(connectedProjection =>
                     connectedProjection.Name.Equals(_projection) &&
                     connectedProjection.State == ConnectedProjectionState.Subscribed);
        }
        public async Task VerifySetup()
        {
            (await Resolve <IReadonlyStreamStore>().ReadHeadPosition())
            .Should()
            .BeGreaterThan(ExpectedVersion.NoStream);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(connectedProjection =>
                     connectedProjection.Name.Equals(_projection) &&
                     connectedProjection.State == ConnectedProjectionState.Stopped);
        }
        public async Task Then_the_projection_is_subscribed()
        {
            await ProjectionManager.Start(_projection, CancellationToken.None);

            await Task.Delay(250);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(connectedProjection =>
                     connectedProjection.Id == _projection &&
                     connectedProjection.State == ConnectedProjectionState.Subscribed);
        }
예제 #10
0
        public async Task Then_all_projections_that_should_resume_are_subscribed()
        {
            await ProjectionManager.Resume(CancellationToken.None);

            await Task.Delay(1000);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(projection =>
                     projection.Name == _projectionToResume &&
                     projection.State == ConnectedProjectionState.Subscribed);
        }
예제 #11
0
        public async Task VerifySetup()
        {
            (await Resolve <IReadonlyStreamStore>().ReadHeadPosition())
            .Should()
            .Be(ExpectedVersion.NoStream);

            (await _registeredProjections
             .GetProjection(_projectionToResume)
             .ShouldResume(CancellationToken.None))
            .Should()
            .BeTrue();

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .OnlyContain(connectedProjection => connectedProjection.State == ConnectedProjectionState.Stopped);
        }
        public async Task VerifySetup()
        {
            (await Resolve <IReadonlyStreamStore>().ReadHeadPosition())
            .Should()
            .BeGreaterThan(HeadPosition.NoMessages);

            (await Resolve <IConnectedProjectionContext <ProjectionContext> >().GetProjectionPosition(_projection, CancellationToken.None))
            .Should()
            .Be(0);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(connectedProjection =>
                     connectedProjection.Id == _projection &&
                     connectedProjection.State == ConnectedProjectionState.Stopped);
        }
예제 #13
0
        public async Task VerifySetup()
        {
            (await Resolve <IReadonlyStreamStore>().ReadHeadPosition())
            .Should()
            .BeGreaterThan(ExpectedVersion.NoStream);

            (await Resolve <ProjectionContext>().GetRunnerPositionAsync(_projection, CancellationToken.None))
            .Should()
            .Be(0);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(connectedProjection =>
                     connectedProjection.Name == _projection &&
                     connectedProjection.State == ConnectedProjectionState.Stopped);
        }
        public async Task Then_the_projection_is_subscribed_once_caught_up()
        {
            ProjectionManager.Start(_projection);

            _waitForProjection.WaitOne();
            _waitForProjection.Reset();
            _waitForProjection.WaitOne();
            await Task.Delay(1000);

            ProjectionManager
            .GetRegisteredProjections()
            .Should()
            .Contain(connectedProjection =>
                     connectedProjection.Name.Equals(_projection) &&
                     connectedProjection.State == ConnectedProjectionState.Subscribed);
            var assertionContext = new ProjectionContext(CreateContextOptionsFor <ProjectionContext>());

            assertionContext.ProcessedEvents
            .Should()
            .ContainAll(
                PushedMessages,
                (processedMessage, message, i) => processedMessage.Position == i && processedMessage.Event == message.GetType().Name&& processedMessage.EvenTime == message.On);
        }
 public void Then_only_2_are_registered()
 {
     ProjectionManager.GetRegisteredProjections().Count().Should().Be(2);
 }
 private ConnectedProjectionState GetStateFor(ConnectedProjectionIdentifier projection) => ProjectionManager
 .GetRegisteredProjections()
 .Single(connectedProjection => connectedProjection.Id == projection)
 .State;
예제 #17
0
 private ConnectedProjectionState GetStateFor(ConnectedProjectionName projection) => ProjectionManager
 .GetRegisteredProjections()
 .Single(connectedProjection => connectedProjection.Name == projection)
 .State;