package org.apereo.cas.authentication;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.apache.commons.io.FileUtils;
import org.junit.Before;
import org.junit.Test;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import java.io.File;
import java.io.IOException;
import static org.junit.Assert.*;
/**
* Test for JSON Serialization
* @author David Rodriguez
* @since 5.0.0
*/
public class DefaultAuthenticationTests {
private static final File JSON_FILE = new File(FileUtils.getTempDirectoryPath(), "defaultAuthentication.json");
private ObjectMapper mapper;
@Before
public void setUp() throws Exception {
mapper = Jackson2ObjectMapperBuilder.json()
.featuresToDisable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.build();
mapper.findAndRegisterModules();
}
@Test
public void verifySerializeADefaultAuthenticationToJson() throws IOException {
final Authentication serviceWritten = CoreAuthenticationTestUtils.getAuthentication();
mapper.writeValue(JSON_FILE, serviceWritten);
final Authentication serviceRead = mapper.readValue(JSON_FILE, Authentication.class);
assertEquals(serviceWritten, serviceRead);
}
}