public async Task LoadWaterAllocation_ExemptOfPriorityFlow_BadData(bool exemptOfPriorityFlow, DateTime?priorityDate, string allocationFlow_CFS, string allocationVolume_AF) { OrganizationsDim organization; VariablesDim variable; WaterSourcesDim waterSource; MethodsDim method; DateDim dataPublicationDate; WaterAllocation waterAllocation; string startTestString = "01/01"; string endTestString = "12/01"; int errorCount = 0; using (var db = new WaDEContext(Configuration.GetConfiguration())) { errorCount = db.ImportErrors.Count(); organization = await OrganizationsDimBuilder.Load(db); variable = await VariablesDimBuilder.Load(db); waterSource = await WaterSourcesDimBuilder.Load(db); method = await MethodsDimBuilder.Load(db); dataPublicationDate = await DateDimBuilder.Load(db); waterAllocation = WaterAllocationBuilder.Create(new WaterAllocationBuilderOptions { RecordType = WaterAllocationRecordType.None }); //////////////////// Exempt of Volume Flow Priority Columns waterAllocation.ExemptOfVolumeFlowPriority = exemptOfPriorityFlow; waterAllocation.AllocationPriorityDate = priorityDate; waterAllocation.AllocationFlow_CFS = allocationFlow_CFS; waterAllocation.AllocationVolume_AF = allocationVolume_AF; //////////////////// waterAllocation.OrganizationUUID = organization.OrganizationUuid; waterAllocation.VariableSpecificUUID = variable.VariableSpecificUuid; waterAllocation.WaterSourceUUID = waterSource.WaterSourceUuid; waterAllocation.MethodUUID = method.MethodUuid; waterAllocation.DataPublicationDate = dataPublicationDate.Date; waterAllocation.AllocationTimeframeStart = startTestString; waterAllocation.AllocationTimeframeEnd = endTestString; } var sut = CreateWaterAllocationAccessor(); var result = await sut.LoadWaterAllocation((new Faker()).Random.AlphaNumeric(10), new[] { waterAllocation }); result.Should().BeFalse(); using (var db = new WaDEContext(Configuration.GetConfiguration())) { db.ImportErrors.Should().HaveCount(errorCount + 1); var error = await db.ImportErrors.LastAsync(); error.Data.Should().Contain("Allocation Not Exempt of Volume Flow Priority"); } }
public async Task LoadWaterAllocation_BadLoad_CivilianAndPower() { OrganizationsDim organization; VariablesDim variable; WaterSourcesDim waterSource; MethodsDim method; DateDim dataPublicationDate; DateDim allocationPriorityDate; WaterAllocation waterAllocation; using (var db = new WaDEContext(Configuration.GetConfiguration())) { organization = await OrganizationsDimBuilder.Load(db); variable = await VariablesDimBuilder.Load(db); waterSource = await WaterSourcesDimBuilder.Load(db); method = await MethodsDimBuilder.Load(db); dataPublicationDate = await DateDimBuilder.Load(db); allocationPriorityDate = await DateDimBuilder.Load(db); waterAllocation = WaterAllocationBuilder.Create(new WaterAllocationBuilderOptions { RecordType = WaterAllocationRecordType.Civilian }); waterAllocation.OrganizationUUID = organization.OrganizationUuid; waterAllocation.VariableSpecificUUID = variable.VariableSpecificUuid; waterAllocation.WaterSourceUUID = waterSource.WaterSourceUuid; waterAllocation.MethodUUID = method.MethodUuid; waterAllocation.DataPublicationDate = dataPublicationDate.Date; waterAllocation.AllocationPriorityDate = allocationPriorityDate.Date; waterAllocation.GeneratedPowerCapacityMW = (new Faker()).Random.Decimal(0, 1000).ToString(); } var sut = CreateWaterAllocationAccessor(); var runId = (new Faker()).Random.AlphaNumeric(10); var result = await sut.LoadWaterAllocation(runId, new[] { waterAllocation }); result.Should().BeFalse(); using (var db = new WaDEContext(Configuration.GetConfiguration())) { db.AllocationAmountsFact.Should().HaveCount(0); var importError = db.ImportErrors.Single(); importError.RunId.Should().Be(runId); importError.Data.Should().Contain("Cross Group Not Valid"); } }
public async Task LoadWaterAllocation_LoadAllocationBridge_PrimaryUseCategoryCV_Null() { OrganizationsDim organization; VariablesDim variable; WaterSourcesDim waterSource; MethodsDim method; DateDim dataPublicationDate; DateDim allocationPriorityDate; WaterAllocation waterAllocation; BeneficialUsesCV beneficialUsesCV; string startTestString = "01/01"; string endTestString = "12/01"; using (var db = new WaDEContext(Configuration.GetConfiguration())) { organization = await OrganizationsDimBuilder.Load(db); variable = await VariablesDimBuilder.Load(db); waterSource = await WaterSourcesDimBuilder.Load(db); method = await MethodsDimBuilder.Load(db); dataPublicationDate = await DateDimBuilder.Load(db); allocationPriorityDate = await DateDimBuilder.Load(db); beneficialUsesCV = await BeneficalUsesBuilder.Load(db); waterAllocation = WaterAllocationBuilder.Create(new WaterAllocationBuilderOptions { RecordType = WaterAllocationRecordType.None }); waterAllocation.PrimaryUseCategory = null; waterAllocation.BeneficialUseCategory = beneficialUsesCV.Name; waterAllocation.OrganizationUUID = organization.OrganizationUuid; waterAllocation.VariableSpecificUUID = variable.VariableSpecificUuid; waterAllocation.WaterSourceUUID = waterSource.WaterSourceUuid; waterAllocation.MethodUUID = method.MethodUuid; waterAllocation.DataPublicationDate = dataPublicationDate.Date; waterAllocation.AllocationPriorityDate = allocationPriorityDate.Date; waterAllocation.AllocationTimeframeStart = startTestString; waterAllocation.AllocationTimeframeEnd = endTestString; } var sut = CreateWaterAllocationAccessor(); var result = await sut.LoadWaterAllocation((new Faker()).Random.AlphaNumeric(10), new[] { waterAllocation }); result.Should().BeTrue(); using (var db = new WaDEContext(Configuration.GetConfiguration())) { var dbAllocationAmount = await db.AllocationAmountsFact.SingleAsync(); dbAllocationAmount.Should().NotBeNull(); dbAllocationAmount.PrimaryUseCategoryCV.Should().BeNull(); var dbAllocationBridge = await db.AllocationBridgeBeneficialUsesFact.SingleAsync(); dbAllocationBridge.Should().NotBeNull(); dbAllocationBridge.AllocationBridgeId.Should().BeGreaterThan(0); dbAllocationBridge.AllocationAmountId.Should().Be(dbAllocationBridge.AllocationAmountId); dbAllocationBridge.BeneficialUseCV.Should().Be(beneficialUsesCV.Name); db.ImportErrors.Should().HaveCount(0); } }
public async Task LoadWaterAllocation_SimpleLoad() { OrganizationsDim organization; VariablesDim variable; WaterSourcesDim waterSource; MethodsDim method; DateDim dataPublicationDate; DateDim allocationPriorityDate; WaterAllocation waterAllocation; string startTestString = "01/01"; string endTestString = "12/01"; using (var db = new WaDEContext(Configuration.GetConfiguration())) { organization = await OrganizationsDimBuilder.Load(db); variable = await VariablesDimBuilder.Load(db); waterSource = await WaterSourcesDimBuilder.Load(db); method = await MethodsDimBuilder.Load(db); dataPublicationDate = await DateDimBuilder.Load(db); allocationPriorityDate = await DateDimBuilder.Load(db); waterAllocation = WaterAllocationBuilder.Create(new WaterAllocationBuilderOptions { RecordType = WaterAllocationRecordType.None }); waterAllocation.OrganizationUUID = organization.OrganizationUuid; waterAllocation.VariableSpecificUUID = variable.VariableSpecificUuid; waterAllocation.WaterSourceUUID = waterSource.WaterSourceUuid; waterAllocation.MethodUUID = method.MethodUuid; waterAllocation.DataPublicationDate = dataPublicationDate.Date; waterAllocation.AllocationPriorityDate = allocationPriorityDate.Date; waterAllocation.AllocationTimeframeStart = startTestString; waterAllocation.AllocationTimeframeEnd = endTestString; } var sut = CreateWaterAllocationAccessor(); var result = await sut.LoadWaterAllocation((new Faker()).Random.AlphaNumeric(10), new[] { waterAllocation }); result.Should().BeTrue(); using (var db = new WaDEContext(Configuration.GetConfiguration())) { var dbAllocationAmount = await db.AllocationAmountsFact.SingleAsync(); dbAllocationAmount.AllocationAmountId.Should().NotBe(0); dbAllocationAmount.OrganizationId.Should().Be(organization.OrganizationId); dbAllocationAmount.VariableSpecificId.Should().Be(variable.VariableSpecificId); dbAllocationAmount.WaterSourceId.Should().Be(waterSource.WaterSourceId); dbAllocationAmount.MethodId.Should().Be(method.MethodId); dbAllocationAmount.DataPublicationDateId.Should().Be(dataPublicationDate.DateId); dbAllocationAmount.AllocationPriorityDateID.Should().Be(allocationPriorityDate.DateId); dbAllocationAmount.AllocationTimeframeStart.Should().Be(startTestString); dbAllocationAmount.AllocationTimeframeEnd.Should().Be(endTestString); db.ImportErrors.Should().HaveCount(0); } }
public async Task LoadWaterAllocation_ExemptOfPriorityFlow(bool exemptOfPriorityFlow, DateTime?priorityDate, string allocationFlow_CFS, string allocationVolume_AF) { OrganizationsDim organization; VariablesDim variable; WaterSourcesDim waterSource; MethodsDim method; DateDim dataPublicationDate; WaterAllocation waterAllocation; string startTestString = "01/01"; string endTestString = "12/01"; using (var db = new WaDEContext(Configuration.GetConfiguration())) { organization = await OrganizationsDimBuilder.Load(db); variable = await VariablesDimBuilder.Load(db); waterSource = await WaterSourcesDimBuilder.Load(db); method = await MethodsDimBuilder.Load(db); dataPublicationDate = await DateDimBuilder.Load(db); waterAllocation = WaterAllocationBuilder.Create(new WaterAllocationBuilderOptions { RecordType = WaterAllocationRecordType.None }); //////////////////// Exempt of Volume Flow Priority Columns // When exempt is TRUE priority date, allocation flow or allocation volume can be NULL. waterAllocation.ExemptOfVolumeFlowPriority = exemptOfPriorityFlow; waterAllocation.AllocationPriorityDate = priorityDate; waterAllocation.AllocationFlow_CFS = allocationFlow_CFS; waterAllocation.AllocationVolume_AF = allocationVolume_AF; //////////////////// waterAllocation.OrganizationUUID = organization.OrganizationUuid; waterAllocation.VariableSpecificUUID = variable.VariableSpecificUuid; waterAllocation.WaterSourceUUID = waterSource.WaterSourceUuid; waterAllocation.MethodUUID = method.MethodUuid; waterAllocation.DataPublicationDate = dataPublicationDate.Date; waterAllocation.AllocationTimeframeStart = startTestString; waterAllocation.AllocationTimeframeEnd = endTestString; } var sut = CreateWaterAllocationAccessor(); var result = await sut.LoadWaterAllocation((new Faker()).Random.AlphaNumeric(10), new[] { waterAllocation }); result.Should().BeTrue(); using (var db = new WaDEContext(Configuration.GetConfiguration())) { var dbAllocationAmount = await db.AllocationAmountsFact.SingleAsync(); dbAllocationAmount.AllocationAmountId.Should().NotBe(0); dbAllocationAmount.ExemptOfVolumeFlowPriority.GetValueOrDefault(false).Should().Be(exemptOfPriorityFlow); dbAllocationAmount.AllocationFlow_CFS.ToString().Should().Be(allocationFlow_CFS ?? ""); dbAllocationAmount.AllocationVolume_AF.ToString().Should().Be(allocationVolume_AF ?? ""); if (priorityDate.HasValue) { dbAllocationAmount.AllocationPriorityDateID.Should().BeGreaterThan(0); } else { dbAllocationAmount.AllocationPriorityDateID.Should().BeNull(); } db.ImportErrors.Should().HaveCount(0); } }