Skip to content

Commit 1d7f1e8

Browse files
authored
Fix FromBase64 (#145)
***NO_CI***
1 parent bcbf646 commit 1d7f1e8

File tree

28 files changed

+266
-38
lines changed

28 files changed

+266
-38
lines changed

Tests/NFUnitTestArithmetic/NFUnitTestArithmetic.nfproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,17 @@
4242
<ProjectReference Include="..\UnitTestLauncher\UnitTestLauncher.nfproj" />
4343
</ItemGroup>
4444
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
45+
<!-- MANUAL UPDATE HERE -->
46+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
4547
<ProjectExtensions>
4648
<ProjectCapabilities>
4749
<ProjectConfigurationsDeclaredAsItems />
4850
</ProjectCapabilities>
4951
</ProjectExtensions>
52+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
53+
<PropertyGroup>
54+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
55+
</PropertyGroup>
56+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
57+
</Target>
5058
</Project>

Tests/NFUnitTestArray/NFUnitTestArray.nfproj

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,49 @@
4040
<None Include="nano.runsettings" />
4141
</ItemGroup>
4242
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
43+
<!-- MANUAL UPDATE HERE -->
44+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
45+
<!-- MANUAL UPDATE HERE -->
46+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
47+
<!-- MANUAL UPDATE HERE -->
48+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
49+
<!-- MANUAL UPDATE HERE -->
50+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
51+
<!-- MANUAL UPDATE HERE -->
52+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
4353
<ProjectExtensions>
4454
<ProjectCapabilities>
4555
<ProjectConfigurationsDeclaredAsItems />
4656
</ProjectCapabilities>
4757
</ProjectExtensions>
58+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
59+
<PropertyGroup>
60+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
61+
</PropertyGroup>
62+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
63+
</Target>
64+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
65+
<PropertyGroup>
66+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
67+
</PropertyGroup>
68+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
69+
</Target>
70+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
71+
<PropertyGroup>
72+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
73+
</PropertyGroup>
74+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
75+
</Target>
76+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
77+
<PropertyGroup>
78+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
79+
</PropertyGroup>
80+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
81+
</Target>
82+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
83+
<PropertyGroup>
84+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
85+
</PropertyGroup>
86+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
87+
</Target>
4888
</Project>

Tests/NFUnitTestAttributes/NFUnitTestAttributes.nfproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,17 @@
3939
<None Include="nano.runsettings" />
4040
</ItemGroup>
4141
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
42+
<!-- MANUAL UPDATE HERE -->
43+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
4244
<ProjectExtensions>
4345
<ProjectCapabilities>
4446
<ProjectConfigurationsDeclaredAsItems />
4547
</ProjectCapabilities>
4648
</ProjectExtensions>
49+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
50+
<PropertyGroup>
51+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
52+
</PropertyGroup>
53+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
54+
</Target>
4755
</Project>

Tests/NFUnitTestBasicConcepts/NFUnitTestBasicConcepts.nfproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,17 @@
3939
<None Include="nano.runsettings" />
4040
</ItemGroup>
4141
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
42+
<!-- MANUAL UPDATE HERE -->
43+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
4244
<ProjectExtensions>
4345
<ProjectCapabilities>
4446
<ProjectConfigurationsDeclaredAsItems />
4547
</ProjectCapabilities>
4648
</ProjectExtensions>
49+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
50+
<PropertyGroup>
51+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
52+
</PropertyGroup>
53+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
54+
</Target>
4755
</Project>

Tests/NFUnitTestBitConverter/NFUnitTestBitConverter.nfproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,17 @@
4040
<None Include="nano.runsettings" />
4141
</ItemGroup>
4242
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
43+
<!-- MANUAL UPDATE HERE -->
44+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
4345
<ProjectExtensions>
4446
<ProjectCapabilities>
4547
<ProjectConfigurationsDeclaredAsItems />
4648
</ProjectCapabilities>
4749
</ProjectExtensions>
50+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
51+
<PropertyGroup>
52+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
53+
</PropertyGroup>
54+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
55+
</Target>
4856
</Project>

Tests/NFUnitTestClasses/NFUnitTestClasses.nfproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,17 @@
5050
<None Include="nano.runsettings" />
5151
</ItemGroup>
5252
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
53+
<!-- MANUAL UPDATE HERE -->
54+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
5355
<ProjectExtensions>
5456
<ProjectCapabilities>
5557
<ProjectConfigurationsDeclaredAsItems />
5658
</ProjectCapabilities>
5759
</ProjectExtensions>
60+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
61+
<PropertyGroup>
62+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
63+
</PropertyGroup>
64+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
65+
</Target>
5866
</Project>

Tests/NFUnitTestConversions/NFUnitTestConversions.nfproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,17 @@
3838
<ProjectReference Include="..\UnitTestLauncher\UnitTestLauncher.nfproj" />
3939
</ItemGroup>
4040
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
41+
<!-- MANUAL UPDATE HERE -->
42+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
4143
<ProjectExtensions>
4244
<ProjectCapabilities>
4345
<ProjectConfigurationsDeclaredAsItems />
4446
</ProjectCapabilities>
4547
</ProjectExtensions>
48+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
49+
<PropertyGroup>
50+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
51+
</PropertyGroup>
52+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
53+
</Target>
4654
</Project>

Tests/NFUnitTestConversions/UnitTestConvertTests.cs

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,5 +510,72 @@ public static string FloatToHex(float f)
510510

511511
#endregion
512512

513+
#region Base64 conversions
514+
515+
[TestMethod]
516+
public void Convert_FromToBase64()
517+
{
518+
string sharedAccessKeyPlainText = "IAmALongAndNiceKeyInPlainText";
519+
string sharedAccessKey = "SUFtQUxvbmdBbmROaWNlS2V5SW5QbGFpblRleHQ=";
520+
521+
byte[] sharedAccessKeyAsByte = Convert.FromBase64String(sharedAccessKey);
522+
523+
char[] charArray = new char[sharedAccessKeyAsByte.Length];
524+
525+
for (int i = 0; i < sharedAccessKeyAsByte.Length; i++)
526+
{
527+
charArray[i] = (char)sharedAccessKeyAsByte[i];
528+
}
529+
530+
string sharedAccessKeyAsString = new(charArray);
531+
532+
Assert.Equal(sharedAccessKeyAsString, sharedAccessKeyPlainText, "Converted string as byte array is not correct.");
533+
534+
string convertedFromBase64 = Convert.ToBase64String(sharedAccessKeyAsByte);
535+
536+
Debug.WriteLine($">>{convertedFromBase64}");
537+
Debug.WriteLine($">>{sharedAccessKey}");
538+
539+
Assert.Equal(convertedFromBase64, sharedAccessKey, "Converted string from byte array is not correct.");
540+
}
541+
542+
[TestMethod]
543+
public void Convert_ToFromBase64()
544+
{
545+
byte[] inArray = new byte[256];
546+
byte[] outArray;
547+
int x;
548+
549+
for (x = 0; x < inArray.Length; x++)
550+
{
551+
inArray[x] = (byte)x;
552+
}
553+
554+
string base64EncodedString_WithLineBreaks = @"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4
555+
OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3Bx
556+
cnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmq
557+
q6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj
558+
5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==";
559+
560+
string base64EncodedString_WithoutLineBreaks = "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==";
561+
562+
string base64string1 = Convert.ToBase64String(
563+
inArray,
564+
0,
565+
inArray.Length,
566+
Base64FormattingOptions.InsertLineBreaks);
567+
568+
Assert.Equal(base64string1, base64EncodedString_WithLineBreaks, "Converted Base64 string with line breaks is not correct.");
569+
570+
string base64string2 = Convert.ToBase64String(inArray);
571+
572+
Assert.Equal(base64string2, base64EncodedString_WithoutLineBreaks, "Converted Base64 string without line breaks is not correct.");
573+
574+
outArray = Convert.FromBase64String(base64string1);
575+
576+
Assert.Equal(inArray, outArray, "Convert back from Base64 encoded array is not equal");
577+
}
578+
579+
#endregion
513580
}
514581
}

Tests/NFUnitTestDelegates/NFUnitTestDelegates.nfproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,17 @@
3636
<ProjectReference Include="..\UnitTestLauncher\UnitTestLauncher.nfproj" />
3737
</ItemGroup>
3838
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
39+
<!-- MANUAL UPDATE HERE -->
40+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
3941
<ProjectExtensions>
4042
<ProjectCapabilities>
4143
<ProjectConfigurationsDeclaredAsItems />
4244
</ProjectCapabilities>
4345
</ProjectExtensions>
46+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
47+
<PropertyGroup>
48+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
49+
</PropertyGroup>
50+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
51+
</Target>
4452
</Project>

Tests/NFUnitTestEnum/NFUnitTestEnum.nfproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,17 @@
3636
<ProjectReference Include="..\UnitTestLauncher\UnitTestLauncher.nfproj" />
3737
</ItemGroup>
3838
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
39+
<!-- MANUAL UPDATE HERE -->
40+
<Import Project="..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets" Condition="Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" />
3941
<ProjectExtensions>
4042
<ProjectCapabilities>
4143
<ProjectConfigurationsDeclaredAsItems />
4244
</ProjectCapabilities>
4345
</ProjectExtensions>
46+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
47+
<PropertyGroup>
48+
<WarningText>Update the Import path in nfproj to the correct nanoFramework.TestFramework NuGet package folder.</WarningText>
49+
</PropertyGroup>
50+
<Warning Condition="!Exists('..\..\packages\nanoFramework.TestFramework.1.0.132\build\nanoFramework.TestFramework.targets')" Text="'$(WarningText)'" />
51+
</Target>
4452
</Project>

0 commit comments

Comments
 (0)