Fisheye: Tag 69ba8c3394d749398c3f07bd925d805225d7c672 refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/HydraRingLogFileParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/HydraRingOutputFileParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/HydraRingOutputFileParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/HydraRingOutputFileParser.cs (revision 69ba8c3394d749398c3f07bd925d805225d7c672) @@ -0,0 +1,61 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.IO; +using log4net; +using Ringtoets.HydraRing.Calculation.Properties; + +namespace Ringtoets.HydraRing.Calculation.Parsers +{ + /// + /// Parser for a Hydra-Ring log file. + /// + public class HydraRingOutputFileParser : IHydraRingFileParser + { + private static readonly ILog log = LogManager.GetLogger(typeof(HydraRingOutputFileParser)); + + /// + /// Gets the output file content from a Hydra-Ring calculation, or the log file content in case of an error. + /// + public string OutputFileContent { get; private set; } + + public void Parse(string workingDirectory, int sectionId) + { + string outputFileName = sectionId + "-output.txt"; + string outputFilePath = Path.Combine(workingDirectory, outputFileName); + + if (!File.Exists(outputFilePath)) + { + outputFileName = sectionId + ".log"; + outputFilePath = Path.Combine(workingDirectory, outputFileName); + } + + try + { + OutputFileContent = File.ReadAllText(outputFilePath); + } + catch + { + log.ErrorFormat(Resources.Parse_Cannot_read_file_0_from_folder_1_, outputFileName, workingDirectory); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.Designer.cs =================================================================== diff -u -r35baeb163866f62a72bccf6438ddc08b41407ecf -r69ba8c3394d749398c3f07bd925d805225d7c672 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 35baeb163866f62a72bccf6438ddc08b41407ecf) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 69ba8c3394d749398c3f07bd925d805225d7c672) @@ -138,7 +138,7 @@ } /// - /// Looks up a localized string similar to Kan het Hydra-Ring logbestand {0} niet lezen uit de map {1}.. + /// Looks up a localized string similar to Kan het Hydra-Ring uitvoerbestand {0} niet lezen uit de map {1}.. /// internal static string Parse_Cannot_read_file_0_from_folder_1_ { get { Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.resx =================================================================== diff -u -r35baeb163866f62a72bccf6438ddc08b41407ecf -r69ba8c3394d749398c3f07bd925d805225d7c672 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.resx (.../Resources.resx) (revision 35baeb163866f62a72bccf6438ddc08b41407ecf) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.resx (.../Resources.resx) (revision 69ba8c3394d749398c3f07bd925d805225d7c672) @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Kan het Hydra-Ring logbestand {0} niet lezen uit de map {1}. + Kan het Hydra-Ring uitvoerbestand {0} niet lezen uit de map {1}. Hydra-Ring berekeningsverslag. Klik op details voor meer informatie. Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj =================================================================== diff -u -rc9b7e35a8bbf2fce3c59d6195c686480ccaa3eb5 -r69ba8c3394d749398c3f07bd925d805225d7c672 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision c9b7e35a8bbf2fce3c59d6195c686480ccaa3eb5) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision 69ba8c3394d749398c3f07bd925d805225d7c672) @@ -71,7 +71,7 @@ - + Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Services/HydraRingCalculationService.cs =================================================================== diff -u -r4ba68ad8c0ed15ce0449c39a5c6df1ef53daf866 -r69ba8c3394d749398c3f07bd925d805225d7c672 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Services/HydraRingCalculationService.cs (.../HydraRingCalculationService.cs) (revision 4ba68ad8c0ed15ce0449c39a5c6df1ef53daf866) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Services/HydraRingCalculationService.cs (.../HydraRingCalculationService.cs) (revision 69ba8c3394d749398c3f07bd925d805225d7c672) @@ -88,15 +88,15 @@ ICollection parsers, HydraRingInitializationService hydraRingInitializationService) { - var logFileParser = new HydraRingLogFileParser(); - parsers.Add(logFileParser); + var outputFileParser = new HydraRingOutputFileParser(); + parsers.Add(outputFileParser); ExecuteParsers(parsers, hydraRingInitializationService.TemporaryWorkingDirectory, hydraRingCalculationInput.Section.SectionId); - string logFileContent = logFileParser.LogFileContent; - if (!string.IsNullOrEmpty(logFileContent)) + string outputFileContent = outputFileParser.OutputFileContent; + if (!string.IsNullOrEmpty(outputFileContent)) { - log.InfoFormat(Resources.HydraRingCalculationService_HydraRing_calculation_report_message_text_0, logFileContent); + log.InfoFormat(Resources.HydraRingCalculationService_HydraRing_calculation_report_message_text_0, outputFileContent); } } Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/HydraRingOutputFileParserTest.cs =================================================================== diff -u --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/HydraRingOutputFileParserTest.cs (revision 0) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/HydraRingOutputFileParserTest.cs (revision 69ba8c3394d749398c3f07bd925d805225d7c672) @@ -0,0 +1,96 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.IO; +using Core.Common.TestUtil; +using NUnit.Framework; +using Ringtoets.HydraRing.Calculation.Parsers; + +namespace Ringtoets.HydraRing.Calculation.Test.Parsers +{ + [TestFixture] + public class HydraRingOutputFileParserTest + { + private readonly string testDataDirectory = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.HydraRing.Calculation, + Path.Combine("Parsers", "OutputFileParser")); + + [Test] + public void DefaultConstructor_SetDefaultValues() + { + // Call + var outputFileParser = new HydraRingOutputFileParser(); + + // Assert + Assert.IsInstanceOf(outputFileParser); + } + + [Test] + public void Parse_NotExistingWorkingDirectory_LogError() + { + // Setup + var outputFileParser = new HydraRingOutputFileParser(); + var outputFileNameOnError = "1.log"; + var nonExistentDirectory = "c:/niet_bestaande_map"; + + // Call + Action call = () => outputFileParser.Parse(nonExistentDirectory, 1); + + // Assert + var expectedMessage = string.Format("Kan het Hydra-Ring uitvoerbestand {0} niet lezen uit de map {1}.", outputFileNameOnError, nonExistentDirectory); + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage); + } + + [Test] + public void Parse_NotExistingOutputFile_LogError() + { + // Setup + var outputFileParser = new HydraRingOutputFileParser(); + var outputFileName = "1234567890-output.txt"; + + // Call + Action call = () => outputFileParser.Parse(testDataDirectory, 1234567890); + + // Assert + var outputFileNameOnError = "1234567890.log"; + var expectedMessage = string.Format("Kan het Hydra-Ring uitvoerbestand {0} niet lezen uit de map {1}.", new[] + { + outputFileNameOnError, + testDataDirectory + }); + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage); + } + + [Test] + public void Parse_ValidOutputFile_LogInfo() + { + // Setup + var outputFileParser = new HydraRingOutputFileParser(); + + // Call + outputFileParser.Parse(testDataDirectory, 1); + + // Assert + var expectedMessage = "In dit bestand staan veschillende berichten, welke door Hydra-Ring gegenereerd zijn."; + Assert.AreEqual(expectedMessage, outputFileParser.OutputFileContent); + } + } +} \ No newline at end of file Fisheye: Tag 69ba8c3394d749398c3f07bd925d805225d7c672 refers to a dead (removed) revision in file `Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Parsers/LogFileParserTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj =================================================================== diff -u -r3d84064b23186da3fb11f19ff0d07f41e1209bbb -r69ba8c3394d749398c3f07bd925d805225d7c672 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision 3d84064b23186da3fb11f19ff0d07f41e1209bbb) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision 69ba8c3394d749398c3f07bd925d805225d7c672) @@ -77,7 +77,7 @@ - + Fisheye: Tag 69ba8c3394d749398c3f07bd925d805225d7c672 refers to a dead (removed) revision in file `Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/LogFileParser/1.log'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/OutputFileParser/1-output.txt =================================================================== diff -u --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/OutputFileParser/1-output.txt (revision 0) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/test-data/Parsers/OutputFileParser/1-output.txt (revision 69ba8c3394d749398c3f07bd925d805225d7c672) @@ -0,0 +1 @@ +In dit bestand staan veschillende berichten, welke door Hydra-Ring gegenereerd zijn. \ No newline at end of file