Search in sources :

Example 16 with Code

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()));
}
Also used : ValidationResults(org.openforis.idm.metamodel.validation.ValidationResults) Coordinate(org.openforis.idm.model.Coordinate) CoordinateAttribute(org.openforis.idm.model.CoordinateAttribute) Code(org.openforis.idm.model.Code) Test(org.junit.Test)

Example 17 with Code

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);
}
Also used : Code(org.openforis.idm.model.Code) AbstractTest(org.openforis.collect.AbstractTest) Test(org.junit.Test)

Example 18 with Code

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());
}
Also used : CollectRecord(org.openforis.collect.model.CollectRecord) User(org.openforis.collect.model.User) RecordUpdater(org.openforis.collect.model.RecordUpdater) Code(org.openforis.idm.model.Code) CollectIntegrationTest(org.openforis.collect.CollectIntegrationTest) Test(org.junit.Test)

Example 19 with Code

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());
    }
}
Also used : Entity(org.openforis.idm.model.Entity) ValidationResults(org.openforis.idm.metamodel.validation.ValidationResults) CodeAttribute(org.openforis.idm.model.CodeAttribute) CodeList(org.openforis.idm.metamodel.CodeList) List(java.util.List) Code(org.openforis.idm.model.Code) CollectIntegrationTest(org.openforis.collect.CollectIntegrationTest) Test(org.junit.Test)

Example 20 with Code

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"));
        }
    }
}
Also used : Entity(org.openforis.idm.model.Entity) Coordinate(org.openforis.idm.model.Coordinate) RealAttribute(org.openforis.idm.model.RealAttribute) Time(org.openforis.idm.model.Time) Code(org.openforis.idm.model.Code) Date(org.openforis.idm.model.Date)

Aggregations

Code (org.openforis.idm.model.Code)68 Test (org.junit.Test)45 Entity (org.openforis.idm.model.Entity)35 CodeAttribute (org.openforis.idm.model.CodeAttribute)16 AbstractTest (org.openforis.idm.AbstractTest)14 Coordinate (org.openforis.idm.model.Coordinate)14 Date (org.openforis.idm.model.Date)10 Time (org.openforis.idm.model.Time)10 CollectRecord (org.openforis.collect.model.CollectRecord)9 RealAttribute (org.openforis.idm.model.RealAttribute)9 GregorianCalendar (java.util.GregorianCalendar)8 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)6 CodeList (org.openforis.idm.metamodel.CodeList)6 CollectIntegrationTest (org.openforis.collect.CollectIntegrationTest)5 CoordinateAttribute (org.openforis.idm.model.CoordinateAttribute)5 RecordUpdater (org.openforis.collect.model.RecordUpdater)4 ModelVersion (org.openforis.idm.metamodel.ModelVersion)4 ValidationResults (org.openforis.idm.metamodel.validation.ValidationResults)4 Node (org.openforis.idm.model.Node)4 User (org.openforis.collect.model.User)3