/** * */ package xapi.test.model; import org.junit.Assert; import org.junit.Test; import xapi.annotation.model.GetterFor; import xapi.model.api.ModelManifest; import xapi.model.api.ModelManifest.MethodData; import xapi.model.content.ModelContent; import xapi.model.impl.ModelUtil; /** * @author James X. Nelson (james@wetheinter.net, @james) * */ public class ModelManifestSerializationTest { @Test public void testSerializationRoundTrip() { final ModelManifest manifest = ModelUtil.createManifest(ModelContent.class); final String asString = ModelManifest.serialize(manifest); final ModelManifest asManifest = ModelManifest.deserialize(asString); System.out.println(asString); Assert.assertEquals(manifest, asManifest); } @Test public void testEquality() throws Throwable{ final ModelManifest manifest1 = ModelUtil.createManifest(ModelContent.class); final ModelManifest manifest2 = ModelUtil.createManifest(ModelContent.class); Assert.assertEquals(manifest1, manifest2); } @Test public void testModelFieldEquality() throws Throwable{ final MethodData method1 = new MethodData("getName"); final MethodData method2 = new MethodData("getName"); Assert.assertEquals(method1, method2); } // @Test public void testModelFieldInequality() throws Throwable{ // import xapi.annotation.model.GetterForBuilder; // import xapi.annotation.model.SetterForBuilder; // final GetterFor getter = GetterForBuilder.buildGetterFor().setValue("name").build(); // final SetterFor setter = SetterForBuilder.buildSetterFor().setValue("name").build(); // final MethodData method1 = new MethodData("name", "id", getter, null, null); // final MethodData method2 = new MethodData("name", "id", null, setter, null); // Assert.assertNotEquals(method1, method2); // Assert.assertEquals(method1.getName(), method2.getName()); } @Test @GetterFor("fake") public void testInequality() throws Throwable{ final ModelManifest manifest1 = ModelUtil.createManifest(ModelContent.class); final ModelManifest manifest2 = ModelUtil.createManifest(ModelContent.class); final GetterFor getter = getClass().getMethod("testInequality").getAnnotation(GetterFor.class); Assert.assertNotNull(getter); manifest2.addProperty("getFake", "id", getter, null, null); Assert.assertNotEquals(manifest1, manifest2); } }