package de.lynorics.eclipse.jangaroo.tests.validation; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.xtext.diagnostics.Diagnostic; import org.eclipse.xtext.junit4.InjectWith; import org.eclipse.xtext.junit4.XtextRunner; import org.eclipse.xtext.junit4.util.ParseHelper; import org.eclipse.xtext.junit4.validation.ValidationTestHelper; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import com.google.inject.Inject; import com.google.inject.Provider; import de.lynorics.eclipse.jangaroo.AS3InjectorProvider; import de.lynorics.eclipse.jangaroo.aS3.AS3Package; import de.lynorics.eclipse.jangaroo.aS3.Model; import de.lynorics.eclipse.jangaroo.validation.AS3Validator; @RunWith(XtextRunner.class) @InjectWith(AS3InjectorProvider.class) public class VarValidationTest { @Inject Provider<ResourceSet> resourceSetProvider; @Inject ParseHelper<Model> parseHelper; ValidationTestHelper validationTestHelper = new ValidationTestHelper(); @Test @Ignore("TODO") public void testParsingAndLinkingWithVars() throws Exception { Model first = parseHelper.parse("var s1 = 'foo'; var s2 = 'bar'; var s3 = s1 + s2;"); validationTestHelper.assertNoErrors(first); } @Test public void testParsingAndLinkingWithMissingVar() throws Exception { Model first = parseHelper.parse("var s1 = s2;"); validationTestHelper.assertError(first, AS3Package.eINSTANCE.getSymbolRef(), Diagnostic.LINKING_DIAGNOSTIC, "Couldn't resolve reference to EObject 's2'."); } @Test @Ignore("TODO") public void testParsingAndLinkingWithWrongVarOrder() throws Exception { Model first = parseHelper.parse("var s1 = s2; var s2 = s1;"); validationTestHelper.assertError(first, AS3Package.eINSTANCE.getClass_(), AS3Validator.FORWARD_REFERENCE, "forwardReference"); } }