@Test public void testGenerateDomainCustomConstraintDomain() { Domain dom = MVCoreFactoryImpl.eINSTANCE.createDomain(); dom.setName("Person"); Attribute attr = MVCoreFactoryImpl.eINSTANCE.createAttribute(); attr.setName("age"); attr.setType(getDataTypeFor("int")); dom.getAttributes().add(attr); Attribute attr2 = MVCoreFactoryImpl.eINSTANCE.createAttribute(); attr2.setName("shoesize"); attr2.setType(getDataTypeFor("int")); dom.getAttributes().add(attr2); Constraint constr = MVCoreFactoryImpl.eINSTANCE.createConstraint(); constr.setType(ConstraintType.CUSTOM_CONSTRAINT); constr.setValue("age(validator: {shoesize + age < 100})"); dom.getConstraints().add(constr); GrailsGenerator gen = new GrailsGenerator(); String s = gen.buildEDomainClass(dom, "test"); assertTrue(s.contains("age(validator: {shoesize + age < 100})")); }
@Test public void testGenerateLogableDomain() { Domain dom = MVCoreFactoryImpl.eINSTANCE.createDomain(); dom.setName("Person"); dom.setLoggable("true"); Attribute attr = MVCoreFactoryImpl.eINSTANCE.createAttribute(); attr.setName("name"); attr.setType(getDataTypeFor("EString")); dom.getAttributes().add(attr); GrailsGenerator gen = new GrailsGenerator(); String s = gen.buildEDomainClass(dom, "test"); assertTrue(s.contains("static loggable = true")); }
@Test public void testGenerateNotNullConstraintDomainAttribute() { Domain dom = MVCoreFactoryImpl.eINSTANCE.createDomain(); dom.setName("Person"); Attribute attr = MVCoreFactoryImpl.eINSTANCE.createAttribute(); attr.setName("age"); attr.setType(getDataTypeFor("int")); attr.setRequired(true); dom.getAttributes().add(attr); GrailsGenerator gen = new GrailsGenerator(); String s = gen.buildEDomainClass(dom, "test"); assertTrue(s.contains("age(nullable: false)")); }
@Test public void testGenerateSimpleDomain() { Domain dom = MVCoreFactoryImpl.eINSTANCE.createDomain(); dom.setName("Person"); Attribute attr = MVCoreFactoryImpl.eINSTANCE.createAttribute(); attr.setName("name"); attr.setType(getDataTypeFor("EString")); dom.getAttributes().add(attr); GrailsGenerator gen = new GrailsGenerator(); String s = gen.buildEDomainClass(dom, "test"); // System.out.println(s); assertTrue(s.contains("package test")); assertTrue(s.contains("class Person")); assertTrue(s.contains("String name")); }
@Test public void testGenerateSuperTypeDomain() { Domain dom = MVCoreFactoryImpl.eINSTANCE.createDomain(); dom.setName("Person"); Attribute attr = MVCoreFactoryImpl.eINSTANCE.createAttribute(); attr.setName("age"); attr.setType(getDataTypeFor("int")); dom.getAttributes().add(attr); Domain parent = MVCoreFactoryImpl.eINSTANCE.createDomain(); parent.setName("Entity"); dom.setSuper(parent); GrailsGenerator gen = new GrailsGenerator(); String s = gen.buildEDomainClass(dom, "test"); System.out.println(s); assertTrue(s.contains("class Person extends Entity")); }