/** * Test of the registration and use of the {@link TestingTokenListener}. * * @throws IllegalStarteventException test fails * @throws ExtensionNotAvailableException test fails * @throws DefinitionNotFoundException test fails * @throws DefinitionNotActivatedException test fails */ @Test public void testTokenListenerIntegrationInNavigatorForBpmnToken() throws IllegalStarteventException, ExtensionNotAvailableException, DefinitionNotFoundException, DefinitionNotActivatedException { // // get ExtensionService // TestingListenerExtensionService listenerService = this.extensionService.getServiceExtension( TestingListenerExtensionService.class, TestingListenerExtensionService.DEMO_EXTENSION_SERVICE_NAME); Assert.assertNotNull(listenerService); // // create a demo process // BpmnProcessDefinitionBuilder builder = BpmnProcessDefinitionBuilder.newBuilder(); Node startNode = BpmnNodeFactory.createBpmnStartEventNode(builder); int[] ints = {1, 1}; Node forkNode1 = BpmnCustomNodeFactory.createBpmnAddNumbersAndStoreNode(builder, "result", ints); int[] anotherInts = {2, 2}; Node forkNode2 = BpmnCustomNodeFactory.createBpmnAddNumbersAndStoreNode(builder, "result2", anotherInts); Node endNode1 = BpmnNodeFactory.createBpmnEndEventNode(builder); Node endNode2 = BpmnNodeFactory.createBpmnEndEventNode(builder); ControlFlowFactory.createControlFlowFromTo(builder, startNode, forkNode1); ControlFlowFactory.createControlFlowFromTo(builder, startNode, forkNode2); ControlFlowFactory.createControlFlowFromTo(builder, forkNode1, endNode1); ControlFlowFactory.createControlFlowFromTo(builder, forkNode2, endNode2); BpmnProcessDefinitionModifier.decorateWithDefaultBpmnInstantiationPattern(builder); ProcessDefinition definition = builder.buildDefinition(); RepositoryService repository = this.jodaEngineServices.getRepositoryService(); Navigator navigator = this.jodaEngineServices.getNavigatorService(); // // deploy the instance // repository.addProcessDefinition(definition); repository.activateProcessDefinition(definition.getID()); // // start it // navigator.startProcessInstance(definition.getID()); // // tests the registering of the listener (proper invocation is tested elsewhere) // Assert.assertTrue(listenerService.hasBeenRegistered(TestingTokenListener.class)); }
/** * Test of the registration and use of the {@link TestingBpmnXmlParseListener}. * * @throws ExtensionNotAvailableException test fails */ @Test public void testDeploymentListenerRegistrationInRepository() throws ExtensionNotAvailableException { TestingListenerExtensionService listenerService = this.extensionService.getServiceExtension( TestingListenerExtensionService.class, TestingListenerExtensionService.DEMO_EXTENSION_SERVICE_NAME); Assert.assertNotNull(listenerService); Assert.assertTrue(listenerService.hasBeenRegistered(TestingRepositoryDeploymentListener.class)); RepositoryService repository = this.jodaEngineServices.getRepositoryService(); repository.deployInNewScope(repository.getDeploymentBuilder().buildDeployment()); Assert.assertTrue(listenerService.hasBeenInvoked(TestingRepositoryDeploymentListener.class)); }
/** * Test the proper registration of {@link AbstractDarHandler} within our {@link DarImporter}. * * @throws IllegalAccessException test fails * @throws ExtensionNotAvailableException test fails */ @Test public void testRegisteringOfDarHandler() throws IllegalAccessException, ExtensionNotAvailableException { TestingListenerExtensionService listenerService = this.extensionService.getServiceExtension( TestingListenerExtensionService.class, TestingListenerExtensionService.DEMO_EXTENSION_SERVICE_NAME); Assert.assertNotNull(listenerService); DarImporter importer = this.jodaEngineServices.getRepositoryService().getNewDarImporter(); File darFile = new File(DAR_RESOURCE_PATH + "deployment/testDefinitionOnly.dar"); // // we need to process the dar for the handler to be invoked // importer.importDarFile(darFile); Assert.assertTrue(listenerService.hasBeenRegistered(TestingDarHandler.class)); Assert.assertTrue(listenerService.hasBeenInvoked(TestingDarHandler.class)); }