コード例 #1
0
        public async void Handle_ShouldCancelPayment()
        {
            var accountsRepo = new Mock <IAccountRepository>();

            var account = new Account(Guid.NewGuid(), 100);

            account.AddPaymentRequest(new DateTime(2020, 3, 1), 40);

            accountsRepo.Setup(a => a.GetAsync(account.Id)).ReturnsAsync(account);

            var paymentRepo = new Mock <IPaymentRepository>();

            var payment = account.PaymentRequests.First();

            paymentRepo.Setup(p => p.GetAsync(payment.Id)).ReturnsAsync(payment);
            paymentRepo.Setup(p => p.UnitOfWork.SaveEntitiesAsync(It.IsAny <CancellationToken>())).ReturnsAsync(true);

            var reason  = "cancelled";
            var command = new CancelPaymentCommand(account.Id, payment.Id, reason);

            var handler = new CancelPaymentHandler(accountsRepo.Object, paymentRepo.Object);
            await handler.Handle(command, new CancellationToken());

            Assert.Equal(PaymentStatus.Closed, payment.Status);
            Assert.Equal(reason, payment.Reason);
        }
コード例 #2
0
        public void SetUp()
        {
            this.completePaymentHandler = new CompletePaymentHandler();
            this.cancelPaymentHandler   = new CancelPaymentHandler();

            IntegrationSeed.Method = this.Seed;
            this.Init();

            this.registrationDbContext = Startup.ServiceProvider.GetService(typeof(RegistrationDbContext)) as RegistrationDbContext;
        }