public void Base64UrlDecode_BadOffsets(string input, int offset, int count) { // Act & assert Assert.ThrowsAny <ArgumentException>(() => { var retVal = GameEncoders.Base64UrlDecode(input, offset, count); }); }
public void Base64UrlEncode_BadOffsets(int inputLength, int offset, int count) { // Arrange var input = new byte[inputLength]; // Act & assert Assert.ThrowsAny <ArgumentException>(() => { var retVal = GameEncoders.Base64UrlEncode(input, offset, count); }); }
public void DataOfVariousLengthRoundTripCorrectly() { for (var length = 0; length != 256; ++length) { var data = new byte[length]; for (var index = 0; index != length; ++index) { data[index] = (byte)(5 + length + (index * 23)); } var text = GameEncoders.Base64UrlEncode(data); var result = GameEncoders.Base64UrlDecode(text); for (var index = 0; index != length; ++index) { Assert.Equal(data[index], result[index]); } } }
/// <summary> /// Decodes supplied string by replacing the non-URL encodable characters with URL encodable characters and /// then decodes the Base64 string. /// </summary> /// <param name="text">The string to be decoded.</param> /// <returns>The decoded data.</returns> public static byte[] Decode(string text) => GameEncoders.Base64UrlDecode(text);
/// <summary> /// Encodes supplied data into Base64 and replaces any URL encodable characters into non-URL encodable /// characters. /// </summary> /// <param name="data">Data to be encoded.</param> /// <returns>Base64 encoded string modified with non-URL encodable characters</returns> public static string Encode(byte[] data) => GameEncoders.Base64UrlEncode(data);