package org.openflexo.model; import junit.framework.TestCase; import org.flexo.model.AbstractNode; import org.flexo.model.FlexoModelObject; import org.flexo.model.FlexoProcess; import org.flexo.model.StartNode; import org.flexo.model.TokenEdge; import org.flexo.model.WKFObject; import org.openflexo.model.exceptions.ModelDefinitionException; public abstract class AbstractPAMELATest extends TestCase { /** * Little hack to access the library clear() method. This is only for testing purposes. */ protected void clearModelEntityLibrary() { ModelEntityLibrary.clear(); } protected void validateBasicModelContext(ModelContext modelContext) throws ModelDefinitionException { ModelEntity<FlexoModelObject> modelObjectEntity = modelContext.getModelEntity(FlexoModelObject.class); ModelEntity<FlexoProcess> processEntity = modelContext.getModelEntity(FlexoProcess.class); ModelEntity<AbstractNode> abstractNodeEntity = modelContext.getModelEntity(AbstractNode.class); ModelEntity<StartNode> startNodeEntity = modelContext.getModelEntity(StartNode.class); ModelEntity<TokenEdge> tokenEdgeEntity = modelContext.getModelEntity(TokenEdge.class); ModelEntity<WKFObject> wkfObjectEntity = modelContext.getModelEntity(WKFObject.class); assertNotNull(processEntity); assertNotNull(abstractNodeEntity); assertNotNull(startNodeEntity); assertNotNull(tokenEdgeEntity); assertNotNull(wkfObjectEntity); ModelProperty<? super FlexoProcess> nodesProperty = processEntity.getModelProperty(FlexoProcess.NODES); assertNotNull(nodesProperty); ModelProperty<? super FlexoProcess> fooProperty = processEntity.getModelProperty(FlexoProcess.FOO); assertNotNull(fooProperty); assertNotNull(modelObjectEntity.getModelProperty(FlexoModelObject.FLEXO_ID)); assertNotNull(processEntity.getModelProperty(FlexoModelObject.FLEXO_ID)); assertNotNull(wkfObjectEntity.getModelProperty(FlexoModelObject.FLEXO_ID)); assertNotNull(wkfObjectEntity.getModelProperty(FlexoModelObject.FLEXO_ID).getSetter()); ModelProperty<? super WKFObject> wkfObjectProcessProperty = wkfObjectEntity.getModelProperty(WKFObject.PROCESS); assertNotNull(wkfObjectProcessProperty); assertNull(wkfObjectProcessProperty.getInverseProperty()); assertNotNull(wkfObjectProcessProperty.getSetter()); ModelProperty<? super AbstractNode> abstractNodeProcessProperty = abstractNodeEntity.getModelProperty(WKFObject.PROCESS); assertNotNull(abstractNodeProcessProperty); assertNotNull(abstractNodeProcessProperty.getInverseProperty()); assertNotNull(abstractNodeProcessProperty.getSetter()); assertTrue(modelObjectEntity.getAllDescendants(modelContext).contains(processEntity)); } }