Search in sources :

Example 26 with Node

use of org.openforis.idm.model.Node in project collect by openforis.

the class CollectRecordIntegrationTest method testRemoveRequiredEntity.

@Test
public void testRemoveRequiredEntity() throws Exception {
    CollectSurvey survey = loadSurvey();
    CollectRecord record = createTestRecord(survey);
    Entity cluster = record.getRootEntity();
    Entity timeStudy = (Entity) cluster.getChild("time_study", 0);
    NodeChangeSet changeSet = recordUpdater.deleteNode(timeStudy);
    assertEquals(2, changeSet.size());
    {
        NodeChange<?> timeStudyDeleteChange = changeSet.getChange(timeStudy);
        assertTrue(timeStudyDeleteChange instanceof NodeDeleteChange);
        Node<?> deletedNode = timeStudyDeleteChange.getNode();
        assertEquals(timeStudy.getInternalId(), deletedNode.getInternalId());
    }
    {
        NodeChange<?> clusterChange = changeSet.getChange(cluster);
        assertTrue(clusterChange instanceof EntityChange);
        EntityChange clusterEntityChange = (EntityChange) clusterChange;
        Map<String, ValidationResultFlag> childrenMinCountValid = clusterEntityChange.getChildrenMinCountValidation();
        ValidationResultFlag timeStudyMinCountValid = childrenMinCountValid.get("time_study");
        assertEquals(ValidationResultFlag.ERROR, timeStudyMinCountValid);
        Map<String, ValidationResultFlag> childrenMaxCountValid = clusterEntityChange.getChildrenMaxCountValidation();
        ValidationResultFlag timeStudyMaxCountValid = childrenMaxCountValid.get("time_study");
        assertNull(timeStudyMaxCountValid);
    }
}
Also used : Entity(org.openforis.idm.model.Entity) ValidationResultFlag(org.openforis.idm.metamodel.validation.ValidationResultFlag) Node(org.openforis.idm.model.Node) HashMap(java.util.HashMap) Map(java.util.Map) CollectIntegrationTest(org.openforis.collect.CollectIntegrationTest) Test(org.junit.Test)

Example 27 with Node

use of org.openforis.idm.model.Node in project collect by openforis.

the class ModelPathExpressionTest method testParentFunction.

@Test
public void testParentFunction() throws InvalidExpressionException {
    String entityName = "plot";
    Entity plot = EntityBuilder.addEntity(cluster, entityName);
    EntityBuilder.addValue(cluster, "id", new Code("123_456"));
    String expr = "parent()/id";
    List<Node<?>> list = iterateExpression(expr, plot);
    Assert.assertEquals(1, list.size());
}
Also used : Entity(org.openforis.idm.model.Entity) Node(org.openforis.idm.model.Node) Code(org.openforis.idm.model.Code) AbstractTest(org.openforis.idm.AbstractTest) Test(org.junit.Test)

Example 28 with Node

use of org.openforis.idm.model.Node in project collect by openforis.

the class PathTest method testMultipleAttributeWithoutIndex.

@Test
public void testMultipleAttributeWithoutIndex() throws InvalidPathException {
    Entity cluster = getRootEntity();
    Entity plot = EntityBuilder.addEntity(cluster, "plot");
    EntityBuilder.addEntity(plot, "tree");
    Entity tree2 = EntityBuilder.addEntity(plot, "tree");
    RealAttribute dbh1 = EntityBuilder.addValue(tree2, "dbh", 12.2);
    RealAttribute dbh2 = EntityBuilder.addValue(tree2, "dbh", 15.7);
    Path path = Path.parse("tree[2]/dbh");
    // Node
    List<Node<?>> res = path.evaluate(plot);
    Assert.assertEquals(2, res.size());
    Assert.assertEquals(dbh1, res.get(0));
    Assert.assertEquals(dbh2, res.get(1));
    // Defn
    NodeDefinition def = path.evaluate(plot.getDefinition());
    Assert.assertEquals(dbh2.getDefinition(), def);
}
Also used : Entity(org.openforis.idm.model.Entity) RealAttribute(org.openforis.idm.model.RealAttribute) Node(org.openforis.idm.model.Node) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) AbstractTest(org.openforis.idm.AbstractTest) Test(org.junit.Test)

Example 29 with Node

use of org.openforis.idm.model.Node in project collect by openforis.

the class PathTest method testMultipleFieldPathWithoutIndex.

@Test
public void testMultipleFieldPathWithoutIndex() throws InvalidPathException {
    Entity cluster = getRootEntity();
    Entity plot = EntityBuilder.addEntity(cluster, "plot");
    EntityBuilder.addEntity(plot, "tree");
    Entity tree2 = EntityBuilder.addEntity(plot, "tree");
    RealAttribute dbh1 = EntityBuilder.addValue(tree2, "dbh", 12.2);
    RealAttribute dbh2 = EntityBuilder.addValue(tree2, "dbh", 15.7);
    Path path = Path.parse("tree[2]/dbh/value");
    // Node
    List<Node<?>> res = path.evaluate(plot);
    Assert.assertEquals(2, res.size());
    Assert.assertEquals(12.2, ((Field<?>) res.get(0)).getValue());
    Assert.assertEquals(15.7, ((Field<?>) res.get(1)).getValue());
    // Defn
    NodeDefinition def = path.evaluate(plot.getDefinition());
    Assert.assertEquals(dbh1.getDefinition().getFieldDefinition("value"), def);
    Assert.assertEquals(dbh2.getDefinition().getFieldDefinition("value"), def);
}
Also used : Entity(org.openforis.idm.model.Entity) RealAttribute(org.openforis.idm.model.RealAttribute) Node(org.openforis.idm.model.Node) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) AbstractTest(org.openforis.idm.AbstractTest) Test(org.junit.Test)

Example 30 with Node

use of org.openforis.idm.model.Node in project collect by openforis.

the class PathTest method testSingleAttributeWithoutIndex.

@Test
public void testSingleAttributeWithoutIndex() throws InvalidPathException {
    Entity cluster = getRootEntity();
    Entity plot = EntityBuilder.addEntity(cluster, "plot");
    Entity tree1 = EntityBuilder.addEntity(plot, "tree");
    EntityBuilder.addValue(tree1, "dbh", 12.2);
    Entity tree2 = EntityBuilder.addEntity(plot, "tree");
    RealAttribute dbh2 = EntityBuilder.addValue(tree2, "dbh", 15.7);
    Path path = Path.parse("tree[2]/dbh");
    // Node
    List<Node<?>> res = path.evaluate(plot);
    Assert.assertEquals(1, res.size());
    Assert.assertEquals(dbh2, res.get(0));
    // Defn
    NodeDefinition def = path.evaluate(plot.getDefinition());
    Assert.assertEquals(dbh2.getDefinition(), def);
}
Also used : Entity(org.openforis.idm.model.Entity) RealAttribute(org.openforis.idm.model.RealAttribute) Node(org.openforis.idm.model.Node) NodeDefinition(org.openforis.idm.metamodel.NodeDefinition) AbstractTest(org.openforis.idm.AbstractTest) Test(org.junit.Test)

Aggregations

Node (org.openforis.idm.model.Node)37 Entity (org.openforis.idm.model.Entity)19 Test (org.junit.Test)13 ArrayList (java.util.ArrayList)11 AbstractTest (org.openforis.idm.AbstractTest)11 NodeDefinition (org.openforis.idm.metamodel.NodeDefinition)8 CollectRecord (org.openforis.collect.model.CollectRecord)6 RealAttribute (org.openforis.idm.model.RealAttribute)6 Attribute (org.openforis.idm.model.Attribute)5 CodeAttribute (org.openforis.idm.model.CodeAttribute)5 Code (org.openforis.idm.model.Code)4 Record (org.openforis.idm.model.Record)4 HashSet (java.util.HashSet)3 LinkedHashSet (java.util.LinkedHashSet)3 XPathDataQueryEvaluator (org.openforis.collect.datacleansing.xpath.XPathDataQueryEvaluator)3 CollectRecordSummary (org.openforis.collect.model.CollectRecordSummary)3 CollectSurvey (org.openforis.collect.model.CollectSurvey)3 RecordFilter (org.openforis.collect.model.RecordFilter)3 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)3 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)3