@@ -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}
0 commit comments