public async Task WhenPeriodOfLifeCycleStageWasChanged() { var projection = new PublicServiceLifeCycleListProjections(); var resolver = ConcurrentResolve.WhenEqualToHandlerMessageType(projection.Handlers); var stageWasAddedToLifeCycle = _fixture.Create <StageWasAddedToLifeCycle>(); var periodOfLifeCycleStageWasChanged = new PeriodOfLifeCycleStageWasChanged( new PublicServiceId(stageWasAddedToLifeCycle.PublicServiceId), LifeCycleStageId.FromNumber(stageWasAddedToLifeCycle.LifeCycleStageId), _fixture.Create <LifeCycleStagePeriod>()); await new ConnectedProjectionScenario <BackofficeContext>(resolver) .Given( new Envelope <StageWasAddedToLifeCycle>(new Envelope(stageWasAddedToLifeCycle, new Dictionary <string, object>())), new Envelope <PeriodOfLifeCycleStageWasChanged>(new Envelope(periodOfLifeCycleStageWasChanged, new Dictionary <string, object>()))) .Verify(async context => { var publicService = await context.PublicServiceLifeCycleList.FirstAsync(a => a.PublicServiceId == stageWasAddedToLifeCycle.PublicServiceId && a.LifeCycleStageId == stageWasAddedToLifeCycle.LifeCycleStageId); publicService.Should().BeEquivalentTo(new PublicServiceLifeCycleItem() { LifeCycleStageId = stageWasAddedToLifeCycle.LifeCycleStageId, PublicServiceId = stageWasAddedToLifeCycle.PublicServiceId, LifeCycleStageType = stageWasAddedToLifeCycle.LifeCycleStageType, From = periodOfLifeCycleStageWasChanged.From, To = periodOfLifeCycleStageWasChanged.To }); return(VerificationResult.Pass()); }) .Assert(); }
private void When(PeriodOfLifeCycleStageWasChanged @event) { _lifeCycle.Route(@event); }
private void When(PeriodOfLifeCycleStageWasChanged @event) { var lifeCycleStagePeriod = new LifeCycleStagePeriod(new ValidFrom(@event.From), new ValidTo(@event.To)); _lifeCycleStagePeriods[@event.LifeCycleStageId] = lifeCycleStagePeriod; }