Пример #1
0
        private CreateAssetRequest CreateAssetForLine(ImportAssetsRequest request, CancellationToken cancellationToken, string requestAssetLine)
        {
            CsvAsset csvAsset = new CsvAsset
            {
                CsvLine   = requestAssetLine,
                Delimiter = request.Delimiter
            };

            CreateAssetRequest createAssetRequest = _createAssetRequestFactory.Create(csvAsset);

            return(createAssetRequest);
        }
        public void GivenInValidInput_WhenWeCallCreate_ThenAssetIsNull(string delimiter, string csvLine)
        {
            //arrange
            var csvAsset = new CsvAsset
            {
                CsvLine   = csvLine,
                Delimiter = delimiter
            };
            //act
            var asset = _classUnderTest.Create(csvAsset);

            //assert
            asset.Should().BeNull();
        }
        private CreateAssetRequest CreateAssetRequestForColumn(string input, int csvColumn)
        {
            List <string> values = new List <string>();

            for (int i = 0; i < 100; i++)
            {
                values.Add("");
            }

            values[csvColumn] = input;

            var csvAsset = new CsvAsset
            {
                CsvLine   = String.Join(";", values),
                Delimiter = ";"
            };

            var asset = _classUnderTest.Create(csvAsset);

            return(asset);
        }
        public void GivenValidInput_WhenWeCallCreate_ThenAssetHasFieldsPopulated(string delimiter, string csvLine)
        {
            //arrange
            var csvAsset = new CsvAsset
            {
                CsvLine   = csvLine,
                Delimiter = delimiter
            };
            //act
            var asset = _classUnderTest.Create(csvAsset);

            //assert
            asset.Should().NotBeNull();
            asset.Programme.Should().NotBeNull();
            asset.EquityOwner.Should().NotBeNull();
            asset.SchemeId.Should().NotBeNull();
            asset.LocationLaRegionName.Should().NotBeNull();
            asset.ImsOldRegion.Should().NotBeNull();
            asset.NoOfBeds.Should().NotBeNull();
            asset.Address.Should().NotBeNull();
            asset.PropertyHouseName.Should().NotBeNull();
            asset.PropertyStreetNumber.Should().NotBeNull();
            asset.PropertyStreet.Should().NotBeNull();
            asset.PropertyTown.Should().NotBeNull();
            asset.PropertyPostcode.Should().NotBeNull();
            asset.DevelopingRslName.Should().NotBeNull();
            asset.LBHA.Should().NotBeNull();
            asset.CompletionDateForHpiStart.Should().NotBeNull().Should().NotBe(DateTime.MinValue);
            asset.ImsActualCompletionDate.Should().NotBeNull().Should().NotBe(DateTime.MinValue);
            asset.ImsExpectedCompletionDate.Should().NotBeNull().Should().NotBe(DateTime.MinValue);
            asset.ImsLegalCompletionDate.Should().NotBeNull().Should().NotBe(DateTime.MinValue);
            asset.HopCompletionDate.Should().NotBeNull().Should().NotBe(DateTime.MinValue);
            asset.Deposit.Should().NotBeNull();
            asset.AgencyEquityLoan.Should().NotBeNull();
            asset.DeveloperEquityLoan.Should().NotBeNull();
            asset.ShareOfRestrictedEquity.Should().NotBeNull();
            asset.DeveloperDiscount.Should().NotBeNull();
            asset.Mortgage.Should().NotBeNull();
            asset.PurchasePrice.Should().NotBeNull();
            asset.Fees.Should().NotBeNull();
            asset.HistoricUnallocatedFees.Should().NotBeNull();
            asset.ActualAgencyEquityCostIncludingHomeBuyAgentFee.Should().NotBeNull();
            asset.FullDisposalDate.Should().NotBeNull();
            asset.OriginalAgencyPercentage.Should().NotBeNull();
            asset.StaircasingPercentage.Should().NotBeNull();
            asset.NewAgencyPercentage.Should().NotBeNull();
            asset.Invested.Should().NotBeNull();
            asset.Month.Should().NotBeNull();
            asset.CalendarYear.Should().NotBeNull();
            asset.MMYYYY.Should().NotBeNull();
            asset.Row.Should().NotBeNull();
            asset.Col.Should().NotBeNull();
            asset.HPIStart.Should().NotBeNull();
            asset.HPIEnd.Should().NotBeNull();
            asset.HPIPlusMinus.Should().NotBeNull();
            asset.AgencyPercentage.Should().NotBeNull();
            asset.MortgageEffect.Should().NotBeNull();
            asset.RemainingAgencyCost.Should().BeNull();
            asset.WAEstimatedPropertyValue.Should().BeNull();
            asset.AgencyFairValueDifference.Should().BeNull();
            asset.ImpairmentProvision.Should().BeNull();
            asset.FairValueReserve.Should().BeNull();
            asset.AgencyFairValue.Should().BeNull();
            asset.DisposalsCost.Should().NotBeNull();
            asset.DurationInMonths.Should().NotBeNull();
            asset.MonthOfCompletionSinceSchemeStart.Should().NotBeNull();
            asset.DisposalMonthSinceCompletion.Should().NotBeNull();
            asset.IMSPaymentDate.Should().NotBeNull();
            asset.IsPaid.Should().NotBeNull();
            asset.IsAsset.Should().NotBeNull();
            asset.PropertyType.Should().NotBeNull();
            asset.Tenure.Should().NotBeNull();
            asset.ExpectedStaircasingRate.Should().NotBeNull();
            asset.EstimatedSalePrice.Should().NotBeNull();
            asset.RegionalSaleAdjust.Should().NotBeNull();
            asset.RegionalStairAdjust.Should().NotBeNull();
            asset.NotLimitedByFirstCharge.Should().NotBeNull();
            asset.EarlyMortgageIfNeverRepay.Should().NotBeNull();
            asset.ArrearsEffectAppliedOrLimited.Should().NotBeNull();
            asset.RelativeSalePropertyTypeAndTenureAdjustment.Should().NotBeNull();
            asset.RelativeStairPropertyTypeAndTenureAdjustment.Should().NotBeNull();
            asset.IsLondon.Should().NotBeNull();
            asset.QuarterSpend.Should().NotBeNull();
            asset.MortgageProvider.Should().NotBeNull();
            asset.HouseType.Should().NotBeNull();
            asset.PurchasePriceBand.Should().NotBeNull();
            asset.HouseholdIncome.Should().NotBeNull();
            asset.HouseholdFiveKIncomeBand.Should().NotBeNull();
            asset.HouseholdFiftyKIncomeBand.Should().NotBeNull();
            asset.FirstTimeBuyer.Should().NotBeNull();
        }
        public void GivenValidInput_WhenWeCallCreate_ThenAssetHasFieldsPopulatedInOrder(string delimiter,
                                                                                        string csvLine)
        {
            //arrange
            var csvAsset = new CsvAsset
            {
                CsvLine   = csvLine,
                Delimiter = delimiter
            };
            var fields = csvLine?.Split(delimiter);
            //act
            var asset = _classUnderTest.Create(csvAsset);

            //assert
            asset.Should().NotBeNull();
            asset.Programme.Should().BeEquivalentTo(fields.ElementAtOrDefault(0));
            asset.EquityOwner.Should().BeEquivalentTo(fields.ElementAtOrDefault(1));
            asset.SchemeId.Should().Be(int.Parse(fields.ElementAtOrDefault(2)));
            asset.LocationLaRegionName.Should().BeEquivalentTo(fields.ElementAtOrDefault(3));
            asset.ImsOldRegion.Should().BeEquivalentTo(fields.ElementAtOrDefault(4));
            asset.NoOfBeds.Should().Be(int.Parse(fields.ElementAtOrDefault(5)));
            asset.Address.Should().BeEquivalentTo(fields.ElementAtOrDefault(6));
            asset.PropertyHouseName.Should().BeEquivalentTo(fields.ElementAtOrDefault(7));
            asset.PropertyStreetNumber.Should().BeEquivalentTo(fields.ElementAtOrDefault(8));
            asset.PropertyStreet.Should().BeEquivalentTo(fields.ElementAtOrDefault(9));
            asset.PropertyTown.Should().BeEquivalentTo(fields.ElementAtOrDefault(10));
            asset.PropertyPostcode.Should().BeEquivalentTo(fields.ElementAtOrDefault(11));
            asset.DevelopingRslName.Should().BeEquivalentTo(fields.ElementAtOrDefault(12));
            asset.LBHA.Should().BeEquivalentTo(fields.ElementAtOrDefault(13));
            asset.CompletionDateForHpiStart.Should().Be(DateTime.Parse(fields.ElementAtOrDefault(14)));
            asset.ImsActualCompletionDate.Should().Be(DateTime.Parse(fields.ElementAtOrDefault(15)));
            asset.ImsExpectedCompletionDate.Should().Be(DateTime.Parse(fields.ElementAtOrDefault(16)));
            asset.ImsLegalCompletionDate.Should().Be(DateTime.Parse(fields.ElementAtOrDefault(17)));
            asset.HopCompletionDate.Should().Be(DateTime.Parse(fields.ElementAtOrDefault(18)));
            asset.Deposit.Should().Be(7350);
            asset.AgencyEquityLoan.Should().Be(29400);
            asset.DeveloperEquityLoan.Should().Be(1000);
            asset.ShareOfRestrictedEquity.Should().Be(100);
            asset.DeveloperDiscount.Should().Be(2);
            asset.Mortgage.Should().Be(110250);
            asset.PurchasePrice.Should().Be(147000);
            asset.Fees.Should().Be(600);
            asset.HistoricUnallocatedFees.Should().Be(10000);
            asset.ActualAgencyEquityCostIncludingHomeBuyAgentFee.Should().Be(30000);
            asset.FullDisposalDate.Should().Be(DateTime.Parse(fields.ElementAtOrDefault(29)));
            asset.OriginalAgencyPercentage.Should().Be(20);
            asset.StaircasingPercentage.Should().Be(20);
            asset.NewAgencyPercentage.Should().Be(0);
            asset.Invested.Should().Be(0);
            asset.Month.Should().Be(7);
            asset.CalendarYear.Should().Be(2013);
            asset.MMYYYY.Should().Be("7/2013");
            asset.Row.Should().Be(99);
            asset.Col.Should().Be(13);
            asset.HPIStart.Should().Be((decimal)94.7);
            asset.HPIEnd.Should().Be((decimal)125.4);
            asset.HPIPlusMinus.Should().Be((decimal)32.4);
            asset.AgencyPercentage.Should().Be(20);
            asset.MortgageEffect.Should().Be(0);
            asset.RemainingAgencyCost.Should().Be(10);
            asset.WAEstimatedPropertyValue.Should().Be(20);
            asset.AgencyFairValueDifference.Should().Be(30);
            asset.ImpairmentProvision.Should().Be(40);
            asset.FairValueReserve.Should().Be(50);
            asset.AgencyFairValue.Should().Be(60);
            asset.DisposalsCost.Should().Be(-30000);
            asset.DurationInMonths.Should().Be(63);
            asset.MonthOfCompletionSinceSchemeStart.Should().Be(3);
            asset.DisposalMonthSinceCompletion.Should().Be(46);
            asset.IMSPaymentDate.Should().Be(DateTime.Parse("11-Sep-13"));
            asset.IsPaid.Should().Be(true);
            asset.IsAsset.Should().Be(true);
            asset.PropertyType.Should().Be("Semi-detached");
            asset.Tenure.Should().Be("Freehold");
            asset.ExpectedStaircasingRate.Should().Be(42);
            asset.EstimatedSalePrice.Should().Be(179332);
            asset.EstimatedValuation.Should().Be(176939);
            asset.RegionalSaleAdjust.Should().Be((decimal) - 7.84);
            asset.RegionalStairAdjust.Should().Be((decimal) - 9.07);
            asset.NotLimitedByFirstCharge.Should().Be(false);
            asset.EarlyMortgageIfNeverRepay.Should().Be(0);
            asset.ArrearsEffectAppliedOrLimited.Should().Be("");
            asset.RelativeSalePropertyTypeAndTenureAdjustment.Should().Be(0);
            asset.RelativeStairPropertyTypeAndTenureAdjustment.Should().Be(0);
            asset.IsLondon.Should().Be(false);
            asset.QuarterSpend.Should().Be(2);
            asset.MortgageProvider.Should().Be("Halifax");
            asset.HouseType.Should().Be("Semi-detached");
            asset.PurchasePriceBand.Should().Be(200000);
            // Household income
            asset.HouseholdIncome.Should().Be(28842);
            asset.HouseholdFiveKIncomeBand.Should().Be(30000);
            asset.HouseholdFiftyKIncomeBand.Should().Be(50000);
            asset.FirstTimeBuyer.Should().Be(true);
        }