@Before public void setUp() { // The two lines below is Mockito's issue work-around: // Can not use @_InjectMocks together with a @Spy annotation => https://github.com/mockito/mockito/issues/169 deploymentIdsPreprocessor.deploymentRolesManager = deploymentRolesManager; deploymentIdsPreprocessor.identityProvider = identityProvider; dataSetsBootstrap.registerDataSetDefinitions(); when(deploymentRolesManager.getDeploymentsForUser(identityProvider)).thenReturn(deploymentIds); }
public void registerDataSetDefinitions(@Observes QueryDefinitionLoaded event) { if (event.getDefinition().getName().equals(DATASET_PROCESS_INSTANCES)) { registerDataSetDefinition(event.getDefinition(), builder -> builder.number(COLUMN_PROCESS_INSTANCE_ID) ); } else if (event.getDefinition().getName().equals(DATASET_HUMAN_TASKS)) { registerDataSetDefinition(event.getDefinition(), builder -> builder.label(COLUMN_PROCESS_NAME)
public void registerDataSetDefinitions(@Observes QueryDefinitionLoaded event) { if (event.getDefinition().getName().equals(DATASET_PROCESS_INSTANCES)) { registerDataSetDefinition(event.getDefinition(), builder -> builder.number(COLUMN_PROCESS_INSTANCE_ID) ); } else if (event.getDefinition().getName().equals(DATASET_HUMAN_TASKS)) { registerDataSetDefinition(event.getDefinition(), builder -> builder.label(COLUMN_PROCESS_NAME)
@Test public void testDataSetSQL() { dataSetDefs.registerDataSetDefinitions(); final ArgumentCaptor<SQLDataSetDef> dataSetDef = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(defRegistry, times(2)).registerDataSetDef(dataSetDef.capture()); for (SQLDataSetDef dataSet : dataSetDef.getAllValues()) { if (dataSet.getDbSQL() == null) { continue; } try { LOGGER.info("Testing SQL DataSet: {}", dataSet.getName()); LOGGER.info("SQL: {}", dataSet.getDbSQL()); PreparedStatement ps = conn.prepareStatement(dataSet.getDbSQL()); ResultSet rs = ps.executeQuery(); ResultSetMetaData resultSetMetaData = rs.getMetaData(); for (int i=0; i < dataSet.getColumns().size(); i++) { assertEquals("select column name don't match", dataSet.getColumns().get(i).getId(), resultSetMetaData.getColumnLabel(i+1)); } ps.close(); final String countSQL = "SELECT COUNT(*) FROM (SELECT * FROM (" + dataSet.getDbSQL() + ") )"; conn.prepareStatement(countSQL).executeQuery(); } catch (Exception ex) { LOGGER.error("Failed to execute query for DataSet {} on DB {}", dataSet.getName(), database.name(), ex); fail(ex.getMessage()); } } }
@Test public void testProcessInstancesDataSet() { QueryDefinition qd = QueryDefinition.builder().name(DATASET_PROCESS_INSTANCES).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(DATASET_PROCESS_INSTANCES, dataSetDef.getUUID()); assertEquals("target-" + DATASET_PROCESS_INSTANCES, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(10, dataSetDef.getColumns().size()); }
@Test public void testHumanTasksDataSet() { QueryDefinition qd = QueryDefinition.builder().name(DATASET_HUMAN_TASKS).expression("SELECT *").source("source").target("target").build(); dataSetsBootstrap.registerDataSetDefinitions(new QueryDefinitionLoaded(qd)); ArgumentCaptor<SQLDataSetDef> argument = ArgumentCaptor.forClass(SQLDataSetDef.class); verify(dataSetRegistry).registerDataSetDef(argument.capture()); SQLDataSetDef dataSetDef = argument.getValue(); assertEquals(DATASET_HUMAN_TASKS, dataSetDef.getUUID()); assertEquals("target-" + DATASET_HUMAN_TASKS, dataSetDef.getName()); assertEquals(KieServerDataSetProvider.TYPE, dataSetDef.getProvider()); assertEquals("SELECT *", dataSetDef.getDbSQL()); assertEquals(11, dataSetDef.getColumns().size()); } }