@Test public void testFromEmptyDrl() throws Exception { String drl = ""; FactModelContentHandler ch = new FactModelContentHandler(); List<FactMetaModel> list = ch.toModel(drl); assertNotNull(list); }
@Test public void testFromDrlDeclarationEmpty() throws Exception { String drl = "declare FooBar\nend"; FactModelContentHandler ch = new FactModelContentHandler(); List<FactMetaModel> list = ch.toModel(drl); assertEquals(1, list.size()); FactMetaModel mm = list.get(0); assertEquals("FooBar", mm.getName()); assertEquals(0, mm.getFields().size()); }
@Test public void testAdvanced() throws Exception { String drl = "#advanced editor \ndeclare FooBar\n\t name: String \nend"; try { FactModelContentHandler ch = new FactModelContentHandler(); ch.toModel(drl); fail("should not parse this"); } catch (DroolsParserException e) { assertNotNull(e.getMessage()); } }
@Test public void testFromDrlDeclarationWithAnnotations() throws Exception { String drl = "declare FooBar\n\t@role(event)\nend"; FactModelContentHandler ch = new FactModelContentHandler(); List<FactMetaModel> list = ch.toModel(drl); assertEquals(1, list.size()); FactMetaModel mm = list.get(0); assertEquals("FooBar", mm.getName()); assertEquals(0, mm.getFields().size()); assertEquals(1, mm.getAnnotations().size()); assertEquals("event", mm.getAnnotations().get(0).values.get("value")); }
@Test public void testFromDrlDeclarationWithFields() throws Exception { String drl = "declare FooBar\n\tf1: int\n\tf2: String\nend"; FactModelContentHandler ch = new FactModelContentHandler(); List<FactMetaModel> list = ch.toModel(drl); assertEquals(1, list.size()); FactMetaModel mm = list.get(0); assertEquals("FooBar", mm.getName()); assertEquals(2, mm.getFields().size()); for (int i = 0; i < mm.getFields().size(); i++) { FieldMetaModel fm = (FieldMetaModel) mm.getFields().get(1); if (fm.name.equals("f1")) { assertEquals("f1", fm.name); assertEquals("int", fm.type); } else { assertEquals("f2", fm.name); assertEquals("String", fm.type); } } }