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);
}
}
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());
}
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);
}
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);
}
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);
}
Aggregations