package jetbrains.mps.lang.test.behavior; /*Generated by MPS */ import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.errors.MessageStatus; import jetbrains.mps.lang.test.runtime.TestsErrorsChecker; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.errors.IErrorReporter; import jetbrains.mps.lang.test.runtime.NodeCheckerUtil; import junit.framework.Assert; import jetbrains.mps.typesystem.inference.ITypechecking; import jetbrains.mps.typesystem.inference.ITypeContextOwner; import jetbrains.mps.typesystem.inference.DefaultTypecheckingContextOwner; import jetbrains.mps.typesystem.inference.TypeContextManager; public class PerformUtil { public static void checkNodeHasError(SNode operation) { checkNodeHasMessageWithStatus(operation, MessageStatus.ERROR); } public static void checkNodeHasWarning(SNode operation) { checkNodeHasMessageWithStatus(operation, MessageStatus.WARNING); } public static void checkNodeHasMessageWithStatus(SNode operation, MessageStatus messageStatus) { final SNode nodeToCheck = INodesTestMethod__BehaviorDescriptor.getAnnotatedNode_id38gbJV0XvZR.invoke(operation); TestsErrorsChecker checker = new TestsErrorsChecker(SNodeOperations.getContainingRoot(nodeToCheck)); final Iterable<IErrorReporter> errorReporters = checker.getErrorsSpecificType(nodeToCheck, messageStatus); final String errorString = "node <" + NodeCheckerUtil.nodeWithIdToString(nodeToCheck) + "> does not have expected " + messageStatus.getPresentation() + " message"; Assert.assertTrue(errorString, (boolean) IChecksRules__BehaviorDescriptor.hasExpectedRuleMessage_id4CT6QR8SJl8.invoke(operation, errorReporters, SNodeOperations.getModel(nodeToCheck).getRepository())); } public static void checkNodeWithTypeCheckingAction(final SNode node, ITypechecking.Action checkingAction) { ITypeContextOwner owner = new DefaultTypecheckingContextOwner(); SNode containingRoot = node.getContainingRoot(); TypeContextManager.getInstance().runTypeCheckingAction(owner, containingRoot, checkingAction); } }