From 299cdbd662a435d81553be8b0aaf2c55a3f07377 Mon Sep 17 00:00:00 2001 From: Rune Johansen Date: Thu, 23 Oct 2025 15:36:56 +0200 Subject: [PATCH] Refactor unit tests to use more precise assertion methods and update project dependencies --- UnitTests/Csv/CsvSerializerTests.cs | 12 +++++++----- UnitTests/Excel/XlsxSerializerTest.cs | 4 ++-- UnitTests/HtmlSerializer/HtmlSerializerTests.cs | 10 +++++----- UnitTests/JsonStat/NoCrashTests_Issue220.cs | 6 +++--- UnitTests/JsonStat/TestAllFiles.cs | 4 +++- UnitTests/JsonStat2/TestAllFiles.cs | 2 +- .../ParquetSerializationIntegrationTests.cs | 2 +- UnitTests/UnitTests.csproj | 4 ++-- UnitTests/Util/Metaid/UnitTest1.cs | 14 +++++++------- 9 files changed, 31 insertions(+), 27 deletions(-) diff --git a/UnitTests/Csv/CsvSerializerTests.cs b/UnitTests/Csv/CsvSerializerTests.cs index 5a0df3f..b23e150 100644 --- a/UnitTests/Csv/CsvSerializerTests.cs +++ b/UnitTests/Csv/CsvSerializerTests.cs @@ -6,6 +6,8 @@ using PCAxis.Paxiom; +[assembly: Parallelize] + namespace PCAxis.Serializers.Tests.Csv { [TestClass] @@ -16,7 +18,7 @@ public class CsvSerializerTests public void Serialize_NullModel_ThrowsArgumentNullException() { var serializer = new CsvSerializer(); - Assert.ThrowsException(() => serializer.Serialize(null, "path")); + Assert.ThrowsExactly(() => serializer.Serialize(null, "path")); } [TestMethod] @@ -24,7 +26,7 @@ public void Serialize_NullStream_ThrowsArgumentNullException() { var serializer = new CsvSerializer(); var model = new PXModel(); - Assert.ThrowsException(() => serializer.Serialize(model, (Stream)null)); + Assert.ThrowsExactly(() => serializer.Serialize(model, (Stream)null)); } [TestMethod] @@ -33,7 +35,7 @@ public void Serialize_UnwritableStream_ThrowsArgumentException() var serializer = new CsvSerializer(); var model = new PXModel(); var stream = new MemoryStream(new byte[0], false); - Assert.ThrowsException(() => serializer.Serialize(model, stream)); + Assert.ThrowsExactly(() => serializer.Serialize(model, stream)); } [TestMethod] @@ -60,7 +62,7 @@ public void Serialize_ValidModel_WritesToStream() serializer.Serialize(model, stream); - Assert.IsTrue(stream.Length > 0); + Assert.IsGreaterThan(0, stream.Length); } [TestMethod] @@ -97,7 +99,7 @@ public void IncludeTitle_SetToTrue_WritesTitle() var reader = new StreamReader(stream); var content = reader.ReadToEnd(); - Assert.IsTrue(content.Contains("Consumer Price Index")); + Assert.Contains("Consumer Price Index", content); } } } diff --git a/UnitTests/Excel/XlsxSerializerTest.cs b/UnitTests/Excel/XlsxSerializerTest.cs index d55abbc..bfe5176 100644 --- a/UnitTests/Excel/XlsxSerializerTest.cs +++ b/UnitTests/Excel/XlsxSerializerTest.cs @@ -38,7 +38,7 @@ public void ShouldSerializeCommaSeparated() { string actual = helper.GetActual(model); - Assert.IsTrue(actual.Length >= 1); + Assert.IsGreaterThanOrEqualTo(1, actual.Length); } catch (Exception e) { @@ -57,7 +57,7 @@ public void ShouldSerialize() { string actual = helper.GetActual(model); - Assert.IsTrue(actual.Length >= 1); + Assert.IsGreaterThanOrEqualTo(1, actual.Length); } catch (Exception) { diff --git a/UnitTests/HtmlSerializer/HtmlSerializerTests.cs b/UnitTests/HtmlSerializer/HtmlSerializerTests.cs index ed2744b..8aa7fb0 100644 --- a/UnitTests/HtmlSerializer/HtmlSerializerTests.cs +++ b/UnitTests/HtmlSerializer/HtmlSerializerTests.cs @@ -14,7 +14,7 @@ public class HtmlSerializerTests public void Serialize_NullModel_ThrowsArgumentNullException() { var serializer = new HtmlSerializer(); - Assert.ThrowsException(() => serializer.Serialize(null, "path")); + Assert.ThrowsExactly(() => serializer.Serialize(null, "path")); } [TestMethod] @@ -22,7 +22,7 @@ public void Serialize_NullStream_ThrowsArgumentNullException() { var serializer = new HtmlSerializer(); var model = new PXModel(); - Assert.ThrowsException(() => serializer.Serialize(model, (Stream)null)); + Assert.ThrowsExactly(() => serializer.Serialize(model, (Stream)null)); } [TestMethod] @@ -31,7 +31,7 @@ public void Serialize_UnwritableStream_ThrowsArgumentException() var serializer = new HtmlSerializer(); var model = new PXModel(); var stream = new MemoryStream(new byte[0], false); - Assert.ThrowsException(() => serializer.Serialize(model, stream)); + Assert.ThrowsExactly(() => serializer.Serialize(model, stream)); } [TestMethod] @@ -46,8 +46,8 @@ public void Serialize_ValidModel_WritesToStream() using (var reader = new StreamReader(stream)) { var result = reader.ReadToEnd(); - Assert.IsTrue(result.Contains("")); + Assert.Contains("", result); } } } diff --git a/UnitTests/JsonStat/NoCrashTests_Issue220.cs b/UnitTests/JsonStat/NoCrashTests_Issue220.cs index 33adfea..f06d99e 100644 --- a/UnitTests/JsonStat/NoCrashTests_Issue220.cs +++ b/UnitTests/JsonStat/NoCrashTests_Issue220.cs @@ -30,7 +30,7 @@ public void PR0101B3_CultureInfoFinnish() { string actual = helper.GetActual(myModel); - Assert.IsTrue(actual.Length >= 1, "Made it!"); + Assert.IsGreaterThanOrEqualTo(1, actual.Length, "Made it!"); } catch (Exception) { @@ -54,7 +54,7 @@ public void NoCrash_CultureInfoFinnish() { string actual = helper.GetActual(myModel); - Assert.IsTrue(actual.Length >= 1, "Made it!"); + Assert.IsGreaterThanOrEqualTo(1, actual.Length, "Made it!"); } catch (Exception) { @@ -81,7 +81,7 @@ public void NoCrash_CultureInfoNorway() { string actual = helper.GetActual(myModel); - Assert.IsTrue(actual.Length >= 1, "Made it!"); + Assert.IsGreaterThanOrEqualTo(1, actual.Length, "Made it!"); } catch (Exception) { diff --git a/UnitTests/JsonStat/TestAllFiles.cs b/UnitTests/JsonStat/TestAllFiles.cs index d0eb996..faaf5ae 100644 --- a/UnitTests/JsonStat/TestAllFiles.cs +++ b/UnitTests/JsonStat/TestAllFiles.cs @@ -10,6 +10,8 @@ using PCAxis.Paxiom; +[assembly: DoNotParallelize] + namespace UnitTests.JsonStat { [TestClass] @@ -32,7 +34,7 @@ public void TestInitialize() } [TestMethod] - [DynamicData(nameof(GetPxFilePaths), DynamicDataSourceType.Method)] + [DynamicData(nameof(GetPxFilePaths))] public void SerializeAllTestFilesAndParse(string pxFile) { CultureInfo ci = new CultureInfo("sv-SE"); diff --git a/UnitTests/JsonStat2/TestAllFiles.cs b/UnitTests/JsonStat2/TestAllFiles.cs index 619b98a..6037bd2 100644 --- a/UnitTests/JsonStat2/TestAllFiles.cs +++ b/UnitTests/JsonStat2/TestAllFiles.cs @@ -32,7 +32,7 @@ public void TestInitialize() } [TestMethod] - [DynamicData(nameof(GetPxFilePaths), DynamicDataSourceType.Method)] + [DynamicData(nameof(GetPxFilePaths))] public void SerializeAllTestFilesAndParse(string pxFile) { CultureInfo ci = new CultureInfo("sv-SE"); diff --git a/UnitTests/Parquet/ParquetSerializationIntegrationTests.cs b/UnitTests/Parquet/ParquetSerializationIntegrationTests.cs index 65802d2..df6f488 100644 --- a/UnitTests/Parquet/ParquetSerializationIntegrationTests.cs +++ b/UnitTests/Parquet/ParquetSerializationIntegrationTests.cs @@ -31,7 +31,7 @@ public void TestInitialize() } [TestMethod, Description("Tests the serialization of PXModel to Parquet format and its correctness.")] - [DynamicData(nameof(GetPxFilePaths), DynamicDataSourceType.Method)] + [DynamicData(nameof(GetPxFilePaths))] public void ShouldSerializePxModel(string pxFile) { var model = GetPxModelFromFile(pxFile); diff --git a/UnitTests/UnitTests.csproj b/UnitTests/UnitTests.csproj index 9de9142..4bc5ce6 100644 --- a/UnitTests/UnitTests.csproj +++ b/UnitTests/UnitTests.csproj @@ -8,8 +8,8 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/UnitTests/Util/Metaid/UnitTest1.cs b/UnitTests/Util/Metaid/UnitTest1.cs index 6e2c007..8c77fe3 100644 --- a/UnitTests/Util/Metaid/UnitTest1.cs +++ b/UnitTests/Util/Metaid/UnitTest1.cs @@ -25,7 +25,7 @@ public void TestOnTable() var links = MetaIdResolverStatic.GetTableLinks(metaid_raw, "no"); - Assert.AreEqual(2, links.Count); + Assert.HasCount(2, links); Assert.AreEqual(expectedUrl, links[1].Url); Assert.AreEqual(expectedLinkText, links[1].Label); Assert.AreEqual(expectedRelation, links[1].Relation); @@ -100,7 +100,7 @@ public void TestMissing() { string metaid_raw = "missing:123"; var links = MetaIdResolverStatic.GetTableLinks(metaid_raw, "no"); - Assert.AreEqual(0, links.Count); + Assert.HasCount(0, links); } [TestMethod] @@ -116,7 +116,7 @@ public void TestMulti() string expectedMataid_2 = "urn:ssb:classification:klass:3"; List links = MetaIdResolverStatic.GetVariableLinks(metaid_raw, "en", "region"); - Assert.AreEqual(3, links.Count); + Assert.HasCount(3, links); Assert.AreEqual(expectedUrl_0, links[0].Url); Assert.AreEqual(expectedUrl_1, links[1].Url); Assert.AreEqual(expectedUrl_2, links[2].Url); @@ -133,7 +133,7 @@ public void TestNoLabel() List links = MetaIdResolverStatic.GetTableLinks(metaid_raw, "en"); - Assert.AreEqual(1, links.Count); + Assert.HasCount(1, links); Assert.AreEqual(expectedUrl, links[0].Url); Assert.AreEqual(expectedLabel, links[0].Label); } @@ -148,7 +148,7 @@ public void TestAnyUrl() string expectedLabel = ""; List links = MetaIdResolverStatic.GetTableLinks(metaid_raw, "en"); - Assert.AreEqual(1, links.Count); + Assert.HasCount(1, links); Assert.AreEqual(expectedUrl, links[0].Url); Assert.AreEqual(expectedLabel, links[0].Label); } @@ -159,12 +159,12 @@ public void TestAnyUrl() public void TestTooFewParams() { // exception text is passed when config or metaid dont fit. - // throwing an exception seems to much + // throwing an exception seems to much string metaid_raw = "urn:ssb:contextvariable:common:3"; string expectedUrl = "Index (zero based) must be greater than or equal to zero and less than the size of the argument list."; List links = MetaIdResolverStatic.GetValueLinks(metaid_raw, "en", "region", "some value"); - Assert.AreEqual(1, links.Count); + Assert.HasCount(1, links); Assert.AreEqual(expectedUrl, links[0].Url); }