public void BufferToBase64ConvertTest(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 byte[inputOffset + expectedBuffer.Length + inputOffset]; Buffer.BlockCopy(expectedBuffer, 0, inputBuffer, inputOffset, expectedBuffer.Length); // buffer -> base64 string var base64String = Base64Convert.ToString(inputBuffer, inputOffset, expectedBuffer.Length); Assert.Equal(expectedBase64String, base64String); // buffer -> base64 buffer var base64Chars = Base64Convert.ToCharArray(inputBuffer, inputOffset, expectedBuffer.Length); Assert.Equal(expectedBase64Chars, base64Chars); // buffer -> base64 buffer (copy) base64Chars = new char[expectedBase64Chars.Length]; Base64Convert.Encode(new ArraySegment <byte>(inputBuffer, inputOffset, expectedBuffer.Length), new ArraySegment <char>(base64Chars)); Assert.Equal(expectedBase64Chars, base64Chars); }
public void Base64BytesEncodeTest(int count) { var inputBytes = new byte[count]; var r = new Random(count); r.NextBytes(inputBytes); var expectedBase64String = Convert.ToBase64String(inputBytes); var expectedBase64Buffer = expectedBase64String.ToCharArray().Select(v => (byte)v).ToArray(); // transform block var inputOffset = r.Next(0, 100); var inputBuffer = new byte[inputOffset + inputBytes.Length + inputOffset]; Buffer.BlockCopy(inputBytes, 0, inputBuffer, inputOffset, inputBytes.Length); var outputOffset = r.Next(0, 100); var outputBuffer = new byte[outputOffset + expectedBase64Buffer.Length]; var written = Base64Convert.Encode(new ArraySegment <byte>(inputBuffer, inputOffset, inputBytes.Length), new ArraySegment <byte>(outputBuffer, outputOffset, outputBuffer.Length - outputOffset), out var inputUsed, out var outputUsed); var actualOutput = outputBuffer.Skip(outputOffset).ToArray(); Assert.Equal(expectedBase64Buffer.Length, Base64Convert.GetBase64OutputLength(inputBytes.Length, true)); Assert.Equal(expectedBase64Buffer.Length, written); Assert.Equal(expectedBase64Buffer.Length, outputUsed); Assert.Equal(inputBytes.Length, inputUsed); Assert.Equal(expectedBase64Buffer, actualOutput); }
public void Encode_GivenUrlSafeFlag_ReturnsUrlSafeBase64() { var bytes = new byte[] { 161, 203, 187, 6, 69, 54, 110, 237, 102, 171, 236, 129, 217, 210, 255, 224 }; var encoded = Base64Convert.Encode(bytes, true); var encString = Encoding.UTF8.GetString(encoded); encString.Should().Be("ocu7BkU2bu1mq-yB2dL_4A"); }
public void Encode_GivenPlainTextAndUrlSafeFlag_ReturnsUrlSafeBase64String(string value, string expected) { Base64Convert.Encode(value, true).Should().Be(expected); }
public void Encode_GivenPlainTextValue_ReturnsEncodedBase64String(string value, string expected) { Base64Convert.Encode(value).Should().Be(expected); }