/** data set without columns can't create import table */ @Test(expectedExceptions = NoColumnsException.class) public void emptyDataSetTable() { DataSet dataSet = new DataSetImpl( service, builder.buildDataSetNode(id, name, description, owner, lastChange)); dataSet.createDataTable(); }
/** data set attributes can load values just like report attributes */ @Test public void loadAttributeValues() { ObjectNode node = builder.buildDataSetNode(dataSetId, name, description, owner, lastChange); node.put( "attributes", new ObjectMapper() .createArrayNode() .add(builder.buildAttributeNode(id, name, code, "string"))); server.register(dataSetsUri + "/" + dataSetId, node.toString()); DataSet dataSet = service.loadDataSet(dataSetId); Attribute attribute = dataSet.getAttributes().get(0); String label = "label"; String value = "value"; final ObjectNode valueNode = new ObjectMapper().createObjectNode(); valueNode.put( "values", new ObjectMapper().createArrayNode().add(builder.buildAttributeValueNode(label, value))); server.register( dataSetsUri + "/" + dataSetId + "/attributes/" + code + "/values", valueNode.toString()); List<AttributeValue> values = attribute.getValues().load().get(); assertEquals(values.size(), 1); assertEquals(values.get(0).getLabel(), label); assertEquals(values.get(0).getValue(), value); assertEquals(attribute.toString(), name); assertEquals(values.get(0).toString(), label); }
/** Empty attributes array means no attributes. */ public void attributesEmpty() { ObjectNode node = builder.buildDataSetNode(dataSetId, name, description, owner, lastChange); node.put("attributes", new ObjectMapper().createArrayNode()); server.register(dataSetsUri + "/" + dataSetId, node.toString()); DataSet dataSet = service.loadDataSet(dataSetId); assertEquals(dataSet.getAttributes(), Collections.emptyList()); }
/** No attributes field means no attributes. */ public void attributesMissing() { server.register( dataSetsUri + "/" + dataSetId, builder.buildDataSetNode(dataSetId, name, description, owner, lastChange).toString()); DataSet dataSet = service.loadDataSet(dataSetId); assertEquals(dataSet.getAttributes(), Collections.emptyList()); }
/** Invalid indicators are ignored. */ @Test(dataProvider = "invalidIndicators") public void indicatorInvalid(JsonNode indicator) { ObjectNode node = builder.buildDataSetNode(dataSetId, name, description, owner, lastChange); node.put("indicators", new ObjectMapper().createArrayNode().add(indicator)); server.register(dataSetsUri + "/" + dataSetId, node.toString()); DataSet dataSet = service.loadDataSet(dataSetId); assertEquals(dataSet.getIndicators(), Collections.emptyList()); }
/** Valid attribute types are parsed correctly. */ @Test(dataProvider = "attributeTypes") public void attributeTypes(String jsonType, AttributeType type) { ObjectNode node = builder.buildDataSetNode(dataSetId, name, description, owner, lastChange); node.put( "attributes", new ObjectMapper() .createArrayNode() .add(builder.buildAttributeNode(id, name, code, jsonType))); server.register(dataSetsUri + "/" + dataSetId, node.toString()); DataSet dataSet = service.loadDataSet(dataSetId); assertEquals(dataSet.getAttributes().size(), 1); Attribute attribute = dataSet.getAttributes().get(0); assertEquals(attribute.getId(), id); assertEquals(attribute.getName(), name); assertEquals(attribute.getCode(), code); assertEquals(attribute.getType(), type); }
/** Indicator groups are parsed correctly. */ public void groupIndicator() { ObjectNode node = builder.buildDataSetNode(dataSetId, name, description, owner, lastChange); node.put( "indicators", new ObjectMapper() .createArrayNode() .add(builder.buildIndicatorNode(id, name, code, formula, "indicator_group"))); server.register(dataSetsUri + "/" + dataSetId, node.toString()); DataSet dataSet = service.loadDataSet(dataSetId); assertEquals(dataSet.getIndicators().size(), 1); Indicator indicator = dataSet.getIndicators().get(0); assertEquals(indicator.getId(), id); assertEquals(indicator.getName(), name); assertEquals(indicator.getCode(), null); assertEquals(indicator.getFormula(), null); assertEquals(indicator.getType(), IndicatorType.GROUP); }