public void test_IteratorExp_checkCollectType() { EClassifier set = getOCLStandardLibrary().getSet(); EClassifier orderedSet = getOCLStandardLibrary().getOrderedSet(); EClassifier sequence = getOCLStandardLibrary().getSequence(); EClassifier bag = getOCLStandardLibrary().getBag(); List<EClassifier[]> badPairs = new java.util.ArrayList<EClassifier[]>(); badPairs.add(new EClassifier[] {set, sequence}); badPairs.add(new EClassifier[] {bag, sequence}); badPairs.add(new EClassifier[] {sequence, bag}); badPairs.add(new EClassifier[] {sequence, set}); badPairs.add(new EClassifier[] {orderedSet, bag}); List<EClassifier[]> goodPairs = new java.util.ArrayList<EClassifier[]>(); goodPairs.add(new EClassifier[] {set, bag}); goodPairs.add(new EClassifier[] {bag, bag}); goodPairs.add(new EClassifier[] {sequence, sequence}); goodPairs.add(new EClassifier[] {orderedSet, sequence}); IteratorExp i = factory.createIteratorExp(); i.setName("collect"); OCLExpression source = factory.createBooleanLiteralExp(); i.setSource(source); for (EClassifier[] pair : badPairs) { source.setType(pair[0]); i.setType(pair[1]); assertProblem(i, ExpressionsValidator.ITERATOR_EXP__COLLECT_TYPE); } for (EClassifier[] pair : goodPairs) { source.setType(pair[0]); i.setType(pair[1]); assertOK(i, ExpressionsValidator.ITERATOR_EXP__COLLECT_TYPE); } }
public void test_IteratorExp_checkBooleanType() { IteratorExp i = factory.createIteratorExp(); i.setType(apple); i.setName("select"); assertOK(i, ExpressionsValidator.ITERATOR_EXP__BOOLEAN_TYPE); for (String name : Arrays.asList("forAll", "exists", "isUnique")) { i.setName(name); assertProblem(i, ExpressionsValidator.ITERATOR_EXP__BOOLEAN_TYPE); } i.setType(getOCLStandardLibrary().getBoolean()); for (String name : Arrays.asList("forAll", "exists", "isUnique")) { i.setName(name); assertOK(i, ExpressionsValidator.ITERATOR_EXP__BOOLEAN_TYPE); } }
public void test_IteratorExp_checkSelectRejectType() { IteratorExp i = factory.createIteratorExp(); i.setType(getOCLStandardLibrary().getSet()); OCLExpression source = factory.createBooleanLiteralExp(); source.setType(getOCLStandardLibrary().getBag()); i.setSource(source); for (String name : Arrays.asList("select", "reject")) { i.setName(name); assertProblem(i, ExpressionsValidator.ITERATOR_EXP__SELECT_REJECT_TYPE); } i.setType(getOCLStandardLibrary().getBag()); for (String name : Arrays.asList("select", "reject")) { i.setName(name); assertOK(i, ExpressionsValidator.ITERATOR_EXP__SELECT_REJECT_TYPE); } }
public void test_IteratorExp_checkBooleanBodyType() { List<String> names = Arrays.asList("select", "reject", "forAll", "exists", "any", "one"); IteratorExp i = factory.createIteratorExp(); i.setType(getOCLStandardLibrary().getSet()); OCLExpression body = factory.createBooleanLiteralExp(); body.setType(getOCLStandardLibrary().getBag()); i.setBody(body); i.setName("collect"); assertOK(i, ExpressionsValidator.ITERATOR_EXP__BOOLEAN_BODY_TYPE); for (String name : names) { i.setName(name); assertProblem(i, ExpressionsValidator.ITERATOR_EXP__BOOLEAN_BODY_TYPE); } body.setType(getOCLStandardLibrary().getBoolean()); for (String name : names) { i.setName(name); assertOK(i, ExpressionsValidator.ITERATOR_EXP__BOOLEAN_BODY_TYPE); } }