private static bool ExportCalculationsForTargetProbability( Tuple <IEnumerable <HydraulicBoundaryLocationCalculation>, double> calculationsForTargetProbability, HydraulicBoundaryLocationCalculationsType calculationsType, ICollection <string> exportedCalculationFileNames, string folderPath) { IEnumerable <HydraulicBoundaryLocationCalculation> calculations = calculationsForTargetProbability.Item1; double targetProbability = calculationsForTargetProbability.Item2; string exportType = calculationsType == HydraulicBoundaryLocationCalculationsType.WaterLevel ? Resources.WaterLevels_DisplayName : Resources.WaveHeights_DisplayName; string uniqueName = NamingHelper.GetUniqueName( exportedCalculationFileNames, $"{exportType}_{ReturnPeriodFormattingHelper.FormatFromProbability(targetProbability)}", c => c); exportedCalculationFileNames.Add(uniqueName); string tempFilePath = Path.Combine(folderPath, $"{uniqueName}.{RiskeerCommonIOResources.Shape_file_filter_Extension}"); var exporter = new HydraulicBoundaryLocationCalculationsForTargetProbabilityExporter( calculations, tempFilePath, calculationsType); return(exporter.Export()); }
public void Export_WriterThrowsCriticalFileWriteException_LogErrorAndReturnFalse() { // Setup const string fileName = "test"; string directoryPath = TestHelper.GetScratchPadPath(nameof(Export_WriterThrowsCriticalFileWriteException_LogErrorAndReturnFalse)); Directory.CreateDirectory(directoryPath); string filePath = Path.Combine(directoryPath, $"{fileName}.shp"); var exporter = new HydraulicBoundaryLocationCalculationsForTargetProbabilityExporter(new[] { new HydraulicBoundaryLocationCalculation(new HydraulicBoundaryLocation(123, "aName", 1.1, 2.2)) }, filePath, HydraulicBoundaryLocationCalculationsType.WaterLevel); try { using (new DirectoryPermissionsRevoker(directoryPath, FileSystemRights.Write)) { // Call var isExported = true; void Call() => isExported = exporter.Export(); // Assert string expectedMessage = $"Er is een onverwachte fout opgetreden tijdens het schrijven van het bestand '{filePath}'. " + "Er zijn geen hydraulische belastingenlocaties geëxporteerd."; TestHelper.AssertLogMessageIsGenerated(Call, expectedMessage); Assert.IsFalse(isExported); } } finally { DirectoryHelper.TryDelete(directoryPath); } }
public void Constructor_ExpectedValues() { // Setup string filePath = TestHelper.GetScratchPadPath(Path.Combine("export", "test.shp")); // Call var exporter = new HydraulicBoundaryLocationCalculationsForTargetProbabilityExporter( Enumerable.Empty <HydraulicBoundaryLocationCalculation>(), filePath, HydraulicBoundaryLocationCalculationsType.WaterLevel); // Assert Assert.IsInstanceOf <IFileExporter>(exporter); }
public void Export_ValidData_ReturnsTrueAndWritesCorrectData(HydraulicBoundaryLocationCalculationsType calculationsType, string expectedExportFileName) { // Setup const string fileName = "test"; string directoryPath = TestHelper.GetScratchPadPath(nameof(Export_ValidData_ReturnsTrueAndWritesCorrectData)); Directory.CreateDirectory(directoryPath); string filePath = Path.Combine(directoryPath, $"{fileName}.shp"); var exporter = new HydraulicBoundaryLocationCalculationsForTargetProbabilityExporter(new[] { new HydraulicBoundaryLocationCalculation(new HydraulicBoundaryLocation(123, "aName", 1.1, 2.2)) }, filePath, calculationsType); // Precondition FileTestHelper.AssertEssentialShapefilesExist(directoryPath, fileName, false); try { // Call bool isExported = exporter.Export(); // Assert FileTestHelper.AssertEssentialShapefilesExist(directoryPath, fileName, true); FileTestHelper.AssertEssentialShapefileMd5Hashes( directoryPath, fileName, Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Riskeer.Integration.IO), nameof(HydraulicBoundaryLocationCalculationsForTargetProbabilityExporter)), expectedExportFileName, 28, 8, 628); Assert.IsTrue(isExported); } finally { DirectoryHelper.TryDelete(directoryPath); } }