public static List<DMNMessage> createExpectingDMNMessages(final String resourceName, final Class testClass) { final KieServices ks = KieServices.Factory.get(); final KieContainer kieContainer = getKieContainerIgnoringErrors(ks.newReleaseId("org.kie", "dmn-test-" + UUID.randomUUID(), "1.0"), ks.getResources().newClassPathResource(resourceName, testClass)); Results verify = kieContainer.verify(); List<Message> kie_messages = verify.getMessages(); LOG.debug("{}", kie_messages); List<DMNMessage> dmnMessages = kie_messages.stream() .filter(DMNMessage.class::isInstance) .map(DMNMessage.class::cast) .collect(Collectors.toList()); assertThat(dmnMessages.isEmpty(), is(false)); return dmnMessages; }
@Test public void testAPIUsage() { // DROOLS-3335 Broken DMN resource should inhibit KJAR and report KieBuilder message final KieServices ks = KieServices.Factory.get(); final KieContainer kieContainer = DMNRuntimeUtil.getKieContainerIgnoringErrors(ks.newReleaseId("org.kie", "dmn-test-" + UUID.randomUUID(), "1.0"), ks.getResources().newClassPathResource("incomplete_expression.dmn", this.getClass()), ks.getResources().newClassPathResource("duff.drl", this.getClass())); Results verify = kieContainer.verify(); List<Message> kie_messages = verify.getMessages(); kie_messages.forEach(m -> LOG.info("{}", m)); assertThat(kie_messages.size(), is(3)); assertThat(kie_messages.stream().filter(m -> m.getPath().equals("duff.drl")).count(), is(2L)); List<DMNMessage> dmnMessages = kie_messages.stream() .filter(DMNMessage.class::isInstance) .map(DMNMessage.class::cast) .collect(Collectors.toList()); assertThat(dmnMessages.size(), is(1)); DMNMessage dmnMessage = dmnMessages.get(0); assertThat(dmnMessage.getSourceId(), is("_c990c3b2-e322-4ef9-931d-79bcdac99686")); assertThat(dmnMessage.getMessageType(), is(DMNMessageType.ERR_COMPILING_FEEL)); assertThat(dmnMessage.getPath(), is("incomplete_expression.dmn")); }