use of org.openforis.idm.model.Code in project collect by openforis.
the class DistanceCheckTest method testErrorMaxDistance.
@Test
public void testErrorMaxDistance() {
String coordStr = "SRID=EPSG:21035;POINT(915750 9333820)";
Coordinate coord = Coordinate.parseCoordinate(coordStr);
EntityBuilder.addValue(cluster, "id", new Code("001"));
CoordinateAttribute vehicleLocation = EntityBuilder.addValue(cluster, "vehicle_location", coord);
ValidationResults results = validate(vehicleLocation);
Assert.assertTrue(containsDistanceCheck(results.getErrors()));
}
use of org.openforis.idm.model.Code in project collect by openforis.
the class CollectLookupFunctionTest method testLookupFunctionWithPath.
@Test
public void testLookupFunctionWithPath() throws InvalidExpressionException {
EntityBuilder.addValue(cluster, "id", new Code("205_128"));
String expr = "idm:lookup('sampling_design', 'location','cluster', id,'plot', '0')";
Object value = expressionEvaluator.evaluateValue(cluster, null, expr);
Assert.assertEquals(TEST_COORDINATE, value);
}
use of org.openforis.idm.model.Code in project collect by openforis.
the class RecordManagerIntegrationTest method testUpdateCurrentStepDoesntAffectPreviousStep.
@Test
public void testUpdateCurrentStepDoesntAffectPreviousStep() throws MissingRecordKeyException, RecordPromoteException {
CollectRecord record = (CollectRecord) record(attribute("id", "10_117"), attribute("region", "002"), attribute("district", "003")).build(survey, "cluster", "2.0");
RecordUpdater recordUpdater = new RecordUpdater();
recordUpdater.initializeNewRecord(record);
User user = userManager.loadAdminUser();
record.setCreatedBy(user);
record.setModifiedBy(user);
recordManager.save(record);
recordManager.promote(record, user, true);
CollectRecord cleansingRecord = recordManager.load(survey, record.getId());
Attribute<?, Code> district = cleansingRecord.findNodeByPath("/cluster/district");
Code newDistrictValue = new Code("001");
recordUpdater.updateAttribute(district, newDistrictValue);
recordManager.save(cleansingRecord);
CollectRecord entryRecord = recordManager.load(survey, record.getId(), Step.ENTRY);
assertEquals(2, (int) entryRecord.getWorkflowSequenceNumber());
assertEquals(1, (int) entryRecord.getDataWorkflowSequenceNumber());
Attribute<?, Code> entryDistrict = entryRecord.findNodeByPath("/cluster/district");
assertEquals(new Code("003"), entryDistrict.getValue());
}
use of org.openforis.idm.model.Code in project collect by openforis.
the class CollectRecordIntegrationTest method testConfirmError.
@Test
public void testConfirmError() throws Exception {
CollectSurvey survey = loadSurvey();
CollectRecord record = createTestRecord(survey);
Entity cluster = record.getRootEntity();
CodeAttribute region = (CodeAttribute) cluster.getChild("region", 0);
// add wrong value
{
NodeChangeSet changeSet = recordUpdater.updateAttribute(region, new Code("ZZZ"));
assertFalse(changeSet.isEmpty());
NodeChange<?> regionChange = changeSet.getChange(region);
assertTrue(regionChange instanceof AttributeChange);
ValidationResults validationResults = ((AttributeChange) regionChange).getValidationResults();
List<ValidationResult> errors = validationResults.getErrors();
assertFalse(errors.isEmpty());
List<ValidationResult> warnings = validationResults.getWarnings();
assertTrue(warnings.isEmpty());
}
{
NodeChangeSet changeSet = recordUpdater.confirmError(region);
assertFalse(changeSet.isEmpty());
NodeChange<?> regionChange = changeSet.getChange(region);
assertTrue(regionChange instanceof AttributeChange);
ValidationResults validationResults = ((AttributeChange) regionChange).getValidationResults();
List<ValidationResult> errors = validationResults.getErrors();
assertTrue(errors.isEmpty());
List<ValidationResult> warnings = validationResults.getWarnings();
assertFalse(warnings.isEmpty());
}
}
use of org.openforis.idm.model.Code in project collect by openforis.
the class CollectRecordIntegrationTest method addTestValues.
private void addTestValues(Entity cluster, String id) {
EntityBuilder.addValue(cluster, "id", new Code(id));
EntityBuilder.addValue(cluster, "gps_realtime", Boolean.TRUE);
EntityBuilder.addValue(cluster, "region", new Code("001"));
EntityBuilder.addValue(cluster, "district", new Code("002"));
EntityBuilder.addValue(cluster, "crew_no", 10);
EntityBuilder.addValue(cluster, "map_sheet", "value 1");
EntityBuilder.addValue(cluster, "map_sheet", "value 2");
EntityBuilder.addValue(cluster, "vehicle_location", new Coordinate((double) 432423423l, (double) 4324324l, "srs"));
EntityBuilder.addValue(cluster, "gps_model", "TomTom 1.232");
{
Entity ts = EntityBuilder.addEntity(cluster, "time_study");
EntityBuilder.addValue(ts, "date", new Date(2011, 2, 14));
EntityBuilder.addValue(ts, "start_time", new Time(8, 15));
EntityBuilder.addValue(ts, "end_time", new Time(15, 29));
}
/*
{
Entity ts = EntityBuilder.addEntity(cluster, "time_study");
EntityBuilder.addValue(ts, "date", new Date(2011,2,15));
EntityBuilder.addValue(ts, "start_time", new Time(8,32));
EntityBuilder.addValue(ts, "end_time", new Time(11,20));
}
*/
{
Entity plot = EntityBuilder.addEntity(cluster, "plot");
EntityBuilder.addValue(plot, "no", new Code("1"));
Entity tree1 = EntityBuilder.addEntity(plot, "tree");
EntityBuilder.addValue(tree1, "tree_no", 1);
EntityBuilder.addValue(tree1, "dbh", 54.2);
EntityBuilder.addValue(tree1, "total_height", 2.0);
// EntityBuilder.addValue(tree1, "bole_height", (Double) null).setMetadata(new CollectAttributeMetadata('*',null,"No value specified"));
RealAttribute boleHeight = EntityBuilder.addValue(tree1, "bole_height", (Double) null);
boleHeight.getField(0).setSymbol('*');
boleHeight.getField(0).setRemarks("No value specified");
Entity tree2 = EntityBuilder.addEntity(plot, "tree");
EntityBuilder.addValue(tree2, "tree_no", 2);
EntityBuilder.addValue(tree2, "dbh", 82.8);
EntityBuilder.addValue(tree2, "total_height", 3.0);
}
{
Entity plot = EntityBuilder.addEntity(cluster, "plot");
EntityBuilder.addValue(plot, "no", new Code("2"));
Entity tree1 = EntityBuilder.addEntity(plot, "tree");
EntityBuilder.addValue(tree1, "tree_no", 1);
EntityBuilder.addValue(tree1, "dbh", 34.2);
EntityBuilder.addValue(tree1, "total_height", 2.0);
Entity tree2 = EntityBuilder.addEntity(plot, "tree");
EntityBuilder.addValue(tree2, "tree_no", 2);
EntityBuilder.addValue(tree2, "dbh", 85.8);
EntityBuilder.addValue(tree2, "total_height", 4.0);
{
Entity humanImpact = EntityBuilder.addEntity(plot, "human_impact");
EntityBuilder.addValue(humanImpact, "type", new Code("0"));
}
}
}
Aggregations