Esempio n. 1
0
        public async Task WhenLifeCycleStageWasRemoved()
        {
            var projection = new PublicServiceLifeCycleListProjections();
            var resolver   = ConcurrentResolve.WhenEqualToHandlerMessageType(projection.Handlers);

            var stageWasAddedToLifeCycle = _fixture.Create <StageWasAddedToLifeCycle>();
            var lifeCycleStageWasRemoved = new LifeCycleStageWasRemoved(
                new PublicServiceId(stageWasAddedToLifeCycle.PublicServiceId),
                LifeCycleStageId.FromNumber(stageWasAddedToLifeCycle.LifeCycleStageId));

            await new ConnectedProjectionScenario <BackofficeContext>(resolver)
            .Given(
                new Envelope <StageWasAddedToLifeCycle>(new Envelope(stageWasAddedToLifeCycle, new Dictionary <string, object>())),
                new Envelope <LifeCycleStageWasRemoved>(new Envelope(lifeCycleStageWasRemoved, new Dictionary <string, object>())))
            .Verify(async context =>
            {
                var publicService =
                    await context.PublicServiceLifeCycleList.FirstOrDefaultAsync(a =>
                                                                                 a.PublicServiceId == stageWasAddedToLifeCycle.PublicServiceId && a.LifeCycleStageId == stageWasAddedToLifeCycle.LifeCycleStageId);

                publicService.Should().BeNull();

                return(VerificationResult.Pass());
            })
            .Assert();
        }
 private void When(LifeCycleStageWasRemoved @event)
 {
     _lifeCycle.Route(@event);
 }
 private void When(LifeCycleStageWasRemoved @event)
 {
     _lifeCycleStagePeriods.Remove(@event.LifeCycleStageId);
 }