package org.emfjson.jackson.tests.annotations; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EcorePackage; import org.eclipse.emf.ecore.resource.Resource; import org.emfjson.jackson.junit.annotations.AnnotationsFactory; import org.emfjson.jackson.junit.annotations.AnnotationsPackage; import org.emfjson.jackson.junit.annotations.TestB; import org.emfjson.jackson.module.EMFModule; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.IOException; import static org.assertj.core.api.Assertions.assertThat; public class JsonPropertyTest { private ObjectMapper mapper; @Before public void setUp() { EPackage.Registry.INSTANCE.put(EcorePackage.eNS_URI, EcorePackage.eINSTANCE); EPackage.Registry.INSTANCE.put(AnnotationsPackage.eNS_URI, AnnotationsPackage.eINSTANCE); mapper = new ObjectMapper(); mapper.registerModule(new EMFModule()); } @After public void tearDown() { EPackage.Registry.INSTANCE.clear(); Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().clear(); } @Test public void testSave_AttributeAnnotation_WithValue() { JsonNode expected = mapper.createObjectNode() .put("eClass", "http://www.emfjson.org/jackson/annotations#//TestB") .put("my_value", "Hello") .put("hello", "Hello"); TestB b1 = AnnotationsFactory.eINSTANCE.createTestB(); b1.setValue("Hello"); assertThat(mapper.valueToTree(b1)) .isEqualTo(expected); } @Test public void testLoad_AttributeAnnotation_WithValue() throws IOException { JsonNode data = mapper.createObjectNode() .put("eClass", "http://www.emfjson.org/jackson/annotations#//TestB") .put("my_value", "Hello") .put("hello", "Hello"); TestB b = mapper.readValue(data.toString(), TestB.class); assertThat(b).isNotNull(); assertThat(b.eResource()).isNull(); assertThat(b.getValue()).isEqualTo("Hello"); } @Test public void testMethodAnnotation() { TestB b1 = AnnotationsFactory.eINSTANCE.createTestB(); JsonNode expected = mapper.createObjectNode() .put("eClass", "http://www.emfjson.org/jackson/annotations#//TestB") .put("hello", "Hello"); assertThat(mapper.valueToTree(b1)) .isEqualTo(expected); } }