JacksonTypesSerTest.java
package com.fasterxml.jackson.databind.ser;
import java.io.*;
import java.util.*;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.core.io.ContentReference;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.testutil.DatabindTestUtil;
import com.fasterxml.jackson.databind.util.TokenBuffer;
import static org.junit.jupiter.api.Assertions.*;
/**
* Unit tests for those Jackson types we want to ensure can be serialized.
*/
public class JacksonTypesSerTest
extends DatabindTestUtil
{
@Test
public void testLocation() throws IOException
{
File f = new File("/tmp/test.json");
JsonLocation loc = new JsonLocation(ContentReference.rawReference(f),
-1, 100, 13);
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> result = writeAndMap(mapper, loc);
assertEquals(5, result.size());
assertEquals(f.getAbsolutePath(), result.get("sourceRef"));
assertEquals(Integer.valueOf(-1), result.get("charOffset"));
assertEquals(Integer.valueOf(-1), result.get("byteOffset"));
assertEquals(Integer.valueOf(100), result.get("lineNr"));
assertEquals(Integer.valueOf(13), result.get("columnNr"));
}
/**
* Verify that {@link TokenBuffer} can be properly serialized
* automatically, using the "standard" JSON sample document
*/
@Test
public void testTokenBuffer() throws Exception
{
// First, copy events from known good source (StringReader)
JsonParser p = createParserUsingReader(SAMPLE_DOC_JSON_SPEC);
TokenBuffer tb = new TokenBuffer(null, false);
while (p.nextToken() != null) {
tb.copyCurrentEvent(p);
}
p.close();
// Then serialize as String
String str = serializeAsString(tb);
tb.close();
// and verify it looks ok
verifyJsonSpecSampleDoc(createParserUsingReader(str), true);
}
}