diff --git a/PCAxis.Core.Tests/PCAxis.Core.Tests.csproj b/PCAxis.Core.Tests/PCAxis.Core.Tests.csproj index fe7af06..913d9d6 100644 --- a/PCAxis.Core.Tests/PCAxis.Core.Tests.csproj +++ b/PCAxis.Core.Tests/PCAxis.Core.Tests.csproj @@ -15,6 +15,16 @@ true + + + + + + + Always + + + diff --git a/PCAxis.Core.Tests/PXFileParserTests.cs b/PCAxis.Core.Tests/PXFileParserTests.cs index 0ef453e..8d18c95 100644 --- a/PCAxis.Core.Tests/PXFileParserTests.cs +++ b/PCAxis.Core.Tests/PXFileParserTests.cs @@ -1,4 +1,6 @@ using PCAxis.Paxiom.Parsers; +using System.IO; +using System.Text; namespace PCAxis.Core.Tests; @@ -19,4 +21,18 @@ public void ShouldReturnDescription() Assert.AreEqual("this is the default plugin which reads a classical pc-axis file", description); } + + [TestMethod] + public void GetEncoding_ShouldReadAliasFile() + { + // Arrange + var fixturePath = Path.Combine(AppContext.BaseDirectory, "Test_files", "Alias_en.txt"); + + // Act + var encoding = PXFileParser.GetEncoding(fixturePath); + + // Assert + Assert.IsNotNull(encoding); + Assert.AreEqual(Encoding.Default, encoding); + } } diff --git a/PCAxis.Core.Tests/Test_files/Alias_en.txt b/PCAxis.Core.Tests/Test_files/Alias_en.txt new file mode 100644 index 0000000..0a27bed --- /dev/null +++ b/PCAxis.Core.Tests/Test_files/Alias_en.txt @@ -0,0 +1 @@ +Environment \ No newline at end of file diff --git a/PCAxis.Core/Parsers/PXFileParser.vb b/PCAxis.Core/Parsers/PXFileParser.vb index 58891ca..814b3ce 100644 --- a/PCAxis.Core/Parsers/PXFileParser.vb +++ b/PCAxis.Core/Parsers/PXFileParser.vb @@ -58,7 +58,7 @@ Namespace PCAxis.Paxiom.Parsers Dim encoding As System.Text.Encoding = GetEncodingFromCodePage(GetStream()) If encoding Is Nothing Then - GetEncodingFromUde(GetStream, 16000) + encoding = GetEncodingFromUde(GetStream, 16000) End If Return encoding @@ -68,7 +68,7 @@ Namespace PCAxis.Paxiom.Parsers Dim encoding As System.Text.Encoding = GetEncodingFromCodePage(New System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)) If encoding Is Nothing Then - GetEncodingFromUde(New System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read), Convert.ToInt32(New System.IO.FileInfo(path).Length)) + encoding = GetEncodingFromUde(New System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read), Convert.ToInt32(New System.IO.FileInfo(path).Length)) End If Return encoding @@ -81,7 +81,7 @@ Namespace PCAxis.Paxiom.Parsers Dim lineCount = 1 Dim nextLine As String = tr.ReadLine() - While lineCount <= 100 And nextLine IsNot Nothing And Not nextLine.ToUpper().StartsWith("DATA=") + While lineCount <= 100 AndAlso nextLine IsNot Nothing AndAlso Not nextLine.ToUpper().StartsWith("DATA=") If nextLine.ToUpper().StartsWith("CODEPAGE=") Then nextLine = nextLine.Substring(nextLine.IndexOf("""") + 1) nextLine = nextLine.Substring(0, nextLine.LastIndexOf(""""))