Exemplo n.º 1
0
        public void GetCharsToBufferTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData)
        {
            var decoder      = (BaseNDecoder)encoding.GetDecoder();
            var random       = new Random(9375220);
            var input        = PadData(plainTextData, out var offset, out var extra, random);
            var output       = new char[encodedData.Length + 2];
            var encodedChars = decoder.GetChars(input, offset, plainTextData.Length, output, 1);
            var charCount    = decoder.GetCharCount(input, offset, plainTextData.Length, true);

            Assert.Equal(encodedData, new string(output, 1, output.Length - 2));
            Assert.Equal(charCount, encodedChars);
        }
Exemplo n.º 2
0
        public void GetCharsSpanBytesTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData)
        {
            var decoder      = (BaseNDecoder)encoding.GetDecoder();
            var outputBuffer = new char[encodedData.Length];
            var input        = (Span <byte>)plainTextData;
            var output       = (Span <char>)outputBuffer;

            decoder.GetChars(input, output, true);
            var charCount = decoder.GetCharCount(input, true);

            Assert.Equal(encodedData, new string(output));
            Assert.Equal(outputBuffer.Length, charCount);
        }
Exemplo n.º 3
0
        public void EncodeSpanToSpanTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData)
        {
            var decoder      = (BaseNDecoder)encoding.GetDecoder();
            var outputBuffer = new byte[encodedData.Length];
            var input        = (Span <byte>)plainTextData;
            var output       = (Span <byte>)outputBuffer;

            decoder.Convert(input, output, true, out var inputUsed, out var outputUsed, out var completed);

            Assert.Equal(plainTextData.Length, inputUsed);
            Assert.Equal(outputBuffer.Length, outputUsed);
            Assert.Equal(encodedData, new string(outputBuffer.Select(b => (char)b).ToArray(), 0, outputBuffer.Length));
            Assert.True(completed);
        }
Exemplo n.º 4
0
        public void EncodeBytesToBytesTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData)
        {
            var input        = new ArraySegment <byte>(plainTextData, 0, plainTextData.Length);
            var outputBuffer = new byte[encodedData.Length];
            var output       = new ArraySegment <byte>(outputBuffer, 0, outputBuffer.Length);

            var decoder = (BaseNDecoder)encoding.GetDecoder();

            decoder.Convert(input.Array, input.Offset, input.Count, output.Array, output.Offset, output.Count, true, out var inputUsed, out var outputUsed, out var completed);

            Assert.Equal(input.Count, inputUsed);
            Assert.Equal(output.Count, outputUsed);
            Assert.Equal(encodedData, new string(outputBuffer.Select(b => (char)b).ToArray(), 0, output.Count));
            Assert.True(completed);
        }
Exemplo n.º 5
0
        public unsafe void EncodePtrToPtrTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData)
        {
            var decoder      = (BaseNDecoder)encoding.GetDecoder();
            var outputBuffer = new byte[encodedData.Length];
            var inputUsed    = 0;
            var outputUsed   = 0;

            fixed(byte *inputPtr = plainTextData)
            fixed(byte *outputPtr = outputBuffer)
            {
                decoder.Convert(inputPtr, plainTextData.Length, outputPtr, outputBuffer.Length, true, out inputUsed, out outputUsed, out var completed);
                Assert.True(completed);
            }

            Assert.Equal(plainTextData.Length, inputUsed);
            Assert.Equal(outputBuffer.Length, outputUsed);
            Assert.Equal(encodedData, new string(outputBuffer.Select(b => (char)b).ToArray(), 0, outputBuffer.Length));
        }
Exemplo n.º 6
0
        public void GetDecoderTest()
        {
            var baseNEncoding = new BaseNEncoding(BaseNAlphabet.Base64UrlAlphabet, "name");

            Assert.NotNull(baseNEncoding.GetDecoder());
        }