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); }
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); }
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); }
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); }
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); }
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); }
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;
private ConnectedProjectionState GetStateFor(ConnectedProjectionName projection) => ProjectionManager .GetRegisteredProjections() .Single(connectedProjection => connectedProjection.Name == projection) .State;