Exemplo n.º 1
0
        public async Task VideoClubPointsServiceHandlesProcessedPurchasedOrderForExistingMembership()
        {
            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 Video 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
                    },
                }
            };

            IVideoClubMembershipRepository fakeRepo = GetFakeVideoClubMembershipRepository(VideoClubMembership.Create(customerId));

            VideoClubPointsService sut = new VideoClubPointsService(mockMediator.Object, fakeRepo);

            await sut.Handle(processedPurchaseOrder);

            mockMediator.Verify(m => m.Send(It.Is <AwardCustomerPoints>(a => a.Points == 5), It.IsAny <CancellationToken>()), Times.Once);
        }
Exemplo n.º 2
0
        public void VideoClubServiceActivateMembership()
        {
            AcceptingPurchaseOrderItemLine acceptingPurchaseOrderItemLine = new AcceptingPurchaseOrderItemLine
            {
                CustomerId = 3344656,
                Item       = new ItemLineRequest {
                    Description = "Video Club Membership", Type = ItemLineType.Membership, Category = ItemLineCategory.Video
                }
            };
            ActivatedMembership activatedMembership = new ActivatedMembership
            {
                Activated = true
            };

            var mockMediator = new Mock <IMediator>();
            IVideoClubMembershipRepository videoClubMembershipRepository = GetFakeVideoClubMembershipRepository();

            var sut = new VideoClubService(mockMediator.Object, videoClubMembershipRepository);

            sut.Handle(acceptingPurchaseOrderItemLine);

            videoClubMembershipRepository.Get(3344656).ShouldNotBeNull();
        }
Exemplo n.º 3
0
 public VideoClubPointsService(IMediator mediator, IVideoClubMembershipRepository repository)
 {
     _Mediator   = mediator;
     _Repository = repository;
 }