示例#1
0
            public void GetProviderWithRoomTypeAndRatePlansCallCorrectMethods()
            {
                //Arrange
                const int ROOMTYPE_ID = 10;
                const long BUSINESS_ID = 5002;

                var business = new Model.Business.Business {Id = BUSINESS_ID, ShortName = "TestBus2", DefaultCultureCode = "en-GB"};
                var roomTypes = new List<RoomType>
                {
                    new RoomType
                        {
                            Id = ROOMTYPE_ID,
                            VariantRatePlans = new List<VariantRatePlan>
                            {
                                new VariantRatePlan
                                    {
                                        CancellationClass = new EnumEntity { Code = "FN" },
                                        Id = 1
                                    }
                            }
                        }
                };

                var businessManager = MockRepository.GenerateMock<IBusinessManager>();
                var distributorManager = MockRepository.GenerateMock<IDistributionManager>();
                var roomTypeManager = MockRepository.GenerateMock<IRoomTypeManager>();
                var rateplanManager = MockRepository.GenerateMock<IRatePlanManager>();

                contentService.BusinessManager = businessManager;
                contentService.DistributionManager = distributorManager;
                contentService.RoomTypeManager = roomTypeManager;
                contentService.RatePlanManager = rateplanManager;

                roomTypeManager.Stub(a => a.GetRoomTypesAndBaseRatePlans(business.Id, business.DefaultCultureCode)).Return(roomTypes);
                businessManager.Expect(b => b.GetLimitedBusinessByShortname(business.ShortName)).Return(business);
                distributorManager.Expect(d => d.GetDistributorsAndChannels(business.Id, business.DefaultCultureCode));
                rateplanManager.Expect(r => r.GetRatePlans(ROOMTYPE_ID, BUSINESS_ID, business.DefaultCultureCode));
                
                //Act
                contentService.GetProviderWithRoomTypeAndRatePlans(business.ShortName, string.Empty);

                //Assert
                businessManager.VerifyAllExpectations();
                distributorManager.VerifyAllExpectations();
                roomTypeManager.VerifyAllExpectations();
                rateplanManager.VerifyAllExpectations();
            }
示例#2
0
            public void SetMerchantInfoOnTransactionModel_PaymentGatewayIsNotOgone_Expect_TransactionModelMerchantId_SetTo_EmptyString()
            {
                // Arrange
                var mockLogger = MockRepository.GenerateMock<ILogger>();
                var target = new SettlementHelper(mockLogger, mockServiceClient);
                var transactionModel = new Model.Settlement.TransactionModel() { };
                var booking = new Model.Booking.Booking() {};
                                 
                var business = new Model.Business.Business() {MerchantStatusEnum = MerchantStatusEnum.OwnMerchant};
                var businessChannel = new Model.Business.Business();
                var settlementPayments = new List<SettlementPaymentDto>() { new SettlementPaymentDto() { MerchantPSPID = "1", PaymentGatewayName = PaymentConstants.PAYMENT_GATEWAY_NAME_DATACASH } };

                //Act
                target.SetMerchantInfoOnTransactionModel(transactionModel, booking, business, businessChannel, settlementPayments);

                //Assert
                Assert.AreEqual(transactionModel.MerchantId, string.Empty);
            }
示例#3
0
            public void EagleBusinessToEcomBusinessReturnsBusinessAccountWithMappedProperties()
            {
                // Arrange
                var createdByUser = new UserExtension {FirstName = "John", LastName = "Doe"};
                var updatedByUser = new UserExtension {FirstName = "Dummy", LastName = "User"};

                var eagleBusiness = new Model.Business.Business
                {
                    Id = 12345,
                    Name = "Business 1", 
                    ShortName = "Bus1", 
                    MerchantDetails = new MerchantDetails(),
                    CreatedByUser = createdByUser, 
                    UpdatedByUser = updatedByUser,
                    ReferenceCode = "Bus000001",
                    Provider = new Provider { ContentId = "1544BCC" },
                    OnlineBookingScenarios = new Collection<OnlineBookingScenario>()
                };
                
                // Act
                List<string> missedChannels;
                EcomBusinessAccount ecommBusiness = EcomConverter.EagleBusinessToEcom(eagleBusiness, string.Empty, out missedChannels);

                // Assert
                Assert.AreEqual(string.Empty, ecommBusiness.CreatedByTitle, "CreatedByTitle should be empty");
                Assert.AreEqual(createdByUser.FirstName, ecommBusiness.CreatedByFirstname, "CreatedByFirstname doesn't match");
                Assert.AreEqual(createdByUser.LastName, ecommBusiness.CreatedByLastname, "CreatedByLastname doesn't match");
                Assert.AreEqual(string.Empty, ecommBusiness.ModifiedByTitle, "ModifiedByTitle should be empty");
                Assert.AreEqual(updatedByUser.FirstName, ecommBusiness.ModifiedByFirstname, "ModifiedByFirstname doesn't match");
                Assert.AreEqual(updatedByUser.LastName, ecommBusiness.ModifiedByLastname, "ModifiedByLastname doesn't match");
                Assert.AreEqual(EcomConverter.EXTERNAL_PRODUCT_PROVIDER_CODE, ecommBusiness.BusinessAccountTypeId, "BusinessAccountTypeId doesn't match");
                Assert.AreEqual(eagleBusiness.Name, ecommBusiness.FullName, "FullName doesn't match");
                Assert.AreEqual(eagleBusiness.ShortName, ecommBusiness.ShortName, "ShortName doesn't match");
                Assert.AreEqual(eagleBusiness.ReferenceCode, ecommBusiness.ReferenceCode, "ReferenceCode doesn't match");
                Assert.AreEqual(eagleBusiness.Provider.ContentId, ecommBusiness.ContentId, "ContentId doesn't match");
                Assert.IsFalse(ecommBusiness.IsMerchant, "IsMerchant should be false");
            }
            public void GetBusinessInformationWithExpectedResult()
            {
                // Arrange
                const long BUSINESS_TO_GET = 1;
                var stubBusinessManager = MockRepository.GenerateStub<IBusinessManager>();

                const string SERIALIZED_TIME_ZONE =
                    "Azores Standard Time;-60;(UTC-01:00) Azores;Azores Standard Time;Azores Daylight Time;[01:01:0001;12:31:9999;60;[0;02:00:00;3;5;0;];[0;03:00:00;10;5;0;];];";
                TimeZoneInfo timeZone = TimeZoneInfo.FromSerializedString(SERIALIZED_TIME_ZONE);
                Country stubCountry = new Country {Id = 1, Name = "United Kingdom"};
                var business = new Model.Business.Business
                {
                    Id = BUSINESS_TO_GET, 
                    BusinessStatus = new EnumEntity {Code = BusinessStatus.ACTIVE, Name = "Active"}, 
                    BusinessType = BusinessTypeEnum.Provider, 
                    Name = "FullName", 
                    ShortName = "ShortName", 
                    ReferenceCode = "ABC", 
                    IsTaxRegistered = true, 
                    TaxRegistrationNumber = "1234", 
                    BusinessRegistrationNumber = "4567", 
                    AddressLine1 = "123 Test Street", 
                    AddressLine2 = "45 Test Ave", 
                    AddressLine3 = "82 Test Street", 
                    PostCode = "W6 8JA", 
                    BusinessTelephoneNumber = "123 456 787", 
                    FaxNumber = "123 456 777", 
                    Email = "*****@*****.**", 
                    StateProvinceId = 1, 
                    StateProvince = new StateProvince{ Id = 1, Name = "London", Country = new Country { Id = 1, Name = "United Kingdom" }},
                    RegionId = 1, 
                    Region = new Region { Id = 1, Name = "UK"},
                    DefaultCultureCode = "en-GB", 
                    DefaultCulture = new Culture { Code = "en-GB", Name = "English (United Kingdom)", ParentCode = "en" },
                    TimeZone = timeZone,
                    WorkingCurrencyCode = "GBP", 
                    ContractCurrencyCode = "GBP", 
                    CountryId = 1, 
                    Country = stubCountry,
                    Longitude = new decimal(100.5), 
                    Latitude = new decimal(90.6), 
                    IsMerchant = true, 
                    MerchantDetailsId = 1, 
                    IsSMS = true, 
                    IsTermsAndConditions = true,
                    WorkingCurrency = new Currency("USD", "$", "US Dollars", 2),
                    Provider = new Provider { RoomCount = 20 }
                };
                stubBusinessManager.Stub(x => x.GetBusiness(BUSINESS_TO_GET)).Return(business);
                stubBusinessManager.Stub(x => x.GetCountryByBusiness(BUSINESS_TO_GET)).Return(stubCountry);

                PropertyManagementSystemService.BusinessManager = stubBusinessManager;

                // Act
                BusinessDto businessDto = PropertyManagementSystemService.GetBusinessInformation(BUSINESS_TO_GET);

                // Assert
                Assert.IsNotNull(businessDto, "Business information retrieved is null.");
                Assert.IsTrue(businessDto.Id != default(long), "Id attribute is not present on Business object.");
                Assert.AreEqual(business.BusinessStatus.Code, businessDto.BusinessStatusCode, "BusinessStatusCode attribute doesn't match on Business object.");
                Assert.AreEqual(business.BusinessStatus.Name, businessDto.BusinessStatusName, "BusinessStatusName attribute doesn't match on Business object.");
                Assert.AreEqual(business.BusinessType.GetCode(), businessDto.BusinessTypeCode, "BusinessTypeCode attribute doesn't match on Business object.");
                Assert.AreEqual(business.Name, businessDto.Name, "Name attribute doesn't match on Business object.");
                Assert.AreEqual(business.ShortName, businessDto.ShortName, "ShortName attribute doesn't match on Business object.");
                Assert.AreEqual(business.ReferenceCode, businessDto.ReferenceCode, "ReferenceCode attribute doesn't match on Business object.");
                Assert.AreEqual(business.IsTaxRegistered, businessDto.IsTaxRegistered, "IsTaxRegistered attribute doesn't match on Business object.");
                Assert.AreEqual(business.TaxRegistrationNumber, businessDto.TaxRegistrationNumber, "TaxRegistrationNumber attribute doesn't match on Business object.");
                Assert.AreEqual(business.BusinessRegistrationNumber, businessDto.BusinessRegistrationNumber, "BusinessRegistrationNumber attribute doesn't match on Business object.");
                Assert.AreEqual(business.AddressLine1, businessDto.AddressLine1, "AddressLine1 attribute doesn't match on Business object.");
                Assert.AreEqual(business.AddressLine2, businessDto.AddressLine2, "AddressLine2 attribute doesn't match on Business object.");
                Assert.AreEqual(business.AddressLine3,businessDto.AddressLine3, "AddressLine3 attribute doesn't match on Business object.");
                Assert.AreEqual(business.BusinessTelephoneNumber, businessDto.BusinessTelephoneNumber, "BusinessTelephoneNumber attribute doesn't match on Business object.");
                Assert.AreEqual(business.FaxNumber, businessDto.FaxNumber, "FaxNumber attribute doesn't match on Business object.");
                Assert.AreEqual(business.Email, businessDto.Email, "Email attribute doesn't match on Business object.");
                Assert.AreEqual(business.StateProvinceId, businessDto.StateProvinceId, "StateProvinceId attribute doesn't match on Business object.");
                Assert.AreEqual(business.PostCode, businessDto.PostCode, "PostCode attribute doesn't match on Business object.");
                Assert.AreEqual(business.RegionId, businessDto.RegionId, "RegionId attribute doesn't match on Business object.");
                Assert.AreEqual(business.DefaultCultureCode, businessDto.DefaultCultureCode, "DefaultCultureCode attribute doesn't match on Business object.");
                Assert.AreEqual(business.TimeZone.ToSerializedString(), businessDto.TimeZone, "TimeZone attribute doesn't match on Business object.");
                Assert.AreEqual(business.WorkingCurrencyCode, businessDto.WorkingCurrencyCode, "Working Currency code doesn't match on Business object.");
                Assert.AreEqual(business.ContractCurrencyCode, businessDto.ContractCurrencyCode, "Contract Currency code doesn't match on Business object.");
                Assert.AreEqual(business.Longitude, businessDto.Longitude, "Longitude attribute doesn't match on Business object.");
                Assert.AreEqual(business.Latitude, businessDto.Latitude, "Latitude attribute doesn't match on Business object.");
                Assert.AreEqual(business.IsMerchant, businessDto.IsMerchant, "IsMerchant attribute doesn't match on Business object.");
                Assert.AreEqual(business.MerchantDetailsId, businessDto.MerchantDetailsId, "MerchantDetailsId attribute doesn't match on Business object.");
                Assert.AreEqual(business.IsSMS, businessDto.IsSMS, "IsSMS attribute doesn't match on Business object.");
                Assert.AreEqual(business.IsTermsAndConditions, businessDto.IsTermsAndConditions, "IsTermsAndConditions attribute doesn't match on Business object.");
                Assert.AreEqual(business.Provider.RoomCount, businessDto.RoomCount, "RoomCount attribute doesn't match on Business object.");
                Assert.AreEqual(business.Provider.ProviderTypeName, businessDto.ProviderType, "ProviderType attribute doesn't match on Business object.");

                // Check attributes related to region.
                Assert.IsNotNull(businessDto.Region, "Region object is not populated.");
                Assert.AreEqual(business.Region.Id, businessDto.Region.Id, "Id attribute doesn't match on Region object.");
                Assert.AreEqual(business.Region.Name, businessDto.Region.Name, "Name attribute doesn't match on Region object.");

                // Check attributes related to the state province.
                Assert.IsNotNull(business.StateProvince, "StateProvince object is not populated.");
                Assert.AreEqual(business.StateProvince.Id, businessDto.StateProvince.Id, "Id attribute doesn't match on StateProvince object.");
                Assert.AreEqual(business.StateProvince.Name, businessDto.StateProvince.Name, "Name attribute doesn't match on StateProvince object.");

                // Check attributes related to country.
                Assert.IsNotNull(businessDto.Country, "Country object is not populated.");
                Assert.AreEqual(business.Country.Id, businessDto.Country.Id, "Id attribute doesn't match on Country object.");
               Assert.AreEqual(business.Country.Name, businessDto.Country.Name, "Name attribute doesn't match on Country object.");

               // Check attributes related to the currency.
               Assert.IsNotNull(business.WorkingCurrency, "Currency object is not populated.");
               Assert.AreEqual(business.WorkingCurrency.ISOCode, businessDto.WorkingCurrency.ISOCode, "Code attribute doesn't match on Currency object.");
               Assert.AreEqual(business.WorkingCurrency.Name, businessDto.WorkingCurrency.Name, "Name attribute doesn't match on Currency object.");

                // Check attributes related to the default culture.
                Assert.IsNotNull(businessDto.DefaultCulture, "DefaultCulture object is not populated.");
                Assert.AreEqual(business.DefaultCulture.Code,businessDto.DefaultCulture.Code, "Code attribute doesn't match on the DefaultCulture object.");
                Assert.AreEqual(business.DefaultCulture.Name,businessDto.DefaultCulture.Name, "Name attribute doesn't match on the DefaultCulture object.");
                Assert.AreEqual(business.DefaultCulture.ParentCode, businessDto.DefaultCulture.ParentCode, "ParentCode attribute doesn't match on the DefaultCulture object.");
            }
示例#5
0
        /// <summary>
        ///  Map the fields for the Business for Ecomm
        /// </summary>
        /// <param name="record">record</param>
        /// <param name="prefix">prefix</param>
        /// <returns></returns>
        internal static Model.Business.Business MapReaderForEcomm(IDataReader record, string prefix)
        {
            // Populate the business fields
            var business = new Model.Business.Business
            {
                Id = DbHelper.ConvertValue<long>(record[prefix + Parameters.Id]),
                Name = DbHelper.ConvertValue<string>(record[prefix + Parameters.Name]),
                ShortName = DbHelper.ConvertValue<string>(record[prefix + Parameters.ShortName]),
                AddressLine1 = DbHelper.ConvertValue<string>(record[prefix + Parameters.AddressLine1]),
                City = DbHelper.ConvertValue<string>(record[prefix + Parameters.City]),
                PostCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.PostCode]),
                DefaultCultureCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.DefaultCultureCode]),
                BusinessType = DbHelper.ConvertEnumValue<BusinessTypeEnum>(record[prefix + Parameters.BusinessTypeCode]),
                IsMerchant = DbHelper.ConvertValue<bool>(record[prefix + Parameters.IsMerchant]),
                TaxRegistrationNumber = DbHelper.ConvertValue<string>(record[prefix + Parameters.TaxRegistrationNumber]),
                ReferenceCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.ReferenceCode]),
                IsTaxRegistered = DbHelper.ConvertValue<bool>(record[prefix + Parameters.IsTaxRegistered]),
                BusinessRegistrationNumber = DbHelper.ConvertValue<string>(record[prefix + Parameters.BusinessRegistrationNumber]),
                MerchantStatusEnum = DbHelper.ConvertEnumValue<MerchantStatusEnum>(record[prefix + Parameters.MerchantStatusCode]),
                MerchantDetails = MerchantDetailsMapper.MapRecord(record, Parameters.Merchant.ToString()),
                BusinessStatusCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.BusinessStatusCode]),
                Country = CountryMapper.MapRecordWithCode(record, Parameters.Country.ToString()),
                CreatedByUser = MapRecordForSync(record, "UC"),
                UpdatedByUser = MapRecordForSync(record, "UU"),
                Provider = new Provider
                {
                    ContentId = DbHelper.ConvertValue<string>(record[prefix + Parameters.ContentId])
                }
            };

            return AuditFieldsHelper.MapRecord(business, record, prefix);
        }
示例#6
0
        /// <summary>
        /// Map the basic fields for the Business table to the Business model object
        /// </summary>
        /// <param name="record">The SqlDataReader with the executed query result</param>
        /// <param name="prefix">a prefix used to identify fields for the Business model  in the resultset if required</param>        
        /// <returns>An instance of Model.Business.Business</returns>
        internal static Model.Business.Business MapRecord(IDataRecord record, string prefix)
        {
            var business = new Model.Business.Business
            {
                Id = DbHelper.ConvertValue<long>(record[prefix + Parameters.Id]),
                CheckinTime = DbHelper.ConvertValue<string>(record[prefix + Parameters.CheckinTime]),
                CheckoutTime = DbHelper.ConvertValue<string>(record[prefix + Parameters.CheckoutTime]),
                CheckinTimeLatest = DbHelper.ConvertValue<string>(record[prefix + Parameters.CheckinTimeLatest]),
                IsEarlyCheckinAvailable = DbHelper.ConvertValue<bool>(record[prefix + Parameters.IsEarlyCheckinAvailable]),
                IsLateCheckoutAvailable = DbHelper.ConvertValue<bool>(record[prefix + Parameters.IsLateCheckoutAvailable]),
                CancellationValues = new CancellationValues
                {
                    CancellationType = CancellationTypeMapper.MapRecord(record, Parameters.CancellationType.ToString()),
                    CancellationChargeType = CancellationChargeTypeMapper.MapRecord(record, Parameters.CancellationChargeType.ToString()),
                    CancellationChargeValue = DbHelper.ConvertValue<decimal?>(record[prefix + Parameters.CancellationChargeValue]),
                    CancellationWindowHours = DbHelper.ConvertValue<int?>(record[prefix + Parameters.CancellationWindowHours]),
                },
                MerchantStatusCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.MerchantStatusCode]),
                MerchantStatusEnum = DbHelper.ConvertEnumValue<MerchantStatusEnum>(record[prefix + Parameters.MerchantStatusCode]),
                BusinessStatus = EnumEntityMapper.MapRecord(record, Parameters.BusinessStatus.ToString()),
                BusinessType = DbHelper.ConvertEnumValue<BusinessTypeEnum>(record[prefix + Parameters.BusinessTypeCode]),
                Name = DbHelper.ConvertValue<string>(record[prefix + Parameters.Name]),
                ShortName = DbHelper.ConvertValue<string>(record[prefix + Parameters.ShortName]),
                ReferenceCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.ReferenceCode]),
                IsTaxRegistered = DbHelper.ConvertValue<bool>(record[prefix + Parameters.IsTaxRegistered]),
                TaxRegistrationNumber = DbHelper.ConvertValue<string>(record[prefix + Parameters.TaxRegistrationNumber]),
                BusinessRegistrationNumber = DbHelper.ConvertValue<string>(record[prefix + Parameters.BusinessRegistrationNumber]),
                AddressLine1 = DbHelper.ConvertValue<string>(record[prefix + Parameters.AddressLine1]),
                AddressLine2 = DbHelper.ConvertValue<string>(record[prefix + Parameters.AddressLine2]),
                AddressLine3 = DbHelper.ConvertValue<string>(record[prefix + Parameters.AddressLine3]),
                City = DbHelper.ConvertValue<string>(record[prefix + Parameters.City]),
                StateProvinceId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.StateProvinceId]),
                PostCode = DbHelper.ConvertValue<string>(record[prefix +Parameters.PostCode]),
                CountryId = DbHelper.ConvertValue<int>(record[prefix + Parameters.CountryId]),
                BusinessTelephoneNumber = DbHelper.ConvertValue<string>(record[prefix + Parameters.BusinessTelephoneNumber]),
                FaxNumber = DbHelper.ConvertValue<string>(record[prefix + Parameters.FaxNumber]),
                Email = DbHelper.ConvertValue<string>(record[prefix + Parameters.Email]),
                RegionId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.RegionId]),
                Longitude = DbHelper.ConvertValue<decimal>(record[prefix + Parameters.Longitude]),
                Latitude = DbHelper.ConvertValue<decimal>(record[prefix + Parameters.Latitude]),
                TimeZone = TimeZoneInfo.FromSerializedString(DbHelper.ConvertValue<string>(record[prefix + Parameters.DotNetKey])),
                TimeZoneId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.TimezoneId]),
                DefaultCultureCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.DefaultCultureCode]),
                DefaultTaxRate = DbHelper.ConvertValue<decimal>(record[prefix + Parameters.DefaultTaxRate]),
                IsMerchant = DbHelper.ConvertValue<bool>(record[prefix + Parameters.IsMerchant]),
                MerchantDetailsId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.MerchantDetailsId]),
                IsSMS = DbHelper.ConvertValue<bool>(record[prefix + Parameters.IsSMS]),
                IsTermsAndConditions = DbHelper.ConvertValue<bool>(record[prefix + Parameters.IsTandC]),
                WorkingCurrencyCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.WorkingCurrencyCode]),
                ContractCurrencyCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.ContractCurrencyCode]),
                Provider = new Provider
                {
                    RoomCount = DbHelper.ConvertValue<int?>(record[prefix + Parameters.RoomCount]),
                    ProviderTypeName = DbHelper.ConvertValue<string>(record[prefix + Parameters.ProviderType]),
                    ProviderTypeCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.ProviderTypeCode]),
                    ContentId = DbHelper.ConvertValue<string>(record[prefix + Parameters.ContentId])
                },
                ProviderTypeCode = DbHelper.ConvertValue<string>(record[prefix + Parameters.ProviderTypeCode]),
                Uri = DbHelper.ConvertValue<string>(record[prefix + Parameters.Uri]),
                Region = RegionMapper.MapRecord(record, Parameters.Region.ToString()),
                Country = CountryMapper.MapRecordOnlyName(record, Parameters.Country.ToString()),
                DefaultCulture = CultureMapper.MapRecord(record, Parameters.DefaultCulture.ToString()),
                StateProvince = StateProvinceMapper.MapRecordOnlyName(record, Parameters.StateProvince.ToString()),
                BusinessStatusUpdatedByUser = DbHelper.ConvertValue<string>(record[prefix + Parameters.BusinessStatusUpdatedByUser]),
                MerchantBankAccountId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.MerchantBankAccountId]),
                SettlementBankAccountId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.SettlementBankAccountId]),
                BusinessStatusUpdatedDateTime = DbHelper.ConvertValue<DateTime?>(record[prefix + Parameters.BusinessStatusUpdatedDateTime]),
                MerchantDetails = MerchantDetailsMapper.MapRecord(record, Parameters.Merchant.ToString()),
                GuestMessageCancellationId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.DctGuestMessageCancellation]),
                GuestMessageConfirmationId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.DctGuestMessageConfirmation]),
                GuestMessageGuestRegistrationId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.DctGuestMessageGuestRegistration]),
                GuestMessageInvoiceId = DbHelper.ConvertValue<int?>(record[prefix + Parameters.DctGuestMessageInvoice]),
                Logo = new BusinessLogo
                {
                    LogoId = DbHelper.ConvertValue<Guid?>(record[prefix + Parameters.LogoId]),
                    LogoDigest = DbHelper.ConvertValue<string>(record[prefix + Parameters.LogoDigest]),
                    LogoExtension = DbHelper.ConvertValue<string>(record[prefix + Parameters.LogoExtension])
                },
                PrePayRuleValue = DbHelper.ConvertValue<decimal?>(record[prefix + Parameters.PrePayRuleValue]),
                PrePayRuleType = DbHelper.ConvertEnumValue<PrePayRuleTypeEnum>(record[prefix + Parameters.PrePayRuleTypeCode]),
                CurrentRates = new List<FxRate>()
            };

            return AuditFieldsHelper.MapRecord(business, record, prefix);
        }
示例#7
0
            public void UpdateBusinessStatusWithAutomaticPrepay()
            {
                // Arrange
                const int businessId = 1;
                const string notes = "some notes";

                var businessDao = new Mock<IBusinessDao>();
                var eventTrackingManager = new Mock<IEventTrackingManager>();

                businessManager.BusinessDao = businessDao.Object;
                businessManager.EventTrackingManager = eventTrackingManager.Object;

                var business = new Model.Business.Business
                    {
                        Id = businessId,
                        BusinessStatus = new EnumEntity { Code = BusinessStatus.PENDING },
                        PrePayRuleType = PrePayRuleTypeEnum.Unknown
                    };

                businessDao.Setup(x => x.GetByKey(businessId, string.Empty)).Returns(business);
                businessDao.Setup(x => x.UpdateStatus(businessId, BusinessStatusType.ACTIVE)).Returns(true);
                businessDao.Setup(x => x.ModifyBusinessSettings(It.IsAny<Model.Business.Business>()));

                eventTrackingManager.Setup(x => x.CreateBusinessEventAsync(businessId, BusinessEventTypesEnum.Activated, string.Empty, notes));
                eventTrackingManager.Setup(x => x.CreateBusinessEventAsync(businessId, BusinessEventTypesEnum.EditBusinessSettings, string.Empty, null));
                eventTrackingManager.Setup(x => x.CreateBusinessEventAsync(businessId, BusinessEventTypesEnum.AutomaticPrePayRuleCreated, string.Empty, null));

                // Act
                businessManager.UpdateStatus(businessId, BusinessStatusType.ACTIVE, notes);

                // Assert
                businessDao.VerifyAll();
                eventTrackingManager.Verify(x => x.CreateBusinessEventAsync(businessId, BusinessEventTypesEnum.Activated, string.Empty, notes), Times.Once());
                eventTrackingManager.Verify(x => x.CreateBusinessEventAsync(businessId, BusinessEventTypesEnum.EditBusinessSettings, string.Empty, null), Times.Once());
                eventTrackingManager.Verify(x => x.CreateBusinessEventAsync(businessId, BusinessEventTypesEnum.AutomaticPrePayRuleCreated, string.Empty, null), Times.Once());
            }
示例#8
0
            protected override void RunBeforeAllTests()
            {
                base.RunBeforeAllTests();

                var businessManager = new BusinessManager();
                var roomTypeManager = new RoomTypeManager();
                var roomManager = new RoomManager();
                var orderManager = new OrderManager();


                //Create a business
                var paymentMethod = new BusinessPaymentMethod
                    {
                        BusinessId = BUSINESS_ID,
                        CurrencyCode = CURRENCY,
                        PaymentMethodCode = PaymentMethodEnum.Cash.GetCode()
                    };

                var provider = new Provider
                    {
                        RoomCount = ROOM_COUNT,
                        ContentId = BUSINESS_ID.ToString(),
                        ProviderTypeCode = PROVIDER_TYPE,
                    };

                var business = new Model.Business.Business
                    {
                        BusinessStatusCode = "A",
                        BusinessTypeCode = "P",
                        Name = "Test Business",
                        ShortName = "Test",
                        ReferenceCode = "B001",
                        IsTaxRegistered = true,
                        TaxRegistrationNumber = "12345",
                        BusinessRegistrationNumber = "12345",
                        AddressLine1 = "5 Main Road",
                        AddressLine2 = "Twickenham",
                        City = "London",
                        StateProvinceId = 386,
                        PostCode = "TW2 5SE",
                        CountryId = 16,
                        BusinessTelephoneNumber = "07448752114",
                        TimeZoneId = 36,
                        DefaultCultureCode = CULTURE,
                        WorkingCurrencyCode = CURRENCY,
                        UpdatedByUserId = new Guid("11111111-1111-1111-1111-111111111111"),
                        Provider = provider,
                        BusinessPaymentMethods = new List<BusinessPaymentMethod> {paymentMethod}
                    };

                var businessId = businessManager.CreateBusiness(business);


                // Create a room type
                
                var ratePlan = new BaseRatePlan
                    {
                        BusinessId = businessId,
                        CurrencyCode = CURRENCY,
                        MaxAdults = 2,
                        MaxChildren = 2,
                        MaxOccupancy = 3,
                        BoardBasis = new EnumEntity {Code = "BK"},
                        CancellationClass = new EnumEntity {Code = "FR"},
                        RackRate = new decimal(120.0),
                        SellAtRackRate = true,
                        RatePlanType = new RatePlanType {Type = RatePlanTypeEnum.Base},
                        Rates = new RatePlanRate{BusinessId = businessId, MonRate = 120, MonMinStay = 120},
                        UpdatedByUserId = new Guid("11111111-1111-1111-1111-111111111111"),
                    };

                var roomType = new RoomType
                    {
                        BusinessId = businessId,
                        RoomClass = roomTypeManager.GetRoomClasses(CULTURE).FirstOrDefault(),      //new RoomClass { Code = "DBL" },
                        QualityType = roomTypeManager.GetQualityTypes(CULTURE).FirstOrDefault(),   //new QualityType { Code = "APT" },
                        BathroomType = roomTypeManager.GetBathroomTypes(CULTURE).FirstOrDefault(), //new BathroomType { Code = "SP" },
                        Code = "DBL99",
                        ServiceFrequency = new EnumEntity { Code = "B" },
                        UpdatedByUserId = new Guid("11111111-1111-1111-1111-111111111111"),
                        BaseRatePlan = ratePlan,
                        BaseRatePlanId = ratePlan.Id,
                        Aspect = new Aspect { Code = "BAL"},                    
                    };
                
                roomTypeManager.CreateRoomTypeAndBaseRatePlan(roomType);
                roomType = roomTypeManager.GetRoomTypesAndBaseRatePlans(businessId, CULTURE).First();
                ratePlan = roomType.BaseRatePlan;


                //Create a room
                var roomId = roomManager.CreateRoom("TestRoom", roomType.Id, businessId);


                //Create an order
                var booking = new Booking
                {
                    BusinessId = businessId,
                    Guest = new Guest { DefaultCultureCode = CULTURE, Surname = "TestSurname", BusinessId = businessId },
                    StartDate = new DateTime(2014, 2, 10, 0, 0, 0, DateTimeKind.Utc),
                    EndDate = new DateTime(2014, 2, 12, 0, 0, 0, DateTimeKind.Utc),
                    NumberOfAdults = 2,
                    NumberOfChildren = 1,
                    Cost = new decimal(120.5),
                    BookingStatus = new EnumEntity { Code = BookingStatusType.CONFIRMED },
                    RoomTypeId = roomType.Id,
                    RoomId = roomId,
                    RatePlanId = ratePlan.Id,
                    Notes = "Testing note",
                    BookingScenarioType = BookingScenarioTypeEnum.OnAccountBooking,
                    RateType = new EnumEntity { Code = RateType.BEST_AVAILABLE_RATE },
                    CheckinStatus = new EnumEntity { Code = CheckinStatusOptions.NOTCHECKEDIN },
                    IsAvailabilityIgnored = true,
                    BoardBasis = BoardBasisTypeEnum.BreakfastIncluded,
                    CancellationDetails = new CancellationDetail()
                };

                var order = new Order
                {
                    OfflineSourceEnum = OfflineSourceEnum.Web,
                    OrderSourceCode = SourceType.Pms.GetCode(),
                    CustomerCurrencyCode = CURRENCY,
                    Bookings = new List<Booking> { booking },
                    CustomerCultureCode = "en-GB"
                };
                
                // Mock email manager so it doesn't send emails
                var emailManager = new Mock<IEmailManager>();
                orderManager.EmailManager = emailManager.Object;

                emailManager.Setup(x => x.SendConfirmationEmails(order)).Returns(true);

                orderManager.CreateOrder(businessId, order);
            }
示例#9
0
            public void ModifyBusinessSettingsCallsCorrectMethod()
            {
                // Arrange
                long businessId = 1;

                var businessToModify = new Model.Business.Business
                    {
                        Id = businessId,
                        Provider = new Provider
                        {
                            Id = businessId
                        }
                    };
                
                var businessDao = new Mock<IBusinessDao>();
                var eventTrackingManager = new Mock<IEventTrackingManager>();

                businessManager.BusinessDao = businessDao.Object;
                businessManager.EventTrackingManager = eventTrackingManager.Object;

                businessDao.Setup(b => b.ModifyBusinessSettings(It.IsAny<Model.Business.Business>())).Returns(true);

                businessDao.Setup(b => b.DeleteBusinessOfflinePayments(businessId)).Returns(true);

                eventTrackingManager.Setup(e => e.CreateBusinessEventAsync(businessId, BusinessEventTypesEnum.EditBusinessSettings, It.IsAny<string>(), null));

                // Act
                businessManager.ModifyBusinessSettings(businessToModify);

                // Assert
                businessDao.VerifyAll();
                eventTrackingManager.Verify(e => e.CreateBusinessEventAsync(businessId, BusinessEventTypesEnum.EditBusinessSettings, It.IsAny<string>(), null), Times.Once);
            }
示例#10
0
            public void CreateBusinessCallsExpectedMethods()
            {
                // Arrange

                var businessDao = MockRepository.GenerateMock<IBusinessDao>();
                var businessEventDao = MockRepository.GenerateMock<IBusinessEventDao>();
                var businessChannelOptInDao = MockRepository.GenerateMock<IBusinessChannelOptInDao>();
                var distributionManagerMock = MockRepository.GenerateMock<IDistributionManager>();
                var businessChannelOverrideDaoMock = MockRepository.GenerateMock<IBusinessChannelOverrideDao>();

                var paymentMethod = new BusinessPaymentMethod
                {
                    BusinessId = BUSINESS_ID,
                    CurrencyCode = CURRENCY,
                    PaymentMethodCode = PaymentMethodEnum.Cash.GetCode()
                };
                var newProvider = new Provider
                                  {
                                      RoomCount = ROOM_COUNT,
                                      ContentId = BUSINESS_ID.ToString(),
                                      ProviderTypeCode = PROVIDER_TYPE
                                  };

                var channels = new List<BusinessChannelOptIn>
                    {
                        new BusinessChannelOptIn
                            {
                                Id = CHANNEL_OPT_IN_ID,
                                ChannelId = CHANNEL_ID,
                                ChannelTermsId = CHANNEL_TERMS_ID,
                                BusinessId = BUSINESS_ID
                            }
                    };

                var newBusiness = new Model.Business.Business
                    {
                        Provider = newProvider,
                        WorkingCurrencyCode = CURRENCY,
                        BusinessPaymentMethods = new List<BusinessPaymentMethod>
                        {
                            paymentMethod
                        }
                    };

                businessManager.BusinessDao = businessDao;
                businessManager.BusinessEventDao = businessEventDao;
                businessManager.BusinessChannelOptInDao = businessChannelOptInDao;
                businessManager.DistributionManager = distributionManagerMock;
                businessManager.BusinessChannelOverrideDao = businessChannelOverrideDaoMock;

                businessDao.Expect(x => x.Create(Arg<Model.Business.Business>.Is.Anything))
                           .Return(BUSINESS_ID)
                           .Repeat.Once();
                businessDao.Expect(x => x.AddBusinessOfflinePaymentMethod(Arg<BusinessPaymentMethod>.Matches(bp => bp.BusinessId == paymentMethod.BusinessId &&
                                                                                                                bp.CurrencyCode == paymentMethod.CurrencyCode &&
                                                                                                                bp.PaymentMethodCode == paymentMethod.PaymentMethodCode))).Return(true).Repeat.Once();
                businessDao.Expect(x => x.CreateProvider(Arg<Provider>.Matches(p => p.Id == newProvider.Id &&
                                                                                  p.RoomCount == newProvider.RoomCount &&
                                                                                  p.ContentId == newProvider.ContentId &&
                                                                                  p.ProviderTypeCode == newProvider.ProviderTypeCode))).Return(true).Repeat.Once();

                businessChannelOptInDao.Expect(x => x.GetDefaultChannelsPerBusinessLocation(Arg<long>.Is.Equal(BUSINESS_ID))).Return(channels).Repeat.Once();

                distributionManagerMock.Expect(
                    dmm => dmm.OptInToChannel(Arg<BusinessChannelOptIn>.Matches(bc => bc.Id == CHANNEL_OPT_IN_ID &&
                                                                                      bc.ChannelId == CHANNEL_ID &&
                                                                                      bc.ChannelTermsId ==
                                                                                      CHANNEL_TERMS_ID &&
                                                                                      bc.BusinessId == BUSINESS_ID),
                                              Arg<string>.Is.Anything)).Repeat.Once();

                businessEventDao.Expect(
                    be => be.Create(Arg<BusinessEvent>.Matches(bev => bev.BusinessId == BUSINESS_ID &&
                                                                      bev.EventType.Code == BusinessEventTypesEnum.Created.GetCode())))
                                .Repeat.Once();

                businessChannelOverrideDaoMock.Expect(
                    bco => bco.CreateInitialBusinessChannelOverride(Arg<long?>.Is.Anything, Arg<int?>.Is.Anything)).Repeat.Once();

                // Act
                businessManager.CreateBusiness(newBusiness);

                // Assert
                businessDao.VerifyAllExpectations();
                businessEventDao.VerifyAllExpectations();
                distributionManagerMock.VerifyAllExpectations();
                businessChannelOptInDao.VerifyAllExpectations();
                businessChannelOverrideDaoMock.VerifyAllExpectations();
            }
示例#11
0
            public void ModifyBusinessCallsCorrectMethodsIsSuccessful()
            {
                // Arrange
                Model.Business.Business businessToModify = new Model.Business.Business()
                                                               {
                                                                   Id = BUSINESS_ID,
                                                                   Provider = new Provider
                                                                   {
                                                                       Id = BUSINESS_ID
                                                                   }
                                                               };
                IBusinessDao businessDaoMock = MockRepository.GenerateMock<IBusinessDao>();
                IBusinessEventDao businessEventDaoMock = MockRepository.GenerateMock<IBusinessEventDao>();

                businessDaoMock.Expect(bd => bd.Modify(Arg<Model.Business.Business>.Matches(b => b.Id == businessToModify.Id &&
                                                                                                 b.Provider.Id == businessToModify.Provider.Id)))
                               .Repeat.Once();

                businessDaoMock.Expect(
                    bd => bd.ModifyProvider(Arg<Provider>.Matches(p => p.Id == businessToModify.Provider.Id)))
                               .Repeat.Once();

                businessEventDaoMock.Expect(
                    be => be.Create(Arg<BusinessEvent>.Matches(bev => bev.BusinessId == businessToModify.Id &&
                                                                      bev.EventType.Code == BusinessEventTypesEnum.Modified.GetCode() &&
                                                                      bev.Reference == businessToModify.Id.ToString()))).Repeat.Once();

                businessManager.BusinessDao = businessDaoMock;
                businessManager.BusinessEventDao = businessEventDaoMock;

                // Act
                businessManager.ModifyBusiness(businessToModify);

                // Assert
                businessDaoMock.VerifyAllExpectations();
                businessEventDaoMock.VerifyAllExpectations();
            }
示例#12
0
            public void ValidatePrePayCancelSettingsReturnsTrueWhenValid(CancellationValues cancelValues, decimal? prePayValue, PrePayRuleTypeEnum ruleType, bool result)
            {
                // Arrange
                Model.Business.Business business = new Model.Business.Business
                    {
                        CancellationValues = cancelValues,
                        PrePayRuleValue = prePayValue,
                        PrePayRuleType = ruleType
                    };

                // Act
                bool actualResult = businessManager.ValidatePrePayCancelSettingsForBusiness(business);

                // Assert
                Assert.AreEqual(result, actualResult, "Validation did not match expected");
            }
示例#13
0
            public void GetProviderWithRoomTypeAndRatePlansCallCorrectMethodsAndReturnNull()
            {
                //Arrange
                var business = new Model.Business.Business { Id = 5002, ShortName = "TestBus2", DefaultCultureCode = "en-GB" };

                var businessManager = MockRepository.GenerateMock<IBusinessManager>();
                var distributorManager = MockRepository.GenerateMock<IDistributionManager>();
                var roomTypeManager = MockRepository.GenerateMock<IRoomTypeManager>();

                contentService.BusinessManager = businessManager;
                contentService.DistributionManager = distributorManager;
                contentService.RoomTypeManager = roomTypeManager;

                businessManager.Expect(b => b.GetLimitedBusinessByShortname(business.ShortName)).Return(null);

                //Act
                var result = contentService.GetProviderWithRoomTypeAndRatePlans(business.ShortName, string.Empty);

                //Assert
                Assert.IsNull(result);
            }
示例#14
0
            public void EagleBusinessToEcomBusinessMapsChannelNames()
            {
                // Arrange
                var channelNames = new List<string> { "Channel1", "Channel3", "Channel3", "Channel4", "Channel5" };

                var createdByUser = new UserExtension { FirstName = "John", LastName = "Doe" };
                var updatedByUser = new UserExtension { FirstName = "Dummy", LastName = "User" };

                const int BUSINESS_ID = 12345;
                const string SYNC_CODE_UK = "UK";
                const string SYNC_CODE_IN = "IN";
                const string CHANNEL_6_NAME = "Channel6";

                var businessChannelOptIn = new BusinessChannelOptIn
                                               {
                                                   BusinessId = BUSINESS_ID,
                                                   PrePaySettings = new BusinessChannelPrePaySettings
                                                                        {
                                                                            Type = PrePayRuleTypeEnum.Amount,
                                                                            Value = 1,
                                                                            BusinessId = BUSINESS_ID
                                                                        }
                                               };

                var eagleBusiness = new Model.Business.Business
                {
                    Id = BUSINESS_ID,
                    Name = "Business 1",
                    ShortName = "Bus1",
                    CreatedByUser = createdByUser,
                    UpdatedByUser = updatedByUser,
                    Distributors = new Collection<Distributor>
                    {
                        new Distributor 
                        { 
                            Channels = new List<Channel>
                            {
                                new Channel { ShortName = channelNames[0], BusinessChannelOptIn = businessChannelOptIn, ChannelSynchronizationTypeCode = SYNC_CODE_UK},
                                new Channel { ShortName = channelNames[1], BusinessChannelOptIn = businessChannelOptIn, ChannelSynchronizationTypeCode = SYNC_CODE_UK},
                                new Channel { ShortName = channelNames[2], BusinessChannelOptIn = businessChannelOptIn, ChannelSynchronizationTypeCode = SYNC_CODE_UK},
                            }
                        },
                        new Distributor 
                        { 
                            Channels = new List<Channel>
                            {
                                new Channel { ShortName = channelNames[3], BusinessChannelOptIn = businessChannelOptIn, ChannelSynchronizationTypeCode = SYNC_CODE_UK},
                                new Channel { ShortName = channelNames[4], BusinessChannelOptIn = businessChannelOptIn, ChannelSynchronizationTypeCode = SYNC_CODE_UK},
                                new Channel { ShortName = CHANNEL_6_NAME, BusinessChannelOptIn = businessChannelOptIn, ChannelSynchronizationTypeCode = SYNC_CODE_IN}
                            }
                        }
                    },
                    OnlineBookingScenarios = new Collection<OnlineBookingScenario>(),
                    MerchantDetails = new MerchantDetails(),
                    Provider = new Provider { ContentId = BUSINESS_ID.ToString(CultureInfo.InvariantCulture) }
                };

                // Act
                List<string> missedChannels;
                var ecommBusiness = EcomConverter.EagleBusinessToEcom(eagleBusiness, SYNC_CODE_UK, out missedChannels);

                foreach (var channelName in channelNames)
                {
                    Assert.True(ecommBusiness.Channels.Any(c => c.ChannelName == channelName), string.Format("{0} not found in ecommBusiness.Channels", channelName));
                }

                Assert.False(ecommBusiness.Channels.Any(c => c.ChannelName == CHANNEL_6_NAME), string.Format("{0} found in ecommBusiness.Channels", CHANNEL_6_NAME));

                Assert.IsTrue(missedChannels.Contains(CHANNEL_6_NAME), string.Format("{0} channel name was not missed", CHANNEL_6_NAME));
            }
示例#15
0
            public void SetFinancialInfoOnTransactionModelCallsCorrectMethodsWithExpediaIsSuccessful()
            {
                // Arrange
                const decimal ORDER_AMOUNT_PAID = 25M;
                const decimal GROSS_AMOUNT = 50M;
                const int ORDER_ID = 5;
                const int BOOKING_ID = 3;
                const int BOOKING_ITEM_ONE = 1, BOOKING_ITEM_TWO = 2, BOOKING_ITEM_THREE = 3;
                const decimal NO_SHOW_ONE = 4, NO_SHOW_TWO = 8;

                TransactionModel mockTransModel = new TransactionModel {ScenarioType = ScenarioType.OnAccountPrincipalWholesaleRate};
                Booking mockBooking = new Booking()
                {
                    Id = BOOKING_ID,
                    OrderId = ORDER_ID,
                    BookingScenarioType = BookingScenarioTypeEnum.OnAccountBooking
                };
                Model.Business.Business mockBusiness = new Model.Business.Business();
                Order mockOrder = new Order()
                {
                    Id = ORDER_ID,
                    ChannelCommissionType = CommissionTypeEnum.Net,
                    TotalValue = 4,
                    TotalNetValue = 3
                };

                List<BookingItem> mockBookingItems = new List<BookingItem>()
                                                         {
                                                             new BookingItem
                                                             {
                                                                 Id = BOOKING_ITEM_ONE,
                                                                 BookingId = BOOKING_ID,
                                                                 ItemType = ItemTypeEnum.Breakfast,
                                                                 Charge = new Charge
                                                                 {
                                                                     Amount = 5m
                                                                 }
                                                             },
                                                             new BookingItem
                                                             {
                                                                 Id = BOOKING_ITEM_THREE,
                                                                 BookingId = BOOKING_ID,
                                                                 ItemType = ItemTypeEnum.DistributorCommission
                                                             },
                                                             new BookingItem
                                                             {
                                                                 Id = BOOKING_ITEM_TWO,
                                                                 BookingId = BOOKING_ID,
                                                                 ItemType = ItemTypeEnum.EviivoCommission
                                                             }
                                                         };
                List<BookingConstituent> mockConstituentsOne = new List<BookingConstituent>()
                                                                {
                                                                    new BookingConstituent
                                                                    {
                                                                        ItemId = BOOKING_ITEM_ONE,
                                                                        ConstituentType = BookingConstituentType.ValueAddedTax,
                                                                        RelevantPercentage = 6
                                                                    }
                                                                };
                List<BookingConstituent> mockConstituentsTwo = new List<BookingConstituent>()
                                                                {
                                                                    new BookingConstituent
                                                                    {
                                                                        ItemId = BOOKING_ITEM_TWO,
                                                                        RelevantPercentage = 5
                                                                    },
                                                                    new BookingConstituent
                                                                    {
                                                                        ItemId = BOOKING_ITEM_TWO,
                                                                        Amount = NO_SHOW_ONE,
                                                                        ConstituentType = BookingConstituentType.NoShowFee
                                                                    }
                                                                };

                List<BookingConstituent> mockConstituentsThree = new List<BookingConstituent>()
                                                                {
                                                                    new BookingConstituent
                                                                    {
                                                                        ItemId = BOOKING_ITEM_THREE,
                                                                        RelevantPercentage = 10
                                                                    },
                                                                    new BookingConstituent
                                                                    {
                                                                        ItemId = BOOKING_ITEM_THREE,
                                                                        Amount = NO_SHOW_TWO,
                                                                        ConstituentType = BookingConstituentType.NoShowFee
                                                                    }
                                                                };

                IBookingItemDao bookingItemDaoMock = MockRepository.GenerateMock<IBookingItemDao>();
                bookingItemDaoMock.Expect(bid => bid.GetConstituentsByItemId(Arg<int>.Is.Equal(BOOKING_ITEM_ONE)))
                                  .Return(mockConstituentsOne).Repeat.Once();
                bookingItemDaoMock.Expect(bid => bid.GetConstituentsByItemId(Arg<int>.Is.Equal(BOOKING_ITEM_TWO)))
                                  .Return(mockConstituentsTwo).Repeat.Once();
                bookingItemDaoMock.Expect(bid => bid.GetConstituentsByItemId(Arg<int>.Is.Equal(BOOKING_ITEM_THREE)))
                                  .Return(mockConstituentsThree).Repeat.Once();

                IOrderDao orderDaoMock = MockRepository.GenerateMock<IOrderDao>();
                orderDaoMock.Expect(o => o.GetOrderValueByItemTypes(Arg<int>.Is.Anything, Arg<bool>.Is.Anything, Arg<string>.Is.Anything)).Return(GROSS_AMOUNT);

                SettlementManager manager = MockRepository.GeneratePartialMock<SettlementManager>();
                manager.BookingItemDao = bookingItemDaoMock;
                manager.OrderDao = orderDaoMock;
                manager.Expect(m => m.GetRelevantPercentageByItemType(Arg<List<BookingItem>>.Is.Equal(mockBookingItems),
                                                                      Arg<List<BookingConstituent>>.List.ContainsAll(new List<BookingConstituent>
                                                                      {
                                                                          mockConstituentsOne.First(), mockConstituentsThree.First(), mockConstituentsTwo.First()
                                                                      }),
                                                                      Arg<ItemTypeEnum>.Is.Equal(
                                                                          ItemTypeEnum.DistributorCommission))).
                        Return(mockConstituentsThree.First().RelevantPercentage.Value).Repeat.Once();

                manager.Expect(m => m.GetRelevantPercentageByItemType(Arg<List<BookingItem>>.Is.Equal(mockBookingItems),
                                                                      Arg<List<BookingConstituent>>.List.ContainsAll(new List<BookingConstituent>
                                                                      {
                                                                          mockConstituentsOne.First(), mockConstituentsThree.First(), mockConstituentsTwo.First()
                                                                      }),
                                                                      Arg<ItemTypeEnum>.Is.Equal(
                                                                          ItemTypeEnum.EviivoCommission))).
                        Return(mockConstituentsTwo.First().RelevantPercentage.Value).Repeat.Once();

                manager.Expect(
                    m =>
                    m.GetRelevantPercentageByConstituentType(
                        Arg<List<BookingConstituent>>.List.ContainsAll(new List<BookingConstituent>
                                                                           {
                                                                               mockConstituentsOne.First(),
                                                                               mockConstituentsThree.First(),
                                                                               mockConstituentsTwo.First()
                                                                           }),
                        Arg<BookingConstituentType>.Is.Equal(BookingConstituentType.ValueAddedTax)))
                       .Return(mockConstituentsOne.First().RelevantPercentage.Value)
                       .Repeat.Once();

                // Act
                manager.SetFinancialInfoOnTransactionModel(mockTransModel, mockBooking, mockBusiness, mockOrder,
                                                           mockBookingItems, ORDER_AMOUNT_PAID);

                // Assert
                Assert.AreEqual(ORDER_AMOUNT_PAID, mockTransModel.AmountPaid, "Amount paid not set");
                Assert.AreEqual(GROSS_AMOUNT, mockTransModel.GrossBookingAmount,
                                "Gross booking amount not set correctly");
                Assert.AreEqual(mockOrder.TotalNetValue, mockTransModel.NetBookingAmount,
                                "Net booking amount not set correctly");
                Assert.AreEqual(mockConstituentsTwo.First().RelevantPercentage.Value,
                                mockTransModel.EviivoCommissionPercentage, "eviivo percentage not set correctly");
                Assert.AreEqual(mockConstituentsThree.First().RelevantPercentage.Value,
                                mockTransModel.DistributorCommissionPercentage,
                                "distributor Commission not set properly");
                Assert.AreEqual(NO_SHOW_ONE + NO_SHOW_TWO, mockTransModel.NoShowFeeAmount, "No show fee not summed");
                bookingItemDaoMock.VerifyAllExpectations();
                manager.VerifyAllExpectations();
            }
示例#16
0
            public void CreateTransactionModelForInvoiceRequestReturnsTransactionModelCorrectly()
            {
                #region Arrange

                // Arrange
                IBookingDao bookingDaoMock = MockRepository.GenerateMock<IBookingDao>();
                IBusinessDao businessDaoMock = MockRepository.GenerateMock<IBusinessDao>();
                IOrderDao orderDaoMock = MockRepository.GenerateMock<IOrderDao>();
                IOrderReferenceDao orderReferenceMock = MockRepository.GenerateMock<IOrderReferenceDao>();
                IChannelDao channelDaoMock = MockRepository.GenerateMock<IChannelDao>();
                ICountryDao countryDaoMock = MockRepository.GenerateMock<ICountryDao>();
                IBookingEventDao bookingEventDaoMock = MockRepository.GenerateMock<IBookingEventDao>();
                IBookingEventDataDao bookingEventDataDaoMock = MockRepository.GenerateMock<IBookingEventDataDao>();
                IBookingItemDao bookingItemDaoMock = MockRepository.GenerateMock<IBookingItemDao>();
                IPaymentEventDao paymentEventDaoMock = MockRepository.GenerateMock<IPaymentEventDao>();
                IPaymentDao paymentDaoMock = MockRepository.GenerateMock<IPaymentDao>();
                ISettlementHelper settlementHelperMock = MockRepository.GenerateMock<ISettlementHelper>();

                bool forceProcess = true;

                Booking bookingMock = new Booking
                                          {
                                              Id = GOOD_BOOKING_ID,
                                              OrderId = GOOD_ORDER_ID,
                                              BusinessId = GOOD_BUSINESS_ID,
                                              BookingReferenceNumber = GOOD_BOOKING_REF
                                          };

                Model.Business.Business businessMock = new Model.Business.Business
                                                           {
                                                               Id = GOOD_BUSINESS_ID
                                                           };

                Order orderMock = new Order
                                      {
                                          Id = GOOD_ORDER_ID,
                                          Bookings = new List<Model.Booking.Booking> {bookingMock},
                                          ChannelId = GOOD_CHANNEL_ID
                                      };

                Channel channelMock = new Channel
                                          {
                                              Id = GOOD_CHANNEL_ID,
                                              DistributorId = GOOD_CHANNEL_BUSINESS_ID
                                          };

                Model.Business.Business channelBusinessMock = new Model.Business.Business
                                                                  {
                                                                      Id = GOOD_CHANNEL_BUSINESS_ID
                                                                  };

                Country countryMock = new Country
                                          {
                                              Id = GOOD_COUNTRY_ID,
                                              IsoChar2Code = UK_COUNTRY_CODE
                                          };

                BookingEvent bookingEventMock = new BookingEvent
                                                    {
                                                        Id = GOOD_EVENT_ID,
                                                        BookingId = GOOD_BOOKING_ID
                                                    };
                List<BookingEventData> bookingEventDataMock = new List<BookingEventData>();
                var bookingPaymentMock = new Model.Booking.Payment
                                                 {
                                                     Id = GOOD_PAYMENT_ID
                                                 };

                var paymentListMock = new List<Model.Booking.Payment> { bookingPaymentMock };

                List<BookingItem> bookingItemMock = new List<BookingItem>();
                List<PaymentEvent> paymentEventListMock = new List<PaymentEvent>();
                List<SettlementPaymentDto> settlementPaymentDtosMock = new List<SettlementPaymentDto>();

                bookingDaoMock.Expect(bd => bd.GetByKey(Arg<int>.Is.Equal(GOOD_BOOKING_ID), Arg<string>.Is.Anything)).Return(bookingMock).Repeat.Never();
                businessDaoMock.Expect(bu => bu.GetByKey(Arg<long>.Is.Equal(bookingMock.BusinessId), Arg<string>.Is.Equal(string.Empty))).Return(businessMock).Repeat.Once();
                orderDaoMock.Expect(od => od.GetOrderWithBookingsByKey(Arg<int>.Is.Equal(GOOD_ORDER_ID), Arg<string>.Is.Anything, Arg<string>.Is.Anything, Arg<string>.Is.Anything, Arg<GetOrderWithBookingsByEnum>.Is.Equal(GetOrderWithBookingsByEnum.Id))).Return(orderMock).Repeat.Once();
                orderReferenceMock.Expect(
                    or =>
                    or.GetByOrderIdAndReferenceType(Arg<int>.Is.Equal(GOOD_ORDER_ID),
                                                    Arg<ReferenceTypeEnum>.Is.Equal(ReferenceTypeEnum.EcommerceReservation)))
                                  .Return(null)
                                  .Repeat.Once();
                channelDaoMock.Expect(cd => cd.GetById(Arg<int>.Is.Equal(orderMock.ChannelId.Value)))
                    .Return(channelMock)
                    .Repeat.Once();

                businessDaoMock.Expect(bu => bu.GetByKey(Arg<long>.Is.Equal(channelMock.DistributorId.Value), Arg<string>.Is.Equal(string.Empty)))
                    .Return(channelBusinessMock)
                    .Repeat.Once();
                countryDaoMock.Expect(cod => cod.GetByBusiness(Arg<long>.Is.Equal(bookingMock.BusinessId)))
                    .Return(countryMock)
                    .Repeat.Once();

                bookingEventDaoMock.Expect(bed => bed.GetByKey(GOOD_EVENT_ID)).Return(bookingEventMock).Repeat.Once();
                bookingEventDataDaoMock.Expect(bedd => bedd.GetAllByEventId(Arg<int>.Is.Equal(bookingEventMock.Id)))
                    .Return(bookingEventDataMock)
                    .Repeat.Once();

                paymentDaoMock.Expect(pd => pd.GetPaymentsByOrder(Arg<int>.Is.Equal(GOOD_ORDER_ID)))
                    .Return(paymentListMock)
                    .Repeat.Once();


                // settlement manager mocks of inner methods
                SettlementManager settlementManagerMock = MockRepository.GeneratePartialMock<SettlementManager>();

                settlementManagerMock.Expect(
                    sm =>
                    sm.GetPaymentByTypeAndSource(Arg<IEnumerable<Model.Booking.Payment>>.List.ContainsAll(paymentListMock),
                                                 Arg<PaymentTypeEnum>.Is.Equal(PaymentTypeEnum.Payment),
                                                 Arg<PaymentSourceEnum>.Is.Equal(PaymentSourceEnum.Online)))
                    .Return(bookingPaymentMock).Repeat.Once();

                bookingItemDaoMock.Expect(bid => bid.GetByBooking(Arg<int>.Is.Equal(GOOD_BOOKING_ID)))
                    .Return(bookingItemMock)
                    .Repeat.Once();

                paymentEventDaoMock.Expect(ped => ped.GetByPaymentId(Arg<int>.Is.Equal(bookingPaymentMock.Id)))
                    .Return(paymentEventListMock)
                    .Repeat.Once();

                settlementManagerMock.Expect(
                    smm =>
                    smm.GetSettlementPayment(
                        Arg<PaymentRequest>.Matches(
                            pr => pr.BookingReferenceCode == bookingMock.BookingReferenceNumber &&
                                  pr.IsoCountryCode == countryMock.IsoChar2Code)))
                    .Return(settlementPaymentDtosMock)
                    .Repeat.Once();

                settlementManagerMock.Expect(
                    sem =>
                    sem.SetLineItemsOnTransactionModel(Arg<TransactionModel>.Is.Anything,
                                                       Arg<List<SettlementPaymentDto>>.Is.Anything,
                                                       Arg<Order>.Matches(
                                                           o =>
                                                           o.Id == orderMock.Id && o.ChannelId == orderMock.ChannelId &&
                                                           o.Bookings != null &&
                                                           o.Bookings.Count == orderMock.Bookings.Count),
                                                       Arg<List<Model.Booking.Payment>>.List.ContainsAll(paymentListMock),
                                                       Arg<List<PaymentEvent>>.Is.Anything)).Repeat.Once();
                settlementManagerMock.Expect(
                    sem =>
                    sem.SetGuestInfoOnTransactionModel(Arg<TransactionModel>.Is.Anything,
                                                       Arg<Order>.Matches(
                                                           b =>
                                                           b.Id == orderMock.Id &&
                                                           b.OrderReference == orderMock.OrderReference))).Repeat.Once();
                settlementManagerMock.Expect(
                    sem => sem.SetBookingInfoOnTransactionModel(Arg<TransactionModel>.Is.Anything,
                                                                Arg<Booking>.Matches(b =>
                                                                                     b.Id == bookingMock.Id &&
                                                                                     b.OrderId == bookingMock.OrderId &&
                                                                                     b.BusinessId ==
                                                                                     bookingMock.BusinessId &&
                                                                                     b.BookingReferenceNumber ==
                                                                                     bookingMock.BookingReferenceNumber),
                                                                Arg<Order>.Matches(
                                                                    o =>
                                                                    o.Id == orderMock.Id &&
                                                                    o.ChannelId == orderMock.ChannelId &&
                                                                    o.Bookings != null &&
                                                                    o.Bookings.Count == orderMock.Bookings.Count),
                                                                Arg<BookingEvent>.Matches(
                                                                    be =>
                                                                    be.Id == bookingEventMock.Id &&
                                                                    be.BookingId == bookingEventMock.BookingId),
                                                                Arg<List<BookingEventData>>.Is.Anything,
                                                                Arg<Model.Business.Business>.Matches(
                                                                    bu => bu.Id == businessMock.Id),
                                                                Arg<List<SettlementPaymentDto>>.Is.Anything, 
                                                                Arg<string>.Is.Anything)).Repeat.Once();

                settlementManagerMock.Expect(
                    sem => sem.SetFinancialInfoOnTransactionModel(Arg<TransactionModel>.Is.Anything,
                                                                  Arg<Booking>.Matches(b =>
                                                                                       b.Id == bookingMock.Id &&
                                                                                       b.OrderId == bookingMock.OrderId &&
                                                                                       b.BusinessId ==
                                                                                       bookingMock.BusinessId &&
                                                                                       b.BookingReferenceNumber ==
                                                                                       bookingMock
                                                                                           .BookingReferenceNumber),
                                                                  Arg<Model.Business.Business>.Matches(
                                                                      bu => bu.Id == businessMock.Id),
                                                                  Arg<Order>.Matches(
                                                                      o =>
                                                                      o.Id == orderMock.Id &&
                                                                      o.ChannelId == orderMock.ChannelId &&
                                                                      o.Bookings != null &&
                                                                      o.Bookings.Count == orderMock.Bookings.Count),
                                                                  Arg<List<BookingItem>>.Is.Anything,
                                                                  Arg<decimal>.Is.Anything)).Repeat.Once();

                settlementManagerMock.Expect(
                    sem =>
                    sem.SetPaymentInfoOnTransactionModel(Arg<TransactionModel>.Is.Anything,
                                                         Arg<Model.Booking.Payment>.Matches(p => p.Id == bookingPaymentMock.Id),
                                                         Arg<List<SettlementPaymentDto>>.Is.Anything,
                                                         Arg<Order>.Matches(
                                                                      o =>
                                                                      o.Id == orderMock.Id &&
                                                                      o.ChannelId == orderMock.ChannelId &&
                                                                      o.Bookings != null &&
                                                                      o.Bookings.Count == orderMock.Bookings.Count),
                                                         Arg<bool>.Is.Equal(forceProcess))).Repeat.Once();

                settlementManagerMock.Expect(
                    sem =>
                    sem.SetProviderDistributorInformationOnTransactionModel(Arg<TransactionModel>.Is.Anything,
                                                                            Arg<Model.Business.Business>.Matches(
                                                                                bu => bu.Id == businessMock.Id),
                                                                            Arg<Model.Business.Business>.Matches(
                                                                                chbu => chbu.Id == channelBusinessMock.Id), 
                                                                            Arg<Channel>.Is.Anything)).Repeat.Once();

                settlementManagerMock.Expect(
                    sem =>
                    sem.SetReservedProductOnTransactionModel(Arg<TransactionModel>.Is.Anything,
                                                             Arg<Booking>.Matches(b =>
                                                                                  b.Id == bookingMock.Id &&
                                                                                  b.OrderId == bookingMock.OrderId &&
                                                                                  b.BusinessId ==
                                                                                  bookingMock.BusinessId &&
                                                                                  b.BookingReferenceNumber ==
                                                                                  bookingMock
                                                                                      .BookingReferenceNumber),
                                                             Arg<Order>.Matches(
                                                                 o =>
                                                                 o.Id == orderMock.Id &&
                                                                 o.ChannelId == orderMock.ChannelId &&
                                                                 o.Bookings != null &&
                                                                 o.Bookings.Count == orderMock.Bookings.Count), 
                                                                 Arg<string>.Is.Anything)).Repeat.Once();

                settlementHelperMock.Expect(
                    helper =>
                    helper.SetMerchantInfoOnTransactionModel(Arg<TransactionModel>.Is.Anything,
                                                             Arg<Model.Booking.Booking>.Is.Anything,
                                                             Arg<Model.Business.Business>.Is.Anything,
                                                             Arg<Model.Business.Business>.Is.Anything,
                                                             Arg<List<SettlementPaymentDto>>.Is.Anything));

                settlementManagerMock.BookingDao = bookingDaoMock;
                settlementManagerMock.BookingEventDao = bookingEventDaoMock;
                settlementManagerMock.BookingEventDataDao = bookingEventDataDaoMock;
                settlementManagerMock.BookingItemDao = bookingItemDaoMock;
                settlementManagerMock.BusinessDao = businessDaoMock;
                settlementManagerMock.ChannelDao = channelDaoMock;
                settlementManagerMock.CountryDao = countryDaoMock;
                settlementManagerMock.OrderDao = orderDaoMock;
                settlementManagerMock.OrderReferenceDao = orderReferenceMock;
                settlementManagerMock.PaymentEventDao = paymentEventDaoMock;
                settlementManagerMock.PaymentDao = paymentDaoMock;
                settlementManagerMock.SettlementHelper = settlementHelperMock;

                #endregion

                // Act
                TransactionModel result = settlementManagerMock.CreateTransactionModelForInvoiceRequest(
                    GOOD_BOOKING_ID, GOOD_ORDER_ID, GOOD_EVENT_ID, forceProcess);

                // Assert
                settlementManagerMock.VerifyAllExpectations();
                bookingDaoMock.VerifyAllExpectations();
                bookingEventDaoMock.VerifyAllExpectations();
                bookingEventDataDaoMock.VerifyAllExpectations();
                bookingItemDaoMock.VerifyAllExpectations();
                businessDaoMock.VerifyAllExpectations();
                channelDaoMock.VerifyAllExpectations();
                countryDaoMock.VerifyAllExpectations();
                orderDaoMock.VerifyAllExpectations();
                orderReferenceMock.VerifyAllExpectations();
                paymentEventDaoMock.VerifyAllExpectations();
                paymentDaoMock.VerifyAllExpectations();
                settlementHelperMock.VerifyAllExpectations();
            }
示例#17
0
            public void FullModifyBusinessSucceeds()
            {
                using (new TestDataHelper(GetTestQuery(TestQuery.PopulateBusinessesTestData), GetTestQuery(TestQuery.CleanupUnitTestData)))
                {
                    // Arrange
                    Model.Business.Business businessToModify = new Model.Business.Business
                                                                   {
                                                                       Id = 1,

                                                                       Name = "_Name_",
                                                                       AddressLine1 = "_AddressLine1_",
                                                                       AddressLine2 = "_AddressLine2_",
                                                                       AddressLine3 = "_AddressLine3_",
                                                                       City = "_City_",
                                                                       PostCode = "_PostCode_",
                                                                       StateProvinceId = selectedStateId,
                                                                       CountryId = selectedCountryId,

                                                                       BusinessTelephoneNumber = "0123456789",
                                                                       FaxNumber = "0987654321",
                                                                       Email = "_Email_",
                                                                       Uri = "_Uri_",

                                                                       TimeZoneId = selectedTimezone,
                                                                       DefaultCultureCode = selectedCulture,
                                                                       WorkingCurrencyCode = selectedCurrency,
                                                                       ContractCurrencyCode = selectedCurrency,

                                                                       ProviderTypeCode = selectedProviderType,
                                                                       Provider = new Provider { RoomCount = int.MaxValue },

                                                                       BusinessStatusCode = "A",
                                                                       BusinessType = BusinessTypeEnum.Provider,
                                                                       IsMerchant = true,
                                                                       Latitude = 0,
                                                                       Longitude = 0,
                                                                       ReferenceCode = "_RefCode_",
                                                                       ShortName = "_ShortName_"
                                                                   };

                    // Act
                    businessDao.Modify(businessToModify);

                    // Assert
                    Model.Business.Business businessAfterModify = businessDao.GetByKey(1);
                    Assert.IsNotNull(businessAfterModify, "Could not retrieve business.");
                    Assert.AreEqual(businessToModify.Name, businessAfterModify.Name, "Name did not get modified.");
                    Assert.AreEqual(businessToModify.AddressLine1, businessAfterModify.AddressLine1,
                                    "AddressLine1 did not get modified.");
                    Assert.AreEqual(businessToModify.AddressLine2, businessAfterModify.AddressLine2,
                                    "AddressLine2 did not get modified.");
                    Assert.AreEqual(businessToModify.AddressLine3, businessAfterModify.AddressLine3,
                                    "AddressLine3 did not get modified.");
                    Assert.AreEqual(businessToModify.City, businessAfterModify.City, "City did not get modified.");
                    Assert.AreEqual(businessToModify.PostCode, businessAfterModify.PostCode,
                                    "PostCode did not get modified.");
                    Assert.AreEqual(businessToModify.StateProvinceId, businessAfterModify.StateProvinceId,
                                    "StateProvinceId did not get modified.");
                    Assert.AreEqual(businessToModify.CountryId, businessAfterModify.CountryId,
                                    "CountryId did not get modified.");

                    Assert.AreEqual(businessAfterModify.BusinessTelephoneNumber,
                                    businessToModify.BusinessTelephoneNumber,
                                    "BusinessTelephoneNumber did not get modified.");
                    Assert.AreEqual(businessToModify.FaxNumber, businessAfterModify.FaxNumber,
                                    "FaxNumber did not get modified.");
                    Assert.AreEqual(businessToModify.Email, businessAfterModify.Email, "Email did not get modified.");
                    Assert.AreEqual(businessToModify.Uri, businessAfterModify.Uri, "Uri did not get modified.");

                    Assert.AreEqual(businessToModify.TimeZoneId, businessAfterModify.TimeZoneId,
                                    "TimeZoneId did not get modified.");
                    Assert.AreEqual(businessToModify.DefaultCultureCode, businessAfterModify.DefaultCultureCode,
                                    "DefaultCultureCode did not get modified.");
                    Assert.AreEqual(businessToModify.WorkingCurrencyCode, businessAfterModify.WorkingCurrencyCode,
                                    "WorkingCurrencyCode did not get modified.");
                    Assert.AreEqual(businessToModify.ContractCurrencyCode, businessAfterModify.ContractCurrencyCode,
                                    "ContractCurrencyCode did not get modified.");

                    Assert.AreEqual(businessToModify.ProviderTypeCode, businessAfterModify.ProviderTypeCode,
                                    "ProviderType did not get modified.");
                }
            }
示例#18
0
            public void CreateBusinessProviderWithMissingProviderTypeCodeMandatoryFieldExpectException()
            {
                using (new TestDataHelper(GetTestQuery(TestQuery.PopulateBusinessesTestData), GetTestQuery(TestQuery.CleanupUnitTestData)))
                {

                    var newBusiness = new Model.Business.Business
                                          {

                                              Name = "_Name_",
                                              AddressLine1 = "_AddressLine1_",
                                              AddressLine2 = "_AddressLine2_",
                                              AddressLine3 = "_AddressLine3_",
                                              City = "_City_",
                                              PostCode = "_PostCode_",
                                              StateProvinceId = selectedStateId,
                                              CountryId = selectedCountryId,
                                              BusinessTelephoneNumber = "0123456789",
                                              FaxNumber = "0987654321",
                                              Email = "_Email_",
                                              Uri = "_Uri_",
                                              TimeZoneId = selectedTimezone,
                                              DefaultCultureCode = selectedCulture,
                                              WorkingCurrencyCode = selectedCurrency,
                                              ContractCurrencyCode = selectedCurrency,
                                              ProviderTypeCode = selectedProviderType,
                                              Provider = new Provider { RoomCount = int.MaxValue },
                                              BusinessStatusCode = "A",
                                              BusinessType = BusinessTypeEnum.Provider,
                                              IsMerchant = true,
                                              Latitude = 0,
                                              Longitude = 0,
                                              ReferenceCode = "_RefCode_",
                                              ShortName = "_ShortNamemicky"

                                          };

                    int newBusinessId = businessDao.Create(newBusiness);
                    businessDao.CreateProvider(new Provider() {Id = newBusinessId, ProviderTypeCode = "BBR"});
                }
            }
示例#19
0
            public void GetMerchantIdForNewProviderModel_WithActiveBusinessAccountInOgone_Expect_MerchantId_SetToActivePaymentMerchantPSPID()
            {
                const string BUSINESS_SHORT_NAME = "TestBus3";
                const string PAYMENT_PSPSID_ONE = "1";
                const string PAYMENT_PSPSID_TWO = "2";


                var serviceClientMock = MockRepository.GenerateMock<IPaymentServiceServiceClient>();
                var target = new SettlementHelper(mockLogger, serviceClientMock);
                var business = new Model.Business.Business() { ShortName = BUSINESS_SHORT_NAME, MerchantStatusEnum = MerchantStatusEnum.OwnMerchant };
                var merchantAccounts = new List<MerchantAccount>()
                                           {
                                               new MerchantAccount() { ShortName = BUSINESS_SHORT_NAME, MerchantAccountStatusCode = PaymentConstants.PAYMENT_MERCHANT_ACCOUNT_ACTIVE, PSPID = PAYMENT_PSPSID_ONE},
                                               new MerchantAccount() { ShortName = BUSINESS_SHORT_NAME, MerchantAccountStatusCode = PaymentConstants.PAYMENT_MERCHANT_ACCOUNT_INACTIVE, PSPID = PAYMENT_PSPSID_TWO}
                                           };



                serviceClientMock.Expect(serviceClient => serviceClient.GetMerchantAccounts("TestBus3")).Return(
                    Task.FromResult(merchantAccounts));
                    
                var merchantId =  target.GetMerchantIdForNewProviderModel(business).Result;

                Assert.AreEqual(merchantId, PAYMENT_PSPSID_ONE);

            }