public async Task BookClubPointsServiceHandlesProcessedPurchasedOrderForExistingMembership() { int customerId = 344656; AwardedCustomerPoints awardedCustomerPoints = new AwardedCustomerPoints(); var mockMediator = new Mock <IMediator>(); mockMediator.Setup(m => m.Send(It.IsAny <AwardCustomerPoints>(), It.IsAny <CancellationToken>())) .ReturnsAsync(awardedCustomerPoints) .Verifiable("Awarded book club membership points."); ProcessedPurchaseOrder processedPurchaseOrder = new ProcessedPurchaseOrder { CustomerId = customerId, PurchaseOrderId = 4567890, Items = new List <ItemLineRequest> { new ItemLineRequest { Description = "Comprehensive First Aid Training", Type = ItemLineType.Product, Category = ItemLineCategory.Book }, new ItemLineRequest { Description = "The Girl on the Train", Type = ItemLineType.Product, Category = ItemLineCategory.Video }, } }; IBookClubMembershipRepository fakeRepo = GetFakeBookClubMembershipRepository(BookClubMembership.Create(customerId)); BookClubPointsService sut = new BookClubPointsService(mockMediator.Object, fakeRepo); await sut.Handle(processedPurchaseOrder); mockMediator.Verify(m => m.Send(It.Is <AwardCustomerPoints>(a => a.Points == 5), It.IsAny <CancellationToken>()), Times.Once); }
public void BookClubServiceActivateMembership() { AcceptingPurchaseOrderItemLine acceptingPurchaseOrderItemLine = new AcceptingPurchaseOrderItemLine { CustomerId = 3344656, Item = new ItemLineRequest { Description = "Book Club Membership", Type = ItemLineType.Membership, Category = ItemLineCategory.Book } }; ActivatedMembership activatedMembership = new ActivatedMembership { Activated = true }; var mockMediator = new Mock <IMediator>(); IBookClubMembershipRepository bookClubMembershipRepository = GetFakeBookClubMembershipRepository(); var sut = new BookClubService(mockMediator.Object, bookClubMembershipRepository); sut.Handle(acceptingPurchaseOrderItemLine); bookClubMembershipRepository.Get(acceptingPurchaseOrderItemLine.CustomerId).ShouldNotBeNull(); }
public BookClubPointsService(IMediator mediator, IBookClubMembershipRepository repository) { _Mediator = mediator; _Repository = repository; }