Esempio n. 1
0
        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;
        }