@Test
 public void test_cg_implies_calls() throws ParserException {
   TestOCL ocl = createOCL();
   StandardLibrary standardLibrary = ocl.getStandardLibrary();
   ExpressionInOCL query = ocl.createQuery(standardLibrary.getOclVoidType(), "self->any(true)");
   String textQuery =
       "name = 'closure' implies\n" + "type.oclAsType(CollectionType).elementType = null";
   ocl.assertQueryTrue(query.getOwnedBody(), textQuery);
   ocl.dispose();
 }
 @Test
 public void test_cg_caught_if() throws ParserException {
   TestOCL ocl = createOCL();
   StandardLibrary standardLibrary = ocl.getStandardLibrary();
   ExpressionInOCL query = ocl.createQuery(standardLibrary.getOclVoidType(), "self->any(true)");
   String textQuery =
       "name = 'closure' implies\n"
           + "if self.ownedSource?.type.oclIsKindOf(SequenceType) or self.ownedSource?.type.oclIsKindOf(OrderedSetType)"
           + "then self.type.oclIsKindOf(OrderedSetType) else self.type.oclIsKindOf(SetType) endif";
   ocl.assertQueryTrue(query.getOwnedBody(), textQuery);
   ocl.dispose();
 }
 @Override
 public String toString() {
   OCLExpression bodyExpression = specification.getOwnedBody();
   if (bodyExpression != null) {
     return "<"
         + delegateDomain.getURI()
         + ":query> "
         + bodyExpression; //$NON-NLS-1$ //$NON-NLS-2$
   } else {
     return "<"
         + delegateDomain.getURI()
         + ":query> "
         + specification.getBody(); // $NON-NLS-1$ //$NON-NLS-2$
   }
 }
 @Test
 public void test_self_scope() {
   TestOCL ocl = createOCL();
   ExpressionInOCL query = ocl.assertQuery(null, "Sequence{1}");
   CollectionLiteralExp coll = (CollectionLiteralExp) query.getOwnedBody();
   CollectionItem item = (CollectionItem) coll.getOwnedParts().get(0);
   ocl.assertQueryTrue(item, "type = ownedItem.type");
   //		ocl.assertQueryInvalid(null, "type = item.type");		// A2.2 def'n of invalid = invalid
   ocl.assertQueryInvalid(
       null,
       "let item : CollectionItem = null in item.type = item"); // A2.2 def'n of invalid = invalid
   ocl.assertQueryInvalid(
       null,
       "let item : CollectionItem = invalid in item.type = item"); // A2.2 def'n of invalid =
                                                                   // invalid
   ocl.dispose();
 }