public void Base64BytesDecodeTest(int count) { var outputBytes = new byte[count]; var r = new Random(count); r.NextBytes(outputBytes); var base64String = Convert.ToBase64String(outputBytes); var base64Buffer = base64String.ToCharArray().Select(v => (byte)v).ToArray(); // transform block var inputOffset = r.Next(0, 100); var inputBuffer = new byte[inputOffset + base64Buffer.Length + inputOffset]; Buffer.BlockCopy(base64Buffer, 0, inputBuffer, inputOffset, base64Buffer.Length); var outputOffset = r.Next(0, 100); var outputBuffer = new byte[outputOffset + outputBytes.Length]; var written = Base64Convert.Decode(new ArraySegment <byte>(inputBuffer, inputOffset, base64Buffer.Length), new ArraySegment <byte>(outputBuffer, outputOffset, outputBuffer.Length - outputOffset), out var inputUsed, out var outputUsed); var actualOutput = outputBuffer.Skip(outputOffset).ToArray(); Assert.Equal(outputBytes.Length, Base64Convert.GetBytesCount(inputBuffer, inputOffset, base64Buffer.Length)); Assert.Equal(outputBytes.Length, written); Assert.Equal(outputBytes.Length, outputUsed); Assert.Equal(base64Buffer.Length, inputUsed); Assert.Equal(outputBytes, actualOutput); }
public void Base64ToBufferConvertTest(int count) { var expectedBuffer = new byte[count]; var r = new Random(count); r.NextBytes(expectedBuffer); var expectedBase64String = Convert.ToBase64String(expectedBuffer); var expectedBase64Chars = expectedBase64String.ToCharArray(); var inputOffset = r.Next(0, 100); var inputBuffer = new char[inputOffset + expectedBase64Chars.Length + inputOffset]; expectedBase64Chars.CopyTo(inputBuffer, inputOffset); var inputString = new string('a', inputOffset) + expectedBase64String + new string('a', inputOffset); // base64 string -> buffer var outputBuffer = Base64Convert.ToBytes(inputString, inputOffset, expectedBase64String.Length); Assert.Equal(expectedBuffer, outputBuffer); // base64 buffer -> buffer outputBuffer = Base64Convert.ToBytes(inputBuffer, inputOffset, expectedBase64Chars.Length); Assert.Equal(expectedBuffer, outputBuffer); // base64 buffer -> buffer (copy) outputBuffer = new byte[expectedBuffer.Length]; Base64Convert.Decode(new ArraySegment <char>(inputBuffer, inputOffset, expectedBase64Chars.Length), new ArraySegment <byte>(outputBuffer)); Assert.Equal(expectedBuffer, outputBuffer); // base64 buffer -> buffer (copy) outputBuffer = new byte[expectedBuffer.Length]; Base64Convert.Decode(inputString, inputOffset, expectedBase64Chars.Length, new ArraySegment <byte>(outputBuffer)); Assert.Equal(expectedBuffer, outputBuffer); }
public void Decode_GivenUrlSafeFlag_ReturnsPlainText() { var encoded = Encoding.UTF8.GetBytes("ocu7BkU2bu1mq-yB2dL_4A"); var bytes = Base64Convert.Decode(encoded); bytes.Should().BeEquivalentTo(new byte[] { 161, 203, 187, 6, 69, 54, 110, 237, 102, 171, 236, 129, 217, 210, 255, 224 }); }
public void DecodeString_GivenEncodedStringAndUrlSafeFlag_ReturnsPlainText(string base64, string expected) { Base64Convert.Decode(base64).Should().Be(expected); }
public string DecodeUsingBase64Convert() { return(Base64Convert.Decode(_data)); }