package org.dresdenocl.metrics.test.constraintmetric; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.Map; import org.dresdenocl.metrics.OclMetrics; import org.dresdenocl.metrics.metric.ConstraintMetric; import org.dresdenocl.metrics.test.AbstractMetricTest; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.dresdenocl.language.ocl.resource.ocl.Ocl22Parser; import org.dresdenocl.pivotmodel.Constraint; /** * Contains test cases for {@link OclMetrics}. * * @author Claas Wilke * */ public class TestPropertyCallExpMetric extends AbstractMetricTest { @BeforeClass public static void setUp() throws Exception { AbstractMetricTest.setUp(); } @AfterClass public static void tearDown() { AbstractMetricTest.tearDown(); } @Test public void testConstraintMetric01() throws Exception { constraintsUnderTest = Ocl22Parser.INSTANCE.parseOclString( "context Type1 inv: prop1", modelUnderTest); Constraint constraint = constraintsUnderTest.get(0); ConstraintMetric metric = OclMetrics.computeMetric(constraint); assertNotNull(metric); assertEquals(constraint, metric.getReferredConstraint()); assertEquals(2, metric.getExpressionCount()); assertEquals(2, metric.getExpressionDepth()); assertEquals(0, metric.getNumberOfIfExpressions()); assertEquals(0, metric.getNumberOfLetExpressions()); assertNull(metric.getCalledOperations()); assertNull(metric.getUsedLiterals()); assertNull(metric.getUsedIterators()); Map<String, Integer> calledProperties = metric.getCalledProperties(); assertEquals(1, calledProperties.size()); assertTrue(calledProperties.containsKey("root::pack1::Type1::prop1")); assertEquals(new Integer(1), calledProperties.get("root::pack1::Type1::prop1")); } @Test public void testConstraintMetric02() throws Exception { constraintsUnderTest = Ocl22Parser.INSTANCE.parseOclString( "context Type1 inv: self.prop1", modelUnderTest); Constraint constraint = constraintsUnderTest.get(0); ConstraintMetric metric = OclMetrics.computeMetric(constraint); assertNotNull(metric); assertEquals(constraint, metric.getReferredConstraint()); assertEquals(2, metric.getExpressionCount()); assertEquals(2, metric.getExpressionDepth()); assertEquals(0, metric.getNumberOfIfExpressions()); assertEquals(0, metric.getNumberOfLetExpressions()); assertNull(metric.getCalledOperations()); assertNull(metric.getUsedLiterals()); assertNull(metric.getUsedIterators()); Map<String, Integer> calledProperties = metric.getCalledProperties(); assertEquals(1, calledProperties.size()); assertTrue(calledProperties.containsKey("root::pack1::Type1::prop1")); assertEquals(new Integer(1), calledProperties.get("root::pack1::Type1::prop1")); } }