Search in sources :

Example 51 with Entity

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

the class RecordUpdaterTest method testCardinalityValidatedOnRecordInitialization.

@Test
public void testCardinalityValidatedOnRecordInitialization() {
    record(rootEntityDef(entityDef("time_study", attributeDef("start_time")).multiple().required()));
    Entity rootEntity = record.getRootEntity();
    assertEquals(ValidationResultFlag.ERROR, rootEntity.getMinCountValidationResult("time_study"));
}
Also used : Entity(org.openforis.idm.model.Entity) Test(org.junit.Test)

Example 52 with Entity

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

the class RecordUpdaterTest method testMinCountValidationResultOnEntityWhenRequiredAttributeIsEmpty.

@Test
public void testMinCountValidationResultOnEntityWhenRequiredAttributeIsEmpty() {
    record(rootEntityDef(entityDef("time_study", attributeDef("start_time").required())), entity("time_study"));
    Entity timeStudy = entityByPath("/root/time_study");
    assertEquals(ValidationResultFlag.ERROR, timeStudy.getMinCountValidationResult("start_time"));
}
Also used : Entity(org.openforis.idm.model.Entity) Test(org.junit.Test)

Example 53 with Entity

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

the class RecordUpdaterTest method testCardinalityRevalidatedWhenBecomesRelevant.

@Test
public void testCardinalityRevalidatedWhenBecomesRelevant() {
    record(rootEntityDef(attributeDef("source"), attributeDef("dependent").multiple().relevant("source = '1'").minCount("1")), attribute("source", "2"), attribute("dependent", null));
    Entity rootEntity = record.getRootEntity();
    assertEquals(ValidationResultFlag.OK, rootEntity.getMinCountValidationResult("dependent"));
    Attribute<?, ?> source = record.findNodeByPath("/root/source");
    NodeChangeSet nodeChangeSet = update(source, "1");
    EntityChange rootEntityChange = (EntityChange) nodeChangeSet.getChange(rootEntity);
    assertNotNull(rootEntityChange);
    ValidationResultFlag dependentValidationResult = rootEntityChange.getChildrenMinCountValidation().get("dependent");
    assertEquals(ValidationResultFlag.ERROR, dependentValidationResult);
    assertEquals(ValidationResultFlag.ERROR, rootEntity.getMinCountValidationResult("dependent"));
}
Also used : Entity(org.openforis.idm.model.Entity) ValidationResultFlag(org.openforis.idm.metamodel.validation.ValidationResultFlag) Test(org.junit.Test)

Example 54 with Entity

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

the class RecordUpdaterTest method testRemoveEntityUpdatesCalculatedPosition.

@Test
public void testRemoveEntityUpdatesCalculatedPosition() {
    record(rootEntityDef(entityDef("tree", attributeDef("tree_num").calculated("idm:position()")).multiple()), entity("tree"), entity("tree"), entity("tree"));
    Entity tree1 = entityByPath("/root/tree[1]");
    Entity tree2 = entityByPath("/root/tree[2]");
    Entity tree3 = entityByPath("/root/tree[3]");
    updater.deleteNode(tree2);
    Attribute<?, ?> treeNum1 = (Attribute<?, ?>) tree1.getChild("tree_num");
    assertEquals(new TextValue("1"), treeNum1.getValue());
    Attribute<?, ?> treeNum3 = (Attribute<?, ?>) tree3.getChild("tree_num");
    assertEquals(new TextValue("2"), treeNum3.getValue());
}
Also used : Entity(org.openforis.idm.model.Entity) Attribute(org.openforis.idm.model.Attribute) TextAttribute(org.openforis.idm.model.TextAttribute) TextValue(org.openforis.idm.model.TextValue) Test(org.junit.Test)

Example 55 with Entity

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

the class RecordUpdaterTest method testRecordInitializationPreservesEntities.

@Test
public void testRecordInitializationPreservesEntities() {
    record(rootEntityDef(entityDef("time_study", attributeDef("start_time")).multiple().required()), entity("time_study", attribute("start_time", "start first")), entity("time_study", attribute("start_time", "start second")));
    Entity rootEntity = record.getRootEntity();
    assertEquals(2, rootEntity.getCount("time_study"));
}
Also used : Entity(org.openforis.idm.model.Entity) Test(org.junit.Test)

Aggregations

Entity (org.openforis.idm.model.Entity)164 Test (org.junit.Test)88 CollectRecord (org.openforis.collect.model.CollectRecord)37 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)36 Code (org.openforis.idm.model.Code)35 RealAttribute (org.openforis.idm.model.RealAttribute)25 CollectIntegrationTest (org.openforis.collect.CollectIntegrationTest)23 NodeDefinition (org.openforis.idm.metamodel.NodeDefinition)19 Node (org.openforis.idm.model.Node)19 AbstractTest (org.openforis.idm.AbstractTest)18 Date (org.openforis.idm.model.Date)16 ArrayList (java.util.ArrayList)14 CodeAttribute (org.openforis.idm.model.CodeAttribute)14 Time (org.openforis.idm.model.Time)12 GregorianCalendar (java.util.GregorianCalendar)9 ParsingError (org.openforis.collect.io.metadata.parsing.ParsingError)9 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)9 TextAttribute (org.openforis.idm.model.TextAttribute)9 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)8 Attribute (org.openforis.idm.model.Attribute)8