Exemple #1
0
        public async Task ShouldSendCashInAndBonusIssues_WhenBonusOperationValid()
        {
            // Arrange
            var fixture = new BonusOperationServiceFixture();

            var bonusOperation = fixture.CreateBonusOperation();

            var mapper       = MapperHelper.CreateAutoMapper();
            var expectedType = mapper.Map <BonusOperationType>(bonusOperation.BonusOperationType);

            // Execute
            await fixture.OperationService.AddBonusOperationAsync(bonusOperation);

            // Assert

            fixture.BonusIssuedEventPublisher
            .Verify(c => c.PublishAsync(
                        It.Is <BonusIssuedEvent>(x =>
                                                 x.BonusOperationType == expectedType &&
                                                 x.Amount == bonusOperation.Reward &&
                                                 x.CampaignId == Guid.Parse(bonusOperation.CampaignId) &&
                                                 x.CustomerId == bonusOperation.CustomerId &&
                                                 x.OperationId != Guid.Empty &&
                                                 x.TimeStamp == bonusOperation.TimeStamp)),
                    Times.Once);
        }
Exemple #2
0
        public async Task ShouldThrowException_WhenBonusOperationInvalid()
        {
            // Arrange
            var fixture = new BonusOperationServiceFixture();

            var bonusOperation = fixture.CreateBonusOperation();

            bonusOperation.CampaignId = "I am invalid id";

            // Execute
            await Assert.ThrowsAsync <ArgumentException>(() => fixture.OperationService.AddBonusOperationAsync(bonusOperation));

            // Assert
            fixture.BonusIssuedEventPublisher
            .Verify(c => c.PublishAsync(
                        It.IsAny <BonusIssuedEvent>()),
                    Times.Never);
        }