public CreatePaymentHandlerTests()
 {
     _eventStore            = new Mock <IEventStore <Payment> >();
     _eventDispatcher       = new Mock <IEventDispatcher <Payment> >();
     _abApiClient           = new Mock <IAcquiringBankHttpClient>();
     _sut                   = new CreatePaymentHandler(_eventStore.Object, _eventDispatcher.Object, _abApiClient.Object);
     _mockCommand           = new CreatePaymentCommand(default, default, default, default, default, default, default);
Example #2
0
        public void SetUp()
        {
            // Boilerplate
            _mockRepository = new MockRepository(MockBehavior.Strict);
            _fixture        = new Fixture();

            // Mock setup
            _logger            = _mockRepository.Create <ILogger <CreatePaymentHandler> >(MockBehavior.Loose);
            _mockBankApiClient = _mockRepository.Create <IMockBankApiClient>();
            _mediator          = _mockRepository.Create <IMediator>();
            _merchantContext   = _mockRepository.Create <IMerchantContext>();

            // Mock default
            SetupMockDefaults();

            // Sut instantiation
            _createPaymentHandler = new CreatePaymentHandler(
                _logger.Object,
                _mockBankApiClient.Object,
                _mediator.Object,
                _merchantContext.Object
                );
        }
        public void AddsPaymentToRepository_RaisesIntegrationEvent()
        {
            var paymentsRepository = new Mock <IPaymentsRepository>(MockBehavior.Strict);

            paymentsRepository.Setup(r => r.AddAsync(It.Is <Accounting.Domain.Payment>(p => IsExpectedPayment(p)))).Returns(Task.CompletedTask).Verifiable();
            paymentsRepository.Setup(r => r.SaveChanges()).Returns(Task.CompletedTask).Verifiable();

            var busPublisher = new Mock <IBusPublisher>(MockBehavior.Strict);

            busPublisher.Setup(p => p.Publish(It.Is <IPaymentCreated>(e => IsExpectedEvent(e)))).Returns(Task.CompletedTask).Verifiable();

            var userVerifier = new Mock <IUserVerifier>(MockBehavior.Strict);

            userVerifier.Setup(r => r.AssertExists(Cmd.UserId)).Returns(Task.CompletedTask).Verifiable();

            var handler = new CreatePaymentHandler(paymentsRepository.Object, busPublisher.Object, userVerifier.Object);
            var result  = handler.HandleAsync(Cmd, new Mock <ICorrelationContext>().Object).GetAwaiter().GetResult();

            Assert.IsTrue(result.Successful);
            paymentsRepository.Verify();
            busPublisher.Verify();
            userVerifier.Verify();
        }
Example #4
0
 public CreatePaymentHandlerTests()
 {
     _mocker         = new AutoMoqer();
     _classUnderTest = _mocker.Resolve <CreatePaymentHandler>();
 }