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); }
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); }