public CanPayWithAccount()
        {
            var edoContextMock        = MockEdoContextFactory.Create();
            var bookingRecordsManager = new BookingRecordsManager(edoContextMock.Object, Mock.Of <IDateTimeProvider>(), Mock.Of <ITagProcessor>(),
                                                                  Mock.Of <IAccommodationService>(), Mock.Of <IAccommodationBookingSettingsService>());

            var dateTimeProvider = new DefaultDateTimeProvider();

            _accountPaymentService = new AccountPaymentService(Mock.Of <IAccountPaymentProcessingService>(), edoContextMock.Object,
                                                               dateTimeProvider, Mock.Of <IAccountManagementService>(), Mock.Of <IEntityLocker>(), bookingRecordsManager);

            edoContextMock
            .Setup(c => c.AgencyAccounts)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <AgencyAccount>
            {
                new AgencyAccount
                {
                    Id       = 1,
                    Balance  = 0,
                    Currency = Currencies.USD,
                    AgencyId = 1,
                    IsActive = true
                },
                new AgencyAccount
                {
                    Id       = 3,
                    Balance  = 5,
                    Currency = Currencies.USD,
                    AgencyId = 3,
                    IsActive = true
                }
            }));
        }
Beispiel #2
0
        public CanPayWithAccount()
        {
            var edoContextMock = MockEdoContextFactory.Create();

            var dateTimeProvider = new DefaultDateTimeProvider();

            _accountPaymentService = new AccountPaymentService(Mock.Of <IAccountPaymentProcessingService>(), edoContextMock.Object,
                                                               dateTimeProvider, Mock.Of <IBalanceManagementNotificationsService>());

            edoContextMock
            .Setup(c => c.AgencyAccounts)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <AgencyAccount>
            {
                new AgencyAccount
                {
                    Id       = 1,
                    Balance  = 0,
                    Currency = Currencies.USD,
                    AgencyId = 1,
                    IsActive = true
                },
                new AgencyAccount
                {
                    Id       = 3,
                    Balance  = 5,
                    Currency = Currencies.USD,
                    AgencyId = 3,
                    IsActive = true
                }
            }));
        }
Beispiel #3
0
        public RefundMoneyTests()
        {
            var entityLockerMock = new Mock <IEntityLocker>();

            entityLockerMock.Setup(l => l.Acquire <It.IsAnyType>(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(Result.Success()));

            var edoContextMock   = MockEdoContextFactory.Create();
            var edoContextMock1  = edoContextMock;
            var mockedEdoContext = edoContextMock.Object;

            var accountPaymentProcessingService = new AccountPaymentProcessingService(
                mockedEdoContext, entityLockerMock.Object, Mock.Of <IAccountBalanceAuditService>());

            var dateTimeProviderMock = new Mock <IDateTimeProvider>();

            dateTimeProviderMock.Setup(d => d.UtcNow()).Returns(CancellationDate);

            _accountPaymentService = new AccountPaymentService(accountPaymentProcessingService, mockedEdoContext,
                                                               dateTimeProviderMock.Object, Mock.Of <IBalanceManagementNotificationsService>());

            var strategy = new ExecutionStrategyMock();

            var dbFacade = new Mock <DatabaseFacade>(mockedEdoContext);

            dbFacade.Setup(d => d.CreateExecutionStrategy()).Returns(strategy);
            edoContextMock.Setup(c => c.Database).Returns(dbFacade.Object);

            edoContextMock1
            .Setup(c => c.Agencies)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <Agency>
            {
                new Agency
                {
                    Id       = 1,
                    Name     = "Agency",
                    ParentId = null,
                },
            }));

            edoContextMock1
            .Setup(c => c.AgencyAccounts)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <AgencyAccount>
            {
                _account,
            }));


            edoContextMock1
            .Setup(c => c.Payments)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <Payment>
            {
                _payment,
            }));
        }
Beispiel #4
0
        public RefundMoneyTests()
        {
            var entityLockerMock = new Mock <IEntityLocker>();

            entityLockerMock.Setup(l => l.Acquire <It.IsAnyType>(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(Result.Success()));

            var edoContextMock = MockEdoContextFactory.Create();

            _edoContextMock   = edoContextMock;
            _mockedEdoContext = edoContextMock.Object;

            var accountPaymentProcessingService = new AccountPaymentProcessingService(
                _mockedEdoContext, entityLockerMock.Object, Mock.Of <IAccountBalanceAuditService>());

            _dateTimeProviderMock = new Mock <IDateTimeProvider>();
            _dateTimeProviderMock.Setup(d => d.UtcNow()).Returns(new DateTime(2020, 1, 1));

            var accountManagementService = new AccountManagementService(_mockedEdoContext, _dateTimeProviderMock.Object,
                                                                        Mock.Of <ILogger <AccountManagementService> >(), Mock.Of <IAdministratorContext>(), Mock.Of <IManagementAuditService>(),
                                                                        entityLockerMock.Object);

            var bookingRecordsManager = new BookingRecordsManager(edoContextMock.Object, _dateTimeProviderMock.Object, Mock.Of <ITagProcessor>(),
                                                                  Mock.Of <IAccommodationService>(), Mock.Of <IAccommodationBookingSettingsService>());

            _accountPaymentService = new AccountPaymentService(accountPaymentProcessingService, _mockedEdoContext,
                                                               _dateTimeProviderMock.Object, accountManagementService, entityLockerMock.Object, bookingRecordsManager);

            var strategy = new ExecutionStrategyMock();

            var dbFacade = new Mock <DatabaseFacade>(_mockedEdoContext);

            dbFacade.Setup(d => d.CreateExecutionStrategy()).Returns(strategy);
            edoContextMock.Setup(c => c.Database).Returns(dbFacade.Object);

            _edoContextMock
            .Setup(c => c.Agencies)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <Agency>
            {
                new Agency
                {
                    Id       = 1,
                    Name     = "Agency",
                    ParentId = null,
                },
            }));

            _edoContextMock
            .Setup(c => c.AgencyAccounts)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <AgencyAccount>
            {
                _account,
            }));

            _edoContextMock
            .Setup(c => c.Bookings)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <Booking>
            {
                _booking,
            }));

            _edoContextMock
            .Setup(c => c.Payments)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <Payment>
            {
                _payment,
            }));
        }
        public TransferMoneyTests()
        {
            var entityLockerMock = new Mock <IEntityLocker>();

            entityLockerMock.Setup(l => l.Acquire <It.IsAnyType>(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(Result.Success()));

            var edoContextMock = MockEdoContextFactory.Create();

            _edoContextMock   = edoContextMock;
            _mockedEdoContext = edoContextMock.Object;

            var accountPaymentProcessingService = new AccountPaymentProcessingService(
                _mockedEdoContext, entityLockerMock.Object, Mock.Of <IAccountBalanceAuditService>());

            var bookingRecordsManager = new BookingRecordsManager(edoContextMock.Object, Mock.Of <IDateTimeProvider>(), Mock.Of <ITagProcessor>(),
                                                                  Mock.Of <IAccommodationService>(), Mock.Of <IAccommodationBookingSettingsService>());

            _accountPaymentService = new AccountPaymentService(accountPaymentProcessingService, _mockedEdoContext,
                                                               Mock.Of <IDateTimeProvider>(), Mock.Of <IAccountManagementService>(), entityLockerMock.Object, bookingRecordsManager);

            var strategy = new ExecutionStrategyMock();

            var dbFacade = new Mock <DatabaseFacade>(_mockedEdoContext);

            dbFacade.Setup(d => d.CreateExecutionStrategy()).Returns(strategy);
            edoContextMock.Setup(c => c.Database).Returns(dbFacade.Object);

            _edoContextMock
            .Setup(c => c.Agencies)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <Agency>
            {
                new Agency
                {
                    Id       = 1,
                    Name     = "RootAgency",
                    ParentId = null,
                },
                new Agency
                {
                    Id       = 2,
                    Name     = "ChildAgency",
                    ParentId = 1,
                },
                new Agency
                {
                    Id       = 3,
                    Name     = "UnrelatedAgency",
                    ParentId = null,
                },
            }));

            _edoContextMock
            .Setup(c => c.AgencyAccounts)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <AgencyAccount>
            {
                new AgencyAccount
                {
                    Id       = 1,
                    Balance  = 1000,
                    Currency = Currencies.USD,
                    AgencyId = 1,
                    IsActive = true
                },
                new AgencyAccount
                {
                    Id       = 2,
                    Balance  = 1000,
                    Currency = Currencies.USD,
                    AgencyId = 2,
                    IsActive = true
                },
                new AgencyAccount
                {
                    Id       = 3,
                    Balance  = 1000,
                    Currency = Currencies.USD,
                    AgencyId = 3,
                    IsActive = true
                },
                new AgencyAccount
                {
                    Id       = 4,
                    Balance  = 1000,
                    Currency = Currencies.EUR,
                    AgencyId = 2,
                    IsActive = true
                },
            }));
        }