package jetbrains.mps.testbench.junit.suites; /*Generated by MPS */ import org.junit.ClassRule; import jetbrains.mps.testbench.PerformanceMessenger; import org.jetbrains.mps.openapi.module.SModule; import org.junit.Test; import java.util.List; import jetbrains.mps.smodel.ModelAccessHelper; import jetbrains.mps.util.Computable; import java.util.Collection; import org.jetbrains.mps.openapi.model.SModel; import jetbrains.mps.checkers.AbstractConstraintsCheckerRootCheckerAdapter; import jetbrains.mps.checkers.ConstraintsChecker; import jetbrains.mps.checkers.RefScopeChecker; import jetbrains.mps.checkers.TargetConceptChecker; import org.junit.Assert; public class AuditConstraints extends BaseCheckModulesTest { @ClassRule public static final PerformanceMessenger ourStats = new PerformanceMessenger("auditConstraints"); public AuditConstraints(SModule module) { super(module); } @Test public void checkConstraints() { final CheckingTestStatistic statistic = new CheckingTestStatistic(); List<String> errors = new ModelAccessHelper(BaseCheckModulesTest.getContextProject().getModelAccess()).runReadAction(new Computable<List<String>>() { public List<String> compute() { Collection<SModel> models = new ModelsExtractor(myModule, true).getModels(); // todo: add UsedLanguageChecker return new CheckingTestsUtil(statistic).applyChecker(new AbstractConstraintsCheckerRootCheckerAdapter(AbstractConstraintsCheckerRootCheckerAdapter.SKIP_CONSTRAINTS_CONDITION, new ConstraintsChecker(), new RefScopeChecker(), new TargetConceptChecker()), models); } }); ourStats.report("Errors", statistic.getNumErrors()); ourStats.report("Warnings", statistic.getNumWarnings()); Assert.assertTrue("Constraints and scopes errors:\n" + CheckingTestsUtil.formatErrors(errors), errors.isEmpty()); } }