public async Task Then_the_calculation_is_delayed_if_the_active_period_is_in_progress()
        {
            // Arrange
            _collectionPeriods.First().SetPeriodEndInProgress(true);

            var incentive = _fixture.Create <Domain.ApprenticeshipIncentives.ApprenticeshipIncentive>();
            var command   = new CalculateEarningsCommand(incentive.Id);

            // Act
            await _sut.Handle(command);

            // Assert
            _mockCommandPublisher.Verify(x => x.Send(It.Is <CalculateEarningsCommand>(y => y.ApprenticeshipIncentiveId == incentive.Id), It.Is <TimeSpan>(y => y.TotalHours == 1), It.IsAny <CancellationToken>()));
            _mockIncentiveDomainRespository.Verify(x => x.Find(It.IsAny <Guid>()), Times.Never);
        }
Exemplo n.º 2
0
        public async Task Then_a_earnings_calculated_event_is_raised()
        {
            //Arrange
            var incentive = _fixture.Create <Domain.ApprenticeshipIncentives.ApprenticeshipIncentive>();

            var command = new CalculateEarningsCommand(incentive.Id);

            _mockIncentiveDomainRespository.Setup(x => x
                                                  .Find(command.ApprenticeshipIncentiveId))
            .ReturnsAsync(incentive);

            // Act
            await _sut.Handle(command);

            // Assert
            incentive.FlushEvents().OfType <EarningsCalculated>().ToList().Count.Should().Be(1);
        }