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