package org.gcube.application.cms.commons.model.concessioni; import java.io.File; import java.io.IOException; import org.gcube.application.cms.tests.model.concessioni.TestConcessioniModel; import org.gcube.application.geoportal.common.model.legacy.AccessPolicy; import org.gcube.application.geoportal.common.model.legacy.Concessione; import org.gcube.application.geoportal.common.model.profile.Profile; import org.junit.Assert; import org.junit.Test; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import static org.junit.Assert.assertEquals; public class SerializationTest { private static ObjectMapper mapper = new ObjectMapper(); static { mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false); mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS,false); mapper.configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false); mapper.setSerializationInclusion(Include.NON_NULL); // mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); mapper.registerModule(new JavaTimeModule()); } @Test public void readProfile() throws JsonProcessingException, IOException { Profile concessione=mapper.readerFor(Profile.class).readValue(new File(TestConcessioniModel.getBaseFolder(),"ProfileConcessioni.json")); System.out.println("Profile is "+mapper.writeValueAsString(concessione)); //Assert.assertTrue(concessione .getFields().size()>0); } @Test public void readConcessione() throws JsonProcessingException, IOException { Concessione concessione=mapper.readerFor(Concessione.class).readValue(new File(TestConcessioniModel.getBaseFolder(),"Concessione.json")); System.out.println("Concessione is "+concessione.toString()); concessione.getRelazioneScavo().setPolicy(AccessPolicy.EMBARGOED); assertEquals(AccessPolicy.EMBARGOED,concessione.getRelazioneScavo().getPolicy()); concessione=mapper.readerFor(Concessione.class).readValue(mapper.writeValueAsString(concessione)); assertEquals(AccessPolicy.EMBARGOED,concessione.getRelazioneScavo().getPolicy()); } @Test public void generic() throws JsonProcessingException, IOException { Concessione conc= TestConcessioniModel.prepareConcessione(); conc.validate(); full(conc); } public void full(Object obj) throws JsonProcessingException, IOException { String asString=mapper.writeValueAsString(obj); Object other=mapper.readerFor(obj.getClass()).readValue(asString); } }