From 824c9d250ce127c12f9afbc8d68fd484053b39e9 Mon Sep 17 00:00:00 2001 From: Mahmoud Al-Qudsi Date: Sun, 28 Apr 2024 11:24:01 -0500 Subject: [PATCH] Add net462 support to Tests.csproj That's the only .NET Framework version supported by the MSTest.TestFramework dependency. --- Tests/EncodeDecode.cs | 36 ++++++++++++++++++++++++++++++++++++ Tests/Tests.csproj | 10 ++++++++-- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/Tests/EncodeDecode.cs b/Tests/EncodeDecode.cs index 5476dcb..e1a1b03 100644 --- a/Tests/EncodeDecode.cs +++ b/Tests/EncodeDecode.cs @@ -3,7 +3,9 @@ using System.Text; using NeoSmart.Utils; using System; +#if NETCOREAPP using System.Buffers.Text; +#endif using System.Buffers; namespace Tests @@ -23,6 +25,29 @@ public void BasicTest() Assert.IsTrue(decoded.SequenceEqual(foo), "Decoded value mismatch!"); } + [TestMethod] + public void DecodeFromArrayPadded1() + { + var encoding = new UTF8Encoding(false); + var foo = encoding.GetBytes("foo11"); + var encoded = UrlBase64.Encode(foo, PaddingPolicy.Preserve); + Assert.AreEqual(Convert.ToBase64String(foo, Base64FormattingOptions.None).Replace('+', '-').Replace('/', '_'), encoded); + var decoded = UrlBase64.Decode(encoded); + CollectionAssert.AreEqual(foo, decoded); + } + + [TestMethod] + public void DecodeFromArrayPadded2() + { + var encoding = new UTF8Encoding(false); + var foo = encoding.GetBytes("foo1"); + var encoded = UrlBase64.Encode(foo, PaddingPolicy.Preserve); + Assert.AreEqual(Convert.ToBase64String(foo, Base64FormattingOptions.None).Replace('+', '-').Replace('/', '_'), encoded); + var decoded = UrlBase64.Decode(encoded); + CollectionAssert.AreEqual(foo, decoded.ToArray()); + } + +#if NETCOREAPP [TestMethod] public void EncodeToSpan() { @@ -75,6 +100,7 @@ public void DecodeFromSpanPadded1InsteadOf2() var decoded = UrlBase64.Decode(encoded.AsSpan(0, encoded.Length - 1)); CollectionAssert.AreEqual(foo, decoded.ToArray()); } +#endif [TestMethod] public void VariableLengthTest() @@ -108,6 +134,7 @@ public void VariableLengthTest() } } +#if NETCOREAPP private static byte[] SystemEncodeUtf8(byte[] input) { var systemEncoded = new byte[UrlBase64.GetMaxEncodedLength(input.Length)]; @@ -152,6 +179,7 @@ public void Utf8VariableLengthTest() } } } +#endif [TestMethod] public void PaddingPolicyTest() @@ -221,5 +249,13 @@ public static ReadOnlySpan TrimEnd(this ReadOnlySpan span, char trim for (; i >= 0 && span[i] == trim; --i) ; return span.Slice(0, i + 1); } + + public static byte[] TrimEnd(this byte[] array, char trim) + { + int i = array.Length - 1; + for (; i >= 0 && array[i] == trim; --i) ; + Array.Resize(ref array, i + 1); + return array; + } } } diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj index a6e7d9f..2d5a094 100644 --- a/Tests/Tests.csproj +++ b/Tests/Tests.csproj @@ -1,17 +1,23 @@ - netcoreapp3.0;net6 + net462;netcoreapp3.0;net6 12.0 false - + + + + + + +