public void testRealLiteralExp()
        {
            AstOclModelElementFactory factory1 = AstOclModelElementFactoryManager.getInstance(umlModel.getOclPackage());
            RealLiteralExp            exp1     = factory1.createRealLiteralExp("247.49", getClassifier("Real"));

            Assert.AreEqual("247.49", exp1.ToString());
            Assert.AreEqual("Real", exp1.getType().getName());
        }
        public void testIfExp()
        {
            AstOclModelElementFactory factory1 = AstOclModelElementFactoryManager.getInstance(umlModel.getOclPackage());

            VariableDeclaration variable  = factory1.createVariableDeclaration("abc", getClassifier("Boolean"), null);
            VariableExp         condition = factory1.createVariableExp(variable);

            IntegerLiteralExp thenExp = factory1.createIntegerLiteralExp(100, getClassifier("Integer"));
            RealLiteralExp    elseExp = factory1.createRealLiteralExp("247.49", getClassifier("Real"));

            IfExp exp = factory1.createIfExp(condition, thenExp, elseExp);

            Assert.AreEqual("if abc then 100 else 247.49 endif", exp.ToString());
            Assert.AreEqual("Real", exp.getType().getName());
        }
        public void testTupleLiteralExp()
        {
            AstOclModelElementFactory factory1 = AstOclModelElementFactoryManager.getInstance(umlModel.getOclPackage());

            OclExpression       init1 = factory1.createIntegerLiteralExp(100, getClassifier("Integer"));
            VariableDeclaration part1 = factory1.createVariableDeclaration("a", getClassifier("Integer"), init1);

            OclExpression       init2 = factory1.createRealLiteralExp("100.38", getClassifier("Real"));
            VariableDeclaration part2 = factory1.createVariableDeclaration("b", getClassifier("Real"), init2);

            OclExpression       init3 = factory1.createBooleanLiteralExp(true, getClassifier("Boolean"));
            VariableDeclaration part3 = factory1.createVariableDeclaration("c", getClassifier("Boolean"), init3);

            List <object> parts = new List <object> ();

            parts.Add(part1);
            parts.Add(part2);
            parts.Add(part3);

            TupleTypeImpl tupleType = (TupleTypeImpl)factory1.createTupleType();

            tupleType.addElement("a", getClassifier("Integer"));
            tupleType.addElement("b", getClassifier("Real"));
            tupleType.addElement("c", getClassifier("Boolean"));
            Assert.AreEqual("Tuple(a : Integer, b : Real, c : Boolean)", tupleType.getName());

            //		TuplePartType part1Type = factory1.createTuplePartType(tupleType, "a", getClassifier("Integer"));
            //		TuplePartType part2Type = factory1.createTuplePartType(tupleType, "b", getClassifier("Real"));
            //		TuplePartType part3Type = factory1.createTuplePartType(tupleType, "c", getClassifier("Boolean"));

            OclExpression exp = factory1.createTupleLiteralExp(parts, tupleType);

            Assert.AreEqual("Tuple{ a : Integer = 100, b : Real = 100.38, c : Boolean = True }", exp.ToString());

            Assert.AreEqual("Tuple(a : Integer, b : Real, c : Boolean)", exp.getType().getName());

            Assert.IsNotNull(exp.getType().lookupAttribute("a"));
            Assert.IsNull(exp.getType().lookupAttribute("d"));
        }
示例#4
0
        public void testBody()
        {
            AstOclConstraintFactory   factory1 = AstOclConstraintFactoryManager.getInstance(umlModel.getOclPackage());
            AstOclModelElementFactory factory2 = AstOclModelElementFactoryManager.getInstance(umlModel.getOclPackage());

            RealLiteralExp  exp1     = factory2.createRealLiteralExp("200.50", getClassifier("Real"));
            ExpressionInOcl expInOcl = factory1.createExpressionInOcl("name", getClassifier("Film"), exp1);

            List <object> parms = new List <object>();

            parms.Add(getClassifier("Integer"));
            CoreOperation oper = getClassifier("Film").lookupOperation("getRentalFee", parms);

            OclBodyConstraint constraint = (OclBodyConstraint)factory1.createBodyConstraint("test.ocl", oper, expInOcl, null);

            Assert.AreEqual("body: 200.50", constraint.ToString());

            Assert.AreEqual(constraint, oper.getBodyDefinition());
            Assert.AreEqual(expInOcl, oper.getBodyDefinition().getExpression());

            oper.deleteAllConstraintsForSource("test.ocl");
            Assert.IsNull(oper.getBodyDefinition());
        }