Search in sources :

Example 6 with Field

use of org.drools.verifier.components.Field in project drools by kiegroup.

the class VerifierTest method testFactTypesFromJar.

@Test
public void testFactTypesFromJar() {
    VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
    // Check that the builder works.
    assertFalse(vBuilder.hasErrors());
    assertEquals(0, vBuilder.getErrors().size());
    Verifier verifier = vBuilder.newVerifier();
    try {
        JarInputStream jar = new JarInputStream(this.getClass().getResourceAsStream("model.jar"));
        verifier.addObjectModel(jar);
    } catch (IOException e) {
        fail(e.getMessage());
    }
    verifier.addResourcesToVerify(new ClassPathResource("imports.drl", Verifier.class), ResourceType.DRL);
    assertFalse(verifier.hasErrors());
    assertEquals(0, verifier.getErrors().size());
    boolean works = verifier.fireAnalysis();
    assertTrue(works);
    VerifierReport result = verifier.getResult();
    Collection<ObjectType> objectTypes = result.getVerifierData().getAll(VerifierComponentType.OBJECT_TYPE);
    assertNotNull(objectTypes);
    assertEquals(3, objectTypes.size());
    Collection<Field> fields = result.getVerifierData().getAll(VerifierComponentType.FIELD);
    assertNotNull(fields);
    assertEquals(10, fields.size());
}
Also used : ObjectType(org.drools.verifier.components.ObjectType) Field(org.drools.verifier.components.Field) JarInputStream(java.util.jar.JarInputStream) VerifierReport(org.drools.verifier.data.VerifierReport) VerifierBuilder(org.drools.verifier.builder.VerifierBuilder) IOException(java.io.IOException) ClassPathResource(org.drools.core.io.impl.ClassPathResource) Test(org.junit.Test)

Example 7 with Field

use of org.drools.verifier.components.Field in project drools by kiegroup.

the class VerifierTestStandalone method main.

public static final void main(String[] args) {
    try {
        Collection<String> fileNames = new ArrayList<String>();
        // Test data
        // fileNames.add("MissingRangesForDates.drl");
        // fileNames.add("MissingRangesForDoubles.drl");
        // fileNames.add("MissingRangesForInts.drl");
        // fileNames.add("MissingRangesForVariables.drl");
        // fileNames.add("Misc.drl");
        // fileNames.add("Misc2.drl");
        // fileNames.add("Misc3.drl");
        fileNames.add("Enums.drl");
        // fileNames.add("ConsequenceTest.drl");
        // fileNames.add("optimisation/OptimisationRestrictionOrderTest.drl");
        // fileNames.add("optimisation/OptimisationPatternOrderTest.drl");
        Verifier verifier = VerifierBuilderFactory.newVerifierBuilder().newVerifier();
        for (String s : fileNames) {
            verifier.addResourcesToVerify(ResourceFactory.newClassPathResource(s, Verifier.class), ResourceType.DRL);
        }
        verifier.fireAnalysis();
        // System.out.print(a.getResultAsPlainText());
        // System.out.print(a.getResultAsXML());
        // a.writeComponentsHTML("/stash/");
        // a.writeComponentsHTML("/Users/michaelneale/foo.html");
        // a.writeComponentsHTML("/home/trikkola/");
        // a.writeComponentsHTML("c:/");
        VerifierReport result = verifier.getResult();
        VerifierReportWriter reportwriter = VerifierReportWriterFactory.newHTMLReportWriter();
        FileOutputStream out = new FileOutputStream("/Users/rikkola/Desktop/testReport.zip");
        reportwriter.writeReport(out, result);
        Collection<VerifierMessageBase> msgs = result.getBySeverity(Severity.ERROR);
        for (Iterator iterator = msgs.iterator(); iterator.hasNext(); ) {
            VerifierMessageBase msg = (VerifierMessageBase) iterator.next();
            System.out.println("ERR: " + msg.getMessage());
        }
        msgs = result.getBySeverity(Severity.WARNING);
        for (Iterator iterator = msgs.iterator(); iterator.hasNext(); ) {
            VerifierMessageBase msg = (VerifierMessageBase) iterator.next();
            System.out.println("WARN (" + msg.getClass().getSimpleName() + "): " + msg.getMessage());
            System.out.println("\t FAULT: [" + msg.getClass().getSimpleName() + "] " + msg.getFaulty());
            if (msg instanceof VerifierMessage) {
                System.out.println("\t CAUSES (message):");
                VerifierMessage amsg = (VerifierMessage) msg;
                for (Iterator iterator2 = amsg.getCauses().iterator(); iterator2.hasNext(); ) {
                    Cause c = (Cause) iterator2.next();
                    System.out.println("\t\t [" + c.getClass().getSimpleName() + "]" + c);
                }
            } else if (msg instanceof VerifierRangeCheckMessage) {
                System.out.println("\t CAUSES (range):");
                VerifierRangeCheckMessage amsg = (VerifierRangeCheckMessage) msg;
                for (Iterator iterator2 = amsg.getCauses().iterator(); iterator2.hasNext(); ) {
                    Cause c = (Cause) iterator2.next();
                    System.out.println("\t\t" + c);
                }
            }
        }
        msgs = result.getBySeverity(Severity.NOTE);
        for (Iterator iterator = msgs.iterator(); iterator.hasNext(); ) {
            VerifierMessageBase msg = (VerifierMessageBase) iterator.next();
            System.out.println("NOTE: " + msg.getMessage());
            System.out.println("\t" + msg.getFaulty());
        }
        Collection<ObjectType> classes = result.getVerifierData().getAll(VerifierComponentType.OBJECT_TYPE);
        for (Iterator iterator = classes.iterator(); iterator.hasNext(); ) {
            ObjectType c = (ObjectType) iterator.next();
            Collection<VerifierRule> cr = result.getVerifierData().getRulesByObjectTypePath(c.getPath());
            System.err.println("Class rules:" + cr);
            Set<Field> flds = c.getFields();
            for (Iterator iterator2 = flds.iterator(); iterator2.hasNext(); ) {
                Field f = (Field) iterator2.next();
                cr = result.getVerifierData().getRulesByFieldPath(f.getPath());
                System.err.println("Field rules: " + cr);
            }
        }
    // System.err.println(a.getResultAsPlainText());
    // System.out.println(result.toString());
    } catch (Throwable t) {
        t.printStackTrace();
    }
}
Also used : VerifierMessage(org.drools.verifier.report.components.VerifierMessage) VerifierRangeCheckMessage(org.drools.verifier.report.components.VerifierRangeCheckMessage) ArrayList(java.util.ArrayList) VerifierMessageBase(org.drools.verifier.report.components.VerifierMessageBase) VerifierRule(org.drools.verifier.components.VerifierRule) ObjectType(org.drools.verifier.components.ObjectType) Field(org.drools.verifier.components.Field) VerifierReport(org.drools.verifier.data.VerifierReport) FileOutputStream(java.io.FileOutputStream) Cause(org.drools.verifier.report.components.Cause) VerifierReportWriter(org.drools.verifier.report.VerifierReportWriter) Iterator(java.util.Iterator)

Example 8 with Field

use of org.drools.verifier.components.Field in project drools by kiegroup.

the class VerifierDataMapsTest method testSaveVerifierComponentAndGetForAllFields.

@Test
public void testSaveVerifierComponentAndGetForAllFields() {
    saveVerifierComponentAndGet(new EnumField(new PackageDescr("testPackage1")));
    saveVerifierComponentAndGet(new Field(new PackageDescr("testPackage1")));
}
Also used : EnumField(org.drools.verifier.components.EnumField) EnumField(org.drools.verifier.components.EnumField) Field(org.drools.verifier.components.Field) PackageDescr(org.drools.compiler.lang.descr.PackageDescr) Test(org.junit.Test)

Example 9 with Field

use of org.drools.verifier.components.Field in project drools by kiegroup.

the class VerifierDataMapsTest method saveVerifierComponentAndGet.

private void saveVerifierComponentAndGet(Restriction component) {
    VerifierData data = VerifierReportFactory.newVerifierData();
    ObjectType objectType = new ObjectType(new PackageDescr("testPackage1"));
    Field field = new Field(new PackageDescr("testPackage1"));
    field.setObjectTypePath(objectType.getPath());
    component.setFieldPath(field.getPath());
    assertNotNull(component.getFieldPath());
    data.add(objectType);
    data.add(field);
    data.add(component);
    Collection<VerifierComponent> all = data.getAll();
    assertEquals(3, all.size());
    assertTrue(all.contains(objectType));
    assertTrue(all.contains(field));
    assertTrue(all.contains(component));
    Collection<VerifierComponent> components = data.getAll(component.getVerifierComponentType());
    assertEquals(1, components.size());
    assertEquals(component, components.toArray()[0]);
    VerifierComponent component2 = data.getVerifierObject(component.getVerifierComponentType(), component.getPath());
    assertNotNull(component2);
    assertEquals(component, component2);
    Collection<VerifierComponent> fields = data.getAll(field.getVerifierComponentType());
    assertEquals(1, fields.size());
    assertEquals(field, fields.toArray()[0]);
    VerifierComponent field2 = data.getVerifierObject(field.getVerifierComponentType(), field.getPath());
    assertNotNull(field2);
    assertEquals(field, field2);
    Collection<VerifierComponent> objectTypes = data.getAll(objectType.getVerifierComponentType());
    assertEquals(1, objectTypes.size());
    assertEquals(objectType, objectTypes.toArray()[0]);
    VerifierComponent objectType2 = data.getVerifierObject(objectType.getVerifierComponentType(), objectType.getPath());
    assertNotNull(objectType2);
    assertEquals(objectType, objectType2);
}
Also used : ObjectType(org.drools.verifier.components.ObjectType) EnumField(org.drools.verifier.components.EnumField) Field(org.drools.verifier.components.Field) PackageDescr(org.drools.compiler.lang.descr.PackageDescr)

Example 10 with Field

use of org.drools.verifier.components.Field in project drools by kiegroup.

the class DataRow method visitRangeCheckMessage.

public static String visitRangeCheckMessage(String sourceFolder, VerifierRangeCheckMessage message, VerifierData data) {
    Field field = (Field) message.getFaulty();
    Collection<Restriction> restrictions = data.getRestrictionsByFieldPath(field.getPath());
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("header", processHeader(sourceFolder));
    map.put("sourceFolder", sourceFolder);
    map.put("fieldFolder", sourceFolder + "/" + UrlFactory.FIELD_FOLDER);
    map.put("objectTypeFolder", sourceFolder + "/" + UrlFactory.OBJECT_TYPE_FOLDER);
    map.put("packageFolder", sourceFolder + "/" + UrlFactory.PACKAGE_FOLDER);
    map.put("cssStyle", createStyleTag(sourceFolder + "/" + UrlFactory.CSS_FOLDER + "/" + UrlFactory.CSS_BASIC));
    map.put("field", field);
    map.put("objectType", data.getVerifierObject(VerifierComponentType.OBJECT_TYPE, field.getObjectTypePath()));
    map.put("ranges", visitRanges(UrlFactory.THIS_FOLDER, restrictions, message.getMissingRanges()));
    String myTemplate = readFile("missingRange.htm");
    String result = String.valueOf(TemplateRuntime.eval(myTemplate, map));
    return result;
}
Also used : Field(org.drools.verifier.components.Field) Restriction(org.drools.verifier.components.Restriction) NumberRestriction(org.drools.verifier.components.NumberRestriction) HashMap(java.util.HashMap)

Aggregations

Field (org.drools.verifier.components.Field)14 ObjectType (org.drools.verifier.components.ObjectType)7 VerifierReport (org.drools.verifier.data.VerifierReport)3 Test (org.junit.Test)3 IOException (java.io.IOException)2 JarInputStream (java.util.jar.JarInputStream)2 PackageDescr (org.drools.compiler.lang.descr.PackageDescr)2 ClassPathResource (org.drools.core.io.impl.ClassPathResource)2 VerifierBuilder (org.drools.verifier.builder.VerifierBuilder)2 EnumField (org.drools.verifier.components.EnumField)2 FieldVariable (org.drools.verifier.components.FieldVariable)2 Import (org.drools.verifier.components.Import)2 VerifierRule (org.drools.verifier.components.VerifierRule)2 FileOutputStream (java.io.FileOutputStream)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Iterator (java.util.Iterator)1 ZipOutputStream (java.util.zip.ZipOutputStream)1 AnnotationDescr (org.drools.compiler.lang.descr.AnnotationDescr)1