package com.kryptnostic.utils;
import java.io.IOException;
import org.junit.Assert;
import org.junit.Test;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.kryptnostic.kodex.v1.serialization.jackson.KodexObjectMapperFactory;
public abstract class BaseJacksonSerializationTest<T> {
private static final ObjectMapper mapper = KodexObjectMapperFactory.getObjectMapper();
private static final ObjectMapper smile = KodexObjectMapperFactory.getSmileMapper();
@Test
public void testSerdes() throws IOException {
T data = getSampleData();
String s = mapper.writeValueAsString( data );
byte[] b = mapper.writeValueAsBytes( data );
Assert.assertEquals( data, mapper.readValue( s, getClazz() ) );
Assert.assertEquals( data, mapper.readValue( b, getClazz() ) );
b = smile.writeValueAsBytes( data );
Assert.assertEquals( data, smile.readValue( b, getClazz() ) );
}
protected abstract T getSampleData();
protected abstract Class<T> getClazz();
}