Exemplo n.º 1
0
        private static BookingDocumentsService CreateBookingDocumentsService(Booking booking)
        {
            // If property is not initialized thrown NullReferenceException
            booking.Rooms = new List <BookedRoom>();

            var edoContext = MockEdoContextFactory.Create();

            edoContext.Setup(c => c.Bookings)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <Booking> {
                booking
            }));

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

            return(new BookingDocumentsService(
                       edoContext.Object,
                       Mock.Of <IOptions <BankDetails> >(),
                       bookingRecordManager,
                       Mock.Of <IAccommodationService>(),
                       Mock.Of <ICounterpartyService>(),
                       Mock.Of <IInvoiceService>(),
                       Mock.Of <IReceiptService>(),
                       Mock.Of <IImageFileService>()));
        }
Exemplo n.º 2
0
        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
                }
            }));
        }
Exemplo n.º 3
0
        private static BookingDocumentsService CreateBookingDocumentsService(Booking booking, bool hasInvoices)
        {
            // If property is not initialized thrown NullReferenceException
            booking.Rooms = new List <BookedRoom>();

            var edoContext = MockEdoContextFactory.Create();

            edoContext.Setup(c => c.Bookings)
            .Returns(DbSetMockProvider.GetDbSetMock(new List <Booking> {
                booking
            }));

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

            var invoices = hasInvoices
                ? new List <(DocumentRegistrationInfo Metadata, BookingInvoiceData Data)>
            {
                (
                    new DocumentRegistrationInfo(It.IsAny <string>(), It.IsAny <DateTime>()),
                    new BookingInvoiceData(
                        new BookingInvoiceData.BuyerInfo(),
                        new BookingInvoiceData.SellerInfo(),
                        It.IsAny <string>(),
                        new List <BookingInvoiceData.InvoiceItemInfo>(),
                        new MoneyAmount(),
                        It.IsAny <DateTime>(),
                        It.IsAny <DateTime>(),
                        It.IsAny <DateTime>(),
                        It.IsAny <BookingPaymentStatuses>(),
                        It.IsAny <DateTime?>())
                )
            }
                : new List <(DocumentRegistrationInfo Metadata, BookingInvoiceData Data)>();

            var invoiceServiceMock = new Mock <IInvoiceService>();

            invoiceServiceMock.Setup(i => i.Get <BookingInvoiceData>(It.IsAny <ServiceTypes>(), It.IsAny <ServiceSource>(), It.IsAny <string>()))
            .ReturnsAsync(invoices);

            return(new BookingDocumentsService(
                       edoContext.Object,
                       Mock.Of <IOptions <BankDetails> >(),
                       bookingRecordManager,
                       Mock.Of <IAccommodationService>(),
                       Mock.Of <ICounterpartyService>(),
                       invoiceServiceMock.Object,
                       Mock.Of <IReceiptService>(),
                       Mock.Of <IImageFileService>()));
        }
Exemplo n.º 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,
            }));
        }
Exemplo n.º 5
0
        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
                },
            }));
        }