Exemple #1
0
 private static string Encode(string s)
 {
     return
         (Base32Convert.ToBase32HexString(Encoding.UTF7.GetBytes(s),
                                          Base32FormattingOptions.
                                          InsertTrailingPadding));
 }
Exemple #2
0
 private static string DecodeOmitPadding(string s)
 {
     byte[] bytes =
         Base32Convert.FromBase32HexString(s,
                                           Base32FormattingOptions.
                                           None);
     return(Encoding.UTF7.GetString(bytes));
 }
        public void Given_Base32Converter_When_ABase32StringIsConvertedToByteArray_Then_CorrectDataIsReturned(
            String expected,
            String base32String)
        {
            var result = Base32Convert.FromBase32String(base32String);

            Assert.Equal(expected, Encoding.UTF8.GetString(result));
        }
Exemple #4
0
 private static string Decode(string s)
 {
     byte[] bytes =
         Base32Convert.FromBase32HexString(s,
                                           Base32FormattingOptions.
                                           InsertTrailingPadding);
     return(Encoding.UTF7.GetString(bytes));
 }
        public void Given_Base32Converter_When_NullBase32StringIsConvertedToByteArray_Then_ResultIsNull()
        {
            var base32String = default(String);

            var result = Base32Convert.FromBase32String(base32String);

            Assert.Null(result);
        }
        public void Given_Base32Converter_When_AStringInUTF8IsConvertedToBase32StringWithoutPadding_Then_ResultIsCorrect(String input, String expected)
        {
            var applyPadding = false;

            var result = Base32Convert.ToBase32String(Encoding.UTF8.GetBytes(input), applyPadding);

            Assert.Equal(expected, result);
        }
Exemple #7
0
        public void ToStringTest()
        {
            var expected = "6Q======";
            var data     = new byte[] { 244 };

            var actual = Base32Convert.ToString(data);

            Assert.Equal(expected, actual);
        }
Exemple #8
0
        public void ToBytesByteArrayTest()
        {
            var baseNCharBytes = "6Q======".ToCharArray().Select(ch => (byte)ch).ToArray();
            var expected       = new byte[] { 244 };

            var actual = Base32Convert.ToBytes(baseNCharBytes);

            Assert.Equal(expected, actual);
        }
Exemple #9
0
        public void ToBytesCharArrayPartialTest()
        {
            var baseNChars = "996Q======99".ToCharArray();
            var expected   = new byte[] { 244 };

            var actual = Base32Convert.ToBytes(baseNChars, 2, baseNChars.Length - 4);

            Assert.Equal(expected, actual);
        }
Exemple #10
0
        public void ToBytesCharArrayTest()
        {
            var baseNChars = "6Q======".ToCharArray();
            var expected   = new byte[] { 244 };

            var actual = Base32Convert.ToBytes(baseNChars);

            Assert.Equal(expected, actual);
        }
Exemple #11
0
        public void ToCharArrayPartialTest()
        {
            var expected = "6Q======".ToCharArray();
            var data     = new byte[] { 255, 244, 255 };

            var actual = Base32Convert.ToCharArray(data, 1, 1);

            Assert.Equal(expected, actual);
        }
Exemple #12
0
        public void ToCharArrayTest()
        {
            var expected = "6Q======".ToCharArray();
            var data     = new byte[] { 244 };

            var actual = Base32Convert.ToCharArray(data);

            Assert.Equal(expected, actual);
        }
Exemple #13
0
        public void ToStringPartialTest()
        {
            var expected = "6Q======";
            var data     = new byte[] { 255, 244, 255 };

            var actual = Base32Convert.ToString(data, 1, 1);

            Assert.Equal(expected, actual);
        }
Exemple #14
0
        public void ToBytesStringPartialTest()
        {
            var baseNString = "996Q======99";
            var expected    = new byte[] { 244 };

            var actual = Base32Convert.ToBytes(baseNString, 2, baseNString.Length - 4);

            Assert.Equal(expected, actual);
        }
Exemple #15
0
        public void ToByteStringTest()
        {
            var baseNString = "6Q======";
            var expected    = new byte[] { 244 };

            var actual = Base32Convert.ToBytes(baseNString);

            Assert.Equal(expected, actual);
        }
Exemple #16
0
        public void ToBytesByteArrayPartialTest()
        {
            var baseNCharBytes = "996Q======99".ToCharArray().Select(ch => (byte)ch).ToArray();
            var expected       = new byte[] { 244 };

            var actual = Base32Convert.ToBytes(baseNCharBytes, 2, baseNCharBytes.Length - 4);

            Assert.Equal(expected, actual);
        }
        public void Given_Base32Converter_When_EmptyArrayIsConvertedToBase32StringWithoutPadding_Then_ResultIsEmpty()
        {
            var input        = new byte[0];
            var applyPadding = false;

            var result = Base32Convert.ToBase32String(input, applyPadding);

            Assert.Equal(String.Empty, result);
        }
        public void Given_Base32Converter_When_NullArrayIsConvertedToBase32StringWithoutPadding_Then_ResultIsNull()
        {
            var input        = default(byte[]);
            var applyPadding = false;

            var result = Base32Convert.ToBase32String(input, applyPadding);

            Assert.Null(result);
        }
        Given_Base32Converter_When_AStringInUTF8IsConvertedToBase32StringWithoutPaddingAndBack_Then_ItIsTheSameAsTheOriginalString(
            String input)
        {
            var applyPadding = false;

            var base32 = Base32Convert.ToBase32String(Encoding.UTF8.GetBytes(input), applyPadding);
            var result = Base32Convert.FromBase32String(base32);

            Assert.Equal(input, Encoding.UTF8.GetString(result));
        }
Exemple #20
0
        static public void EncodeThenDecodeNoPadding(IEnumerator[] a)
        {
            List <byte> octets = new List <byte>();

            for (int j = 1; j < a.Length; j++)
            {
                octets.Add((byte)a[j].Current);
            }

            byte[] result = Base32Convert.FromBase32String(Base32Convert.ToBase32String(octets, Base32FormattingOptions.None), Base32FormattingOptions.None);
            Assert.IsTrue(SameContent(result, octets, Comparer <byte> .Default));
        }
Exemple #21
0
 private static string EncodeOmitPadding(string s)
 {
     return
         (Base32Convert.ToBase32HexString(Encoding.UTF7.GetBytes(s),
                                          Base32FormattingOptions.None));
 }
Exemple #22
0
 public void EncodeOmitPadding_null_throws()
 {
     Assert.Throws <ArgumentNullException>(
         () => Base32Convert.ToBase32HexString(null, Base32FormattingOptions.None));
 }
Exemple #23
0
 public void Encode_null_throws()
 {
     Assert.Throws <ArgumentNullException>(
         () => Base32Convert.ToBase32HexString(null, Base32FormattingOptions.InsertTrailingPadding));
 }
Exemple #24
0
 public void DecodeOmitPadding_PaddingCharacter_throws()
 {
     Assert.Throws <ArgumentException>(
         () => Base32Convert.FromBase32HexString("my======", Base32FormattingOptions.None));
 }
Exemple #25
0
 public void DecodeOmitPadding_CharacterNotInAlphabet_throws()
 {
     Assert.Throws <ArgumentException>(
         () => Base32Convert.FromBase32HexString("#y", Base32FormattingOptions.None));
 }
Exemple #26
0
 public void Decode_WrongNumberOfPaddingCharacters_throws()
 {
     Assert.Throws <ArgumentException>(
         () => Base32Convert.FromBase32HexString("my=====", Base32FormattingOptions.InsertTrailingPadding));
 }
Exemple #27
0
 public void DecodeOmitPadding_WrongNumberOfCharacters_6_throws()
 {
     Assert.Throws <ArgumentException>(
         () => Base32Convert.FromBase32HexString("123456", Base32FormattingOptions.None));
 }
Exemple #28
0
 public void Decode_MisplacedPaddingCharacter_throws()
 {
     Assert.Throws <ArgumentException>(
         () => Base32Convert.FromBase32HexString("m=y======", Base32FormattingOptions.InsertTrailingPadding)
         );
 }
Exemple #29
0
 public void Decode_CharacterNotInAlphabet_throws()
 {
     Assert.Throws <ArgumentException>(
         () => Base32Convert.FromBase32HexString("#y======", Base32FormattingOptions.InsertTrailingPadding)
         );
 }
        /// <summary>
        /// Annotate an xml document with a sort key suitable for xslt version 1 sorting algorithms (use lang='en')
        /// </summary>
        /// <param name="document">input to add sort keys to</param>
        /// <param name="xpathSortKeySource">an xpath that selects the source to use to create a sort key</param>
        /// <param name="sortKeyGenerator">delegate that returns a SortKey given a string</param>
        /// <param name="xpathElementToPutSortKeyAttributeIn">a relative xpath (from the source) that selects the element to put the sortkey attribute in</param>
        /// <param name="prefix">The prefix of the sort-key attribute</param>
        /// <param name="attribute">The sort key attribute</param>
        /// <param name="namespaceUri">The namespace of the sortkey attribute</param>
        public static void AddSortKeys(
            XPathNavigator document,
            string xpathSortKeySource,
            SortKeyGenerator sortKeyGenerator,
            string xpathElementToPutSortKeyAttributeIn,
            string prefix,
            string attribute,
            string namespaceUri)
        {
            if (document == null)
            {
                throw new ArgumentNullException("document");
            }
            if (xpathSortKeySource == null)
            {
                throw new ArgumentNullException("xpathSortKeySource");
            }
            if (sortKeyGenerator == null)
            {
                throw new ArgumentNullException("sortKeyGenerator");
            }
            if (xpathElementToPutSortKeyAttributeIn == null)
            {
                throw new ArgumentNullException("xpathElementToPutSortKeyAttributeIn");
            }
            if (attribute == null)
            {
                throw new ArgumentNullException("attribute");
            }
            if (prefix != null | namespaceUri != null)             // if both are null it's okay but if only one it's an error
            {
                if (prefix == null)
                {
                    throw new ArgumentNullException("prefix");
                }
                if (prefix.Length == 0)
                {
                    throw new ArgumentException("Invalid prefix. Prefix cannot be empty.");
                }
                if (namespaceUri == null)
                {
                    throw new ArgumentNullException("prefix");
                }
                if (namespaceUri.Length == 0)
                {
                    throw new ArgumentException("Invalid namespace URI. Cannot be empty.");
                }
            }
            XPathExpression compiledXpathElementToPutSortKeyAttributeIn =
                XPathExpression.Compile(xpathElementToPutSortKeyAttributeIn);

            foreach (XPathNavigator sortKeySource in document.Select(xpathSortKeySource))
            {
                byte[] sortKeyData   = sortKeyGenerator(sortKeySource.Value).KeyData;
                string sortKeyBase32 = Base32Convert.ToBase32HexString(sortKeyData, Base32FormattingOptions.None);

                XPathNavigator elementToPutSortKeyAttributeIn =
                    sortKeySource.SelectSingleNode(compiledXpathElementToPutSortKeyAttributeIn);

                if (elementToPutSortKeyAttributeIn.MoveToAttribute(attribute, namespaceUri ?? string.Empty))
                {
                    //now we point at the attribute that already exists
                    elementToPutSortKeyAttributeIn.DeleteSelf();
                }
                elementToPutSortKeyAttributeIn.CreateAttribute(prefix,
                                                               attribute,
                                                               namespaceUri,
                                                               sortKeyBase32);
            }
        }