@Test public void testWriteIndented() throws Exception { assertEquals("{\n" + " \"a\":\"a_value\",\n" + " \"b\":2,\n" + " \"c\":[1,2,3],\n" + " \"d\":{\n" + " \"e\":true\n" + " }\n" + "}", JSON.toString(new JSON().set("a", "a_value").set("b", 2).list("c", 1, 2, 3).set("d", new JSON().set("e", true)), new StringBuilder(), 2).toString()); } }
@Test public void testWriteIndented() throws Exception { assertEquals("{\n" + " \"a\":\"a_value\",\n" + " \"b\":2,\n" + " \"c\":[1,2,3],\n" + " \"d\":{\n" + " \"e\":true\n" + " }\n" + "}", JSON.toString(new JSON().set("a", "a_value").set("b", 2).list("c", 1, 2, 3).set("d", new JSON().set("e", true)), new StringBuilder(), 2).toString()); } }
@Test public void testBuild() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates", json(). set("path", "foo.gtmpl"). list("refs") ) ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testBuild() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates", json(). set("path", "foo.gtmpl"). list("refs") ) ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testChangeValue() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File a = helper.getSourcePath().getPath("metamodel", "path", "A.java"); Tools.write(Tools.read(a).replace("foo.gtmpl", "bar.gtmpl"), a); File foo = helper.getSourcePath().getPath("metamodel", "path", "templates", "foo.gtmpl"); File bar = new File(foo.getParentFile(), "bar.gtmpl"); assertTrue(foo.renameTo(bar)); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json().list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates", json(). set("path", "bar.gtmpl"). list("refs") ) ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testAdd() throws Exception { CompilerAssert<File, File> helper = compiler("metamodel.application"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.AFTER_ADD, events.get(0).getType()); assertTrue(events.get(0).getObject() instanceof ApplicationMetaModel); // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.application]"). list("templates") ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testChangeValue() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File a = helper.getSourcePath().getPath("metamodel", "path", "A.java"); Tools.write(Tools.read(a).replace("foo.gtmpl", "bar.gtmpl"), a); File foo = helper.getSourcePath().getPath("metamodel", "path", "templates", "foo.gtmpl"); File bar = new File(foo.getParentFile(), "bar.gtmpl"); assertTrue(foo.renameTo(bar)); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json().list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates", json(). set("path", "bar.gtmpl"). list("refs") ) ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testAdd() throws Exception { CompilerAssert<File, File> helper = compiler("metamodel.application"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.AFTER_ADD, events.get(0).getType()); assertTrue(events.get(0).getObject() instanceof ApplicationMetaModel); // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.application]"). list("templates") ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testRemoveAnnotation() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File a = helper.getSourcePath().getPath("metamodel", "path", "A.java"); Tools.write(Tools.read(a).replace("@Path(\"foo.gtmpl\")", ""), a); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates") ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testRemoveAnnotation() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File a = helper.getSourcePath().getPath("metamodel", "path", "A.java"); Tools.write(Tools.read(a).replace("@Path(\"foo.gtmpl\")", ""), a); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates") ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testRemoveApplication() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.controller"); helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser); ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel; mm.getQueue().clear(); Tools.serialize(unserialize, ser); // assertDelete(helper.getSourcePath().getPath("metamodel", "controller", "package-info.java")); // helper.assertCompile(); mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json(). set("applications", json(). list("values") ); assertEquals(expected, mm.toJSON()); // List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(3, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertInstanceOf(HandlerMetaModel.class, events.get(0).getObject()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(1).getType()); assertInstanceOf(ControllerMetaModel.class, events.get(1).getObject()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(2).getType()); assertInstanceOf(ApplicationMetaModel.class, events.get(2).getObject()); }
@Test public void testRemoveApplication() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.controller"); helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser); ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel; mm.getQueue().clear(); Tools.serialize(unserialize, ser); // assertDelete(helper.getSourcePath().getPath("metamodel", "controller", "package-info.java")); // helper.assertCompile(); mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json(). set("applications", json(). list("values") ); assertEquals(expected, mm.toJSON()); // List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(3, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertInstanceOf(HandlerMetaModel.class, events.get(0).getObject()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(1).getType()); assertInstanceOf(ControllerMetaModel.class, events.get(1).getObject()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(2).getType()); assertInstanceOf(ApplicationMetaModel.class, events.get(2).getObject()); }
@Test public void testRemove() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.application"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser); ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel; mm.getQueue().clear(); Tools.serialize(unserialize, ser); // assertTrue(helper.getSourcePath().getPath("metamodel", "application", "package-info.java").delete()); // helper.assertCompile(); ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertTrue(events.get(0).getObject() instanceof ApplicationMetaModel); // JSON expected = json(). set("applications", json(). list("values") ); assertEquals(expected, mm.toJSON()); }
@Test public void testRemove() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.application"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser); ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel; mm.getQueue().clear(); Tools.serialize(unserialize, ser); // assertTrue(helper.getSourcePath().getPath("metamodel", "application", "package-info.java").delete()); // helper.assertCompile(); ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertTrue(events.get(0).getObject() instanceof ApplicationMetaModel); // JSON expected = json(). set("applications", json(). list("values") ); assertEquals(expected, mm.toJSON()); }
@Test public void testPathRemoveApplication() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // assertDelete(helper.getSourcePath().getPath("metamodel", "path", "package-info.java")); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json(). set("applications", json().list("values") ); // assertEquals(expected, mm.toJSON()); }
@Test public void testPathRemoveApplication() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // assertDelete(helper.getSourcePath().getPath("metamodel", "path", "package-info.java")); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json(). set("applications", json().list("values") ); // assertEquals(expected, mm.toJSON()); }