ConsoleDataSetLookup dataSetLookup = adoptLookup(def, lookup); dataSetLookup.getServerTemplateId()); if (dataSetLookup.getServerTemplateId() == null || dataSetLookup.getServerTemplateId().isEmpty()) { return buildDataSet(def, new ArrayList<>(), new ArrayList<>()); final QueryServicesClient queryClient = getClient(dataSetLookup.getServerTemplateId(), QueryServicesClient.class); for (DataSetGroup group : dataSetGroups) { if (group.getSelectedIntervalList() != null && group.getSelectedIntervalList().size() > 0) { appendIntervalSelection(group, filterParams); handleDataSetGroup(def, dataSetGroup, filterParams, final List<List> instances = performQuery((RemoteDataSetDef) def, dataSetLookup, queryClient, return buildDataSet(def, instances, extraColumns);
@Test public void testDataSetMetaData() throws Exception { Map<String, String> columns = new HashMap<>(); columns.put("test", "NUMBER"); QueryDefinition definition = QueryDefinition.builder() .name("q1") .columns(columns) .build(); when(dataSetDef.getColumns()).thenReturn(null, new ArrayList<>()); when(dataSetDef.getServerTemplateId()).thenReturn("servereTemplateId"); when(queryServicesClient.getQuery(anyString())).thenReturn(definition); kieServerDataSetProvider.getDataSetMetadata(dataSetDef); verify(dataSetDef, times(1)).addColumn(eq("test"), eq(ColumnType.NUMBER)); verify(queryServicesClient).getQuery(anyString()); }
@Test public void testNoAdoptLookup() throws Exception { ConsoleDataSetLookup dataSetLookup = Mockito.mock(ConsoleDataSetLookup.class); kieServerDataSetProvider.adoptLookup(dataSetDef, dataSetLookup); verify(dataSetDef, times(0)).getServerTemplateId(); }
@Test public void testPerformQueryTestMode() { QueryFilterSpec filterSpec = new QueryFilterSpec(); ConsoleDataSetLookup dataSetLookup = Mockito.mock(ConsoleDataSetLookup.class); when(dataSetLookup.testMode()).thenReturn(true); when(dataSetLookup.getNumberOfRows()).thenReturn(10); when(dataSetLookup.getRowOffset()).thenReturn(1); when(dataSetLookup.getDataSetUUID()).thenReturn(""); kieServerDataSetProvider.performQuery(dataSetDef, dataSetLookup, queryServicesClient, filterSpec); verify(kieServerIntegration).broadcastToKieServers(anyString(), any()); verify(dataSetLookup, times(1)).testMode(); verify(queryServicesClient).query(anyString(), anyString(), any(QueryFilterSpec.class), anyInt(), anyInt(), any()); }
@Test public void appendEqualToIntervalSelectionTest() { String filterValue = "testValue"; DataSetGroup dataSetGroup = new DataSetGroup(); dataSetGroup.setColumnGroup(new ColumnGroup(COLUMN_TEST, COLUMN_TEST, GroupStrategy.DYNAMIC)); List<Interval> intervalList = new ArrayList<Interval>(); Interval interval = new Interval(filterValue); intervalList.add(interval); dataSetGroup.setSelectedIntervalList(intervalList); List<QueryParam> filterParams = new ArrayList<>(); kieServerDataSetProvider.appendIntervalSelection(dataSetGroup, filterParams); assertEquals(1, filterParams.size()); assertEquals(COLUMN_TEST, filterParams.get(0).getColumn()); assertEquals("EQUALS_TO", filterParams.get(0).getOperator()); assertEquals(filterValue, filterParams.get(0).getValue().get(0)); }
@Test public void testGroupWithNotSetInterval() { DataSetGroup dataSetGroup = new DataSetGroup(); dataSetGroup.setColumnGroup(new ColumnGroup(COLUMN_TEST, COLUMN_TEST, GroupStrategy.DYNAMIC)); List<QueryParam> filterParams = new ArrayList<>(); List<DataColumn> extraColumns = new ArrayList<>(); kieServerDataSetProvider.handleDataSetGroup(dataSetDef, dataSetGroup, filterParams, extraColumns); assertEquals(1, filterParams.size()); assertEquals(COLUMN_TEST, filterParams.get(0).getColumn()); assertEquals("group", filterParams.get(0).getOperator()); assertEquals(1, filterParams.get(0).getValue().size()); assertEquals(COLUMN_TEST, filterParams.get(0).getValue().get(0)); }
Arrays.asList(groupFunction.getColumnId()))); extraColumns.add(new DataColumnImpl(groupFunction.getSourceId(), getGroupFunctionColumnType(def, dataSetGroup.getColumnGroup(), groupFunction)));
lookup.addOperation(filter); kieServerDataSetProvider.lookupDataSet(dataSetDef, ConsoleDataSetLookup.fromInstance(lookup, "servereTemplateId"));
@Override public DataSetMetadata getDataSetMetadata(DataSetDef def) throws Exception { List<String> columnNames = new ArrayList<>(); List<ColumnType> columnTypes = new ArrayList<>(); if (def.getColumns() == null && def instanceof RemoteDataSetDef) { final QueryServicesClient queryClient = getClient(((RemoteDataSetDef) def).getServerTemplateId(), QueryServicesClient.class); QueryDefinition definition = queryClient.getQuery(def.getUUID()); if (definition.getColumns() != null) { for (Entry<String, String> entry : definition.getColumns().entrySet()) { if (def.getColumnById(entry.getKey()) == null) { def.addColumn(entry.getKey(), ColumnType.valueOf(entry.getValue())); } } } } List<DataColumnDef> columns = def.getColumns(); for (DataColumnDef column : columns) { columnNames.add(column.getId()); columnTypes.add(column.getColumnType()); } return new DataSetMetadataImpl(def, def.getUUID(), -1, def.getColumns().size(), columnNames, columnTypes, -1); }
@Test public void testNoAdoptLookup() throws Exception { ConsoleDataSetLookup dataSetLookup = Mockito.mock(ConsoleDataSetLookup.class); kieServerDataSetProvider.adoptLookup(dataSetDef, dataSetLookup); verify(dataSetDef, times(0)).getServerTemplateId(); }
@Test public void testPerformQueryRegularMode() { QueryFilterSpec filterSpec = new QueryFilterSpec(); ConsoleDataSetLookup dataSetLookup = Mockito.mock(ConsoleDataSetLookup.class); when(dataSetLookup.testMode()).thenReturn(false); when(dataSetLookup.getNumberOfRows()).thenReturn(10); when(dataSetLookup.getRowOffset()).thenReturn(1); when(dataSetLookup.getDataSetUUID()).thenReturn(""); kieServerDataSetProvider.performQuery(dataSetDef, dataSetLookup, queryServicesClient, filterSpec); verify(kieServerIntegration, times(0)).broadcastToKieServers(anyString(), any()); verify(dataSetLookup, times(1)).testMode(); verify(queryServicesClient).query(anyString(), anyString(), any(QueryFilterSpec.class), anyInt(), anyInt(), any()); }
@Test public void appendBetweenIntervalSelectionTest() { String filterValue = "testValue"; Long minValue = Long.valueOf(0); Long maxValue = Long.valueOf(2); DataSetGroup dataSetGroup = new DataSetGroup(); dataSetGroup.setColumnGroup(new ColumnGroup(COLUMN_TEST, COLUMN_TEST, GroupStrategy.DYNAMIC)); List<Interval> intervalList = new ArrayList<Interval>(); Interval interval = new Interval(filterValue); interval.setMinValue(minValue); interval.setMaxValue(maxValue); intervalList.add(interval); dataSetGroup.setSelectedIntervalList(intervalList); List<QueryParam> filterParams = new ArrayList<>(); kieServerDataSetProvider.appendIntervalSelection(dataSetGroup, filterParams); assertEquals(1, filterParams.size()); assertEquals(COLUMN_TEST, filterParams.get(0).getColumn()); assertEquals("BETWEEN", filterParams.get(0).getOperator()); assertEquals(Double.valueOf(minValue), filterParams.get(0).getValue().get(0)); assertEquals(Double.valueOf(maxValue), filterParams.get(0).getValue().get(1)); }
@Test public void testGroupWithNotSetInterval() { DataSetGroup dataSetGroup = new DataSetGroup(); dataSetGroup.setColumnGroup(new ColumnGroup(COLUMN_TEST, COLUMN_TEST, GroupStrategy.DYNAMIC)); List<QueryParam> filterParams = new ArrayList<>(); List<DataColumn> extraColumns = new ArrayList<>(); kieServerDataSetProvider.handleDataSetGroup(dataSetDef, dataSetGroup, filterParams, extraColumns); assertEquals(1, filterParams.size()); assertEquals(COLUMN_TEST, filterParams.get(0).getColumn()); assertEquals("group", filterParams.get(0).getOperator()); assertEquals(1, filterParams.get(0).getValue().size()); assertEquals(COLUMN_TEST, filterParams.get(0).getValue().get(0)); }
protected void assertGroupFuntionColumnType(final ColumnType source, final ColumnType expected) { final DataSetDef def = new DataSetDef(); def.addColumn("columnId", source); final ColumnGroup columnGroup = new ColumnGroup("sourceId", "columnId"); final GroupFunction groupFunction = new GroupFunction("sourceId", "columnId", null); assertEquals(expected, kieServerDataSetProvider.getGroupFunctionColumnType(def, columnGroup, groupFunction)); } }
lookup.addOperation(filter); kieServerDataSetProvider.lookupDataSet(dataSetDef, ConsoleDataSetLookup.fromInstance(lookup, "servereTemplateId"));
@Test public void testAdoptLookup() throws Exception { DataSetLookup dataSetLookup = Mockito.mock(DataSetLookup.class); when(dataSetDef.getDataSetFilter()).thenReturn(Mockito.mock(DataSetFilter.class)); when(dataSetDef.getServerTemplateId()).thenReturn("servereTemplateId"); when(dataSetLookup.cloneInstance()).thenReturn(dataSetLookup); ConsoleDataSetLookup adopted = kieServerDataSetProvider.adoptLookup(dataSetDef, dataSetLookup); verify(dataSetDef, times(1)).getServerTemplateId(); assertNotNull(adopted.getOperationList()); assertEquals(1, adopted.getOperationList().size()); }
@Test public void testPerformQueryRegularMode() { QueryFilterSpec filterSpec = new QueryFilterSpec(); ConsoleDataSetLookup dataSetLookup = Mockito.mock(ConsoleDataSetLookup.class); when(dataSetLookup.testMode()).thenReturn(false); when(dataSetLookup.getNumberOfRows()).thenReturn(10); when(dataSetLookup.getRowOffset()).thenReturn(1); when(dataSetLookup.getDataSetUUID()).thenReturn(""); kieServerDataSetProvider.performQuery(dataSetDef, dataSetLookup, queryServicesClient, filterSpec); verify(kieServerIntegration, times(0)).broadcastToKieServers(anyString(), any()); verify(dataSetLookup, times(1)).testMode(); verify(queryServicesClient).query(anyString(), anyString(), any(QueryFilterSpec.class), anyInt(), anyInt(), any()); }
@Test public void appendBetweenIntervalSelectionTest() { String filterValue = "testValue"; Long minValue = Long.valueOf(0); Long maxValue = Long.valueOf(2); DataSetGroup dataSetGroup = new DataSetGroup(); dataSetGroup.setColumnGroup(new ColumnGroup(COLUMN_TEST, COLUMN_TEST, GroupStrategy.DYNAMIC)); List<Interval> intervalList = new ArrayList<Interval>(); Interval interval = new Interval(filterValue); interval.setMinValue(minValue); interval.setMaxValue(maxValue); intervalList.add(interval); dataSetGroup.setSelectedIntervalList(intervalList); List<QueryParam> filterParams = new ArrayList<>(); kieServerDataSetProvider.appendIntervalSelection(dataSetGroup, filterParams); assertEquals(1, filterParams.size()); assertEquals(COLUMN_TEST, filterParams.get(0).getColumn()); assertEquals("BETWEEN", filterParams.get(0).getOperator()); assertEquals(Double.valueOf(minValue), filterParams.get(0).getValue().get(0)); assertEquals(Double.valueOf(maxValue), filterParams.get(0).getValue().get(1)); }
kieServerDataSetProvider.handleDataSetGroup(dataSetDef, dataSetGroup, filterParams,
protected void assertGroupFuntionColumnType(final ColumnType source, final ColumnType expected) { final DataSetDef def = new DataSetDef(); def.addColumn("columnId", source); final ColumnGroup columnGroup = new ColumnGroup("sourceId", "columnId"); final GroupFunction groupFunction = new GroupFunction("sourceId", "columnId", null); assertEquals(expected, kieServerDataSetProvider.getGroupFunctionColumnType(def, columnGroup, groupFunction)); } }