From 7c1f9671d19761ea80818541bb9ed8c9c7cf4fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Sim=C3=B5es?= Date: Fri, 3 Jun 2022 18:58:21 +0100 Subject: [PATCH 1/2] Migrate Unit Tests to use DataRow - Migrate UnitTestFormat. - Update test framework sub-module. --- Tests/NFUnitTestArithmetic/UnitTestFormat.cs | 38 ++++++++++++------- .../NFUnitTest_DummyAdapter.nfproj | 18 +++------ Tests/NFUnitTest_DummyAdapter/packages.config | 4 +- nanoFramework.TestFramework | 2 +- 4 files changed, 33 insertions(+), 29 deletions(-) diff --git a/Tests/NFUnitTestArithmetic/UnitTestFormat.cs b/Tests/NFUnitTestArithmetic/UnitTestFormat.cs index d0557243..1d030f43 100644 --- a/Tests/NFUnitTestArithmetic/UnitTestFormat.cs +++ b/Tests/NFUnitTestArithmetic/UnitTestFormat.cs @@ -38,34 +38,44 @@ public enum Case } [TestMethod] - public void StringFormat() + public void StringFormat_00() { // Test a null string in String.Format - should be treated like an empty string. string nullArg = null; Assert.Equal(string.Format("Value is {0}", nullArg), "Value is ", ""); + } + [TestMethod] + public void StringFormat_01() + { // catch an exception if the format string is null string nullFormat = null; Assert.Throws(typeof(NullReferenceException), () => { string.Format(nullFormat, 12345.67); }); + } + [TestMethod] + [DataRow("Left align in 10 chars: {0,-10:N2}: and then more", 1234.5641, "Left align in 10 chars: 1,234.56 : and then more")] + [DataRow("Right align in 10 chars: {0,10:N2}: and then more", 1234.5641, "Right align in 10 chars: 1,234.56: and then more")] + public void StringFormat_02(string formatString, double value, string outcomeMessage) + { // Test alignment operator which is the "," and a number. Negative is right aligned, positive left aligned + Assert.Equal(string.Format(formatString, value), outcomeMessage); + } - Assert.Equal(string.Format("Left align in 10 chars: {0,-10:N2}: and then more", 1234.5641), "Left align in 10 chars: 1,234.56 : and then more"); - Assert.Equal(string.Format("Right align in 10 chars: {0,10:N2}: and then more", 1234.5641), "Right align in 10 chars: 1,234.56: and then more"); - + [TestMethod] + [DataRow("{0,}", 12345.67, "Should throw with error message: Format error: empty alignment, column 3")] + [DataRow("{0,a10}", 12345.67, "Should throw with error message: Format error: wrong symbol at alignment, column 3")] + [DataRow("{0, -a10}", 12345.67, "Should throw with error message: Format error: wrong symbol at alignment, column 4")] + [DataRow("{a}", 12345.67, "Should throw with error message: Format error: wrong symbol at {}, column 1")] + [DataRow("{0:}", 12345.67, "Should throw with error message: Format error: empty format after ':', column 3")] + [DataRow("{0", 12345.67, "Should throw with error message: Format error: no closed brace, column 2")] + public void StringFormat_03(string formatString, double value, string outcomeMessage) + { + OutputHelper.WriteLine("formatString is" + formatString); // invalid alignment cases - - Assert.Throws(typeof(ArgumentException), () => { string.Format("{0,}", 12345.67); }, "Should throw with error message: Format error: empty alignment, column 3"); - Assert.Throws(typeof(ArgumentException), () => { string.Format("{0,a10}", 12345.67); }, "Should throw with error message: Format error: wrong symbol at alignment, column 3"); - Assert.Throws(typeof(ArgumentException), () => { string.Format("{0,-a10}", 12345.67); }, "Should throw with error message: Format error: wrong symbol at alignment, column 4"); - Assert.Throws(typeof(ArgumentException), () => { string.Format("{a}", 12345.67); }, "Should throw with error message: Format error: wrong symbol at {}, column 1"); - Assert.Throws(typeof(ArgumentException), () => { string.Format("{0:}", 12345.67); }, "Should throw with error message: Format error: empty format after ':', column 3"); - Assert.Throws(typeof(ArgumentException), () => { string.Format("{0", 12345.67); }, "Should throw with error message: Format error: no closed brace, column 2"); - + Assert.Throws(typeof(ArgumentException), () => { string.Format(formatString, value); }, outcomeMessage); } - - [TestMethod] // the D format can only be used with integers (no double or floats) public void DecimalFormat() diff --git a/Tests/NFUnitTest_DummyAdapter/NFUnitTest_DummyAdapter.nfproj b/Tests/NFUnitTest_DummyAdapter/NFUnitTest_DummyAdapter.nfproj index 572b7151..93f79ae3 100644 --- a/Tests/NFUnitTest_DummyAdapter/NFUnitTest_DummyAdapter.nfproj +++ b/Tests/NFUnitTest_DummyAdapter/NFUnitTest_DummyAdapter.nfproj @@ -35,20 +35,14 @@ - - ..\..\packages\nanoFramework.CoreLibrary.1.11.7\lib\mscorlib.dll - True - True + + ..\..\packages\nanoFramework.CoreLibrary.1.12.0\lib\mscorlib.dll - - ..\..\packages\nanoFramework.TestFramework.1.0.170\lib\nanoFramework.TestFramework.dll - True - True + + ..\..\packages\nanoFramework.TestFramework.1.0.207\lib\nanoFramework.TestFramework.dll - - ..\..\packages\nanoFramework.TestFramework.1.0.170\lib\nanoFramework.UnitTestLauncher.exe - True - True + + ..\..\packages\nanoFramework.TestFramework.1.0.207\lib\nanoFramework.UnitTestLauncher.exe diff --git a/Tests/NFUnitTest_DummyAdapter/packages.config b/Tests/NFUnitTest_DummyAdapter/packages.config index 8369d6b9..91e30ea7 100644 --- a/Tests/NFUnitTest_DummyAdapter/packages.config +++ b/Tests/NFUnitTest_DummyAdapter/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/nanoFramework.TestFramework b/nanoFramework.TestFramework index e633b276..fd44943b 160000 --- a/nanoFramework.TestFramework +++ b/nanoFramework.TestFramework @@ -1 +1 @@ -Subproject commit e633b2766fe51e4bb20fc985e0edc818c3a7aa70 +Subproject commit fd44943b39f6cf355156321f0f24b5256afe74cc From 6ca28d8fe4f50d3dd106c5a6214acf2be79b0f29 Mon Sep 17 00:00:00 2001 From: Marcin Torba Date: Mon, 6 Jun 2022 19:11:23 +0200 Subject: [PATCH 2/2] Update to latest test framework --- Tests/NFUnitTest_DummyAdapter/NFUnitTest_DummyAdapter.nfproj | 4 ++-- Tests/NFUnitTest_DummyAdapter/packages.config | 2 +- nanoFramework.TestFramework | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Tests/NFUnitTest_DummyAdapter/NFUnitTest_DummyAdapter.nfproj b/Tests/NFUnitTest_DummyAdapter/NFUnitTest_DummyAdapter.nfproj index 93f79ae3..803d5b4c 100644 --- a/Tests/NFUnitTest_DummyAdapter/NFUnitTest_DummyAdapter.nfproj +++ b/Tests/NFUnitTest_DummyAdapter/NFUnitTest_DummyAdapter.nfproj @@ -39,10 +39,10 @@ ..\..\packages\nanoFramework.CoreLibrary.1.12.0\lib\mscorlib.dll - ..\..\packages\nanoFramework.TestFramework.1.0.207\lib\nanoFramework.TestFramework.dll + ..\..\packages\nanoFramework.TestFramework.1.0.209\lib\nanoFramework.TestFramework.dll - ..\..\packages\nanoFramework.TestFramework.1.0.207\lib\nanoFramework.UnitTestLauncher.exe + ..\..\packages\nanoFramework.TestFramework.1.0.209\lib\nanoFramework.UnitTestLauncher.exe diff --git a/Tests/NFUnitTest_DummyAdapter/packages.config b/Tests/NFUnitTest_DummyAdapter/packages.config index 91e30ea7..ce8f5845 100644 --- a/Tests/NFUnitTest_DummyAdapter/packages.config +++ b/Tests/NFUnitTest_DummyAdapter/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/nanoFramework.TestFramework b/nanoFramework.TestFramework index fd44943b..79f22fb5 160000 --- a/nanoFramework.TestFramework +++ b/nanoFramework.TestFramework @@ -1 +1 @@ -Subproject commit fd44943b39f6cf355156321f0f24b5256afe74cc +Subproject commit 79f22fb5dbaeb20c2c36fd7b40e43132ddd61b7a