Base64Padding912Test.java
package com.fasterxml.jackson.core.base64;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.core.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
class Base64Padding912Test
extends JUnit5TestBase
{
private final JsonFactory JSON_F = newStreamFactory();
@Test
void paddingUsingInputStream() throws Exception
{
_testPadding(MODE_INPUT_STREAM);
_testPadding(MODE_INPUT_STREAM_THROTTLED);
}
@Test
void paddingUsingReader() throws Exception
{
_testPadding(MODE_READER);
}
@Test
void paddingUsingDataInput() throws Exception
{
_testPadding(MODE_DATA_INPUT);
}
private void _testPadding(int mode) throws Exception
{
Base64Variant b64v = Base64Variants.MIME_NO_LINEFEEDS
.withReadPadding(Base64Variant.PaddingReadBehaviour.PADDING_ALLOWED);
String json = "{\"diff\" : \"1sPEAASBOGM6XGFwYWNoZV9yb290X2Rldlx0bXBcX3N0YXBsZXJcNHEydHJhY3ZcYXZhc3RfZnJlZV9hbnRpdmlydXNfc2V0dXBfb25saW5lLmV4ZS8vYzpcYXBhY2hlX3Jvb3RfZGV2XHN0b3JhZ2VcY1w3XDFcYzcxZmViMTA2NDA5MTE4NzIwOGI4MGNkM2Q0NWE0YThcYXZhc3RfZnJlZV9hbnRpdmlydXNfc2V0dXBfb25saW5lLmV4ZS8FkK0pAKA2kLFgAJsXgyyBZfkKWXg6OZiYBgBYCQCASAAAgAMAAAC4AACABgEAgAoAAABYCACADgAAAJgIAIAQAAAA2AgAgBgAAAAYCWgAAIDJAAAAkHgJAwAqDwCoAAAAqBgDAIwOAAUAAQAAAPAAAIACAUABAIAEAQCABQEIAQAAOCcDAEAhADABAAB4SAMAKFgBAACgigMAqCUAAQAASLADAKgBAADwwAMAaAQAFQA\"}";
try (JsonParser p = createParser(JSON_F, mode, json)) {
assertToken(JsonToken.START_OBJECT, p.nextToken());
assertEquals("diff", p.nextFieldName());
assertToken(JsonToken.VALUE_STRING, p.nextToken());
byte[] b = p.getBinaryValue(b64v);
assertNotNull(b);
assertToken(JsonToken.END_OBJECT, p.nextToken());
}
}
}