private void assertColumns(LogicalColumn lcolumn, Element column, String categoryId) { assertEquals(lcolumn.getId(), column.getId()); assertEquals(lcolumn.getName(DEFAULT_LOCALE), column.getName()); assertEquals(lcolumn.getDescription(DEFAULT_LOCALE), column.getDescription()); assertEquals(categoryId, column.getParentId()); assertEquals(lcolumn.getDataType().getName().toUpperCase(), column.getDataType()); assertEquals(lcolumn.getFieldType().name(), column.getElementType()); Assert.assertArrayEquals( new String[] {"SUM", "COUNT", "AVERAGE"}, column.getAvailableAggregations()); assertEquals(lcolumn.getAggregationType().name(), column.getDefaultAggregation()); assertEquals(lcolumn.getAggregationType().name(), column.getSelectedAggregation()); assertEquals("LEFT", column.getHorizontalAlignment()); assertEquals("test_mask", column.getFormatMask()); Assert.assertFalse(column.isHiddenForUser()); }
@Test public void testDeserializeJsonQuery() { String json = "{\"class\":\"org.pentaho.metadata.model.thin.Query\",\"conditions\":[{\"class\":\"org.pentaho.metadata.model.thin.Condition\"," + "\"combinationType\":\"AND\",\"elementId\":\"MY_ELEM_ID\",\"operator\":\"EQUAL\",\"parameterized\":false," + "\"parentId\":\"MY_PARENT_ID\",\"selectedAggregation\":\"SUM\",\"value\":[\"Val_0\"]}],\"defaultParameterMap\":null," + "\"disableDistinct\":false,\"elements\":[{\"availableAggregations\":null,\"capabilities\":{}," + "\"class\":\"org.pentaho.metadata.model.thin.Element\",\"dataType\":null,\"defaultAggregation\":\"NONE\"," + "\"description\":null,\"elementType\":null,\"formatMask\":null,\"hiddenForUser\":false,\"horizontalAlignment\":\"LEFT\"," + "\"id\":\"MY_ELEM_ID\",\"isQueryElement\":true,\"name\":null,\"parentId\":\"PARENT_ID\",\"selectedAggregation\":\"SUM\"}]," + "\"orders\":[{\"class\":\"org.pentaho.metadata.model.thin.Order\",\"elementId\":\"MY_ELEM_ID\",\"orderType\":\"ASC\"," + "\"parentId\":\"MY_PARENT_ID\"}],\"parameters\":[],\"sourceId\":\"MY_DOMAIN_ID\"}"; Query result = spyMetadataServiceUtil.deserializeJsonQuery(json); assertNotNull(result); assertEquals("MY_DOMAIN_ID", result.getSourceId()); assertFalse(result.getDisableDistinct()); assertEquals(1, result.getElements().length); Element column = result.getElements()[0]; assertEquals("MY_ELEM_ID", column.getId()); assertNull(column.getName()); assertNull(column.getDescription()); assertNull(column.getElementType()); assertNull(column.getFormatMask()); assertNull(column.getDataType()); assertFalse(column.isHiddenForUser()); assertEquals("NONE", column.getDefaultAggregation()); assertEquals("PARENT_ID", column.getParentId()); assertEquals("LEFT", column.getHorizontalAlignment()); assertEquals("SUM", column.getSelectedAggregation()); assertEquals(1, result.getConditions().length); Condition condition = result.getConditions()[0]; assertEquals("MY_PARENT_ID", condition.getParentId()); assertEquals("MY_ELEM_ID", condition.getElementId()); assertEquals("AND", condition.getCombinationType()); assertEquals("EQUAL", condition.getOperator()); assertFalse(condition.isParameterized()); assertEquals("SUM", condition.getSelectedAggregation()); Assert.assertArrayEquals(new String[] {"Val_0"}, condition.getValue()); assertEquals(1, result.getOrders().length); Order order = result.getOrders()[0]; assertEquals("MY_ELEM_ID", order.getElementId()); assertEquals("MY_PARENT_ID", order.getParentId()); assertEquals("ASC", order.getOrderType()); assertEquals(0, result.getParameters().length); }