Search in sources :

Example 76 with Issue

use of org.eclipse.xtext.validation.Issue in project xtext-core by eclipse.

the class XtextValidationTest method testSupressedWarning_01.

@Test
public void testSupressedWarning_01() throws Exception {
    XtextResource resource = getResourceFromString("grammar org.acme.Bar with org.eclipse.xtext.common.Terminals\n" + "generate metamodel 'myURI'\n" + "Model: child=Child;\n" + "/* SuppressWarnings[noInstantiation] */\n" + "Child: name=ID?;");
    assertTrue(resource.getErrors().toString(), resource.getErrors().isEmpty());
    assertTrue(resource.getWarnings().toString(), resource.getWarnings().isEmpty());
    IResourceValidator validator = get(IResourceValidator.class);
    List<Issue> issues = validator.validate(resource, CheckMode.FAST_ONLY, CancelIndicator.NullImpl);
    assertTrue(issues.toString(), issues.isEmpty());
}
Also used : Issue(org.eclipse.xtext.validation.Issue) IResourceValidator(org.eclipse.xtext.validation.IResourceValidator) XtextResource(org.eclipse.xtext.resource.XtextResource) Test(org.junit.Test)

Example 77 with Issue

use of org.eclipse.xtext.validation.Issue in project xtext-xtend by eclipse.

the class AbstractXtendTestCase method files.

protected Iterable<XtendFile> files(boolean validate, String... contents) throws Exception {
    XtextResourceSet set = getResourceSet();
    List<XtendFile> result = newArrayList();
    for (String string : contents) {
        String fileName = getFileName(string);
        Resource resource = set.createResource(URI.createURI(fileName + ".xtend"));
        resource.load(new StringInputStream(string), null);
        assertEquals(resource.getErrors().toString(), 0, resource.getErrors().size());
    }
    for (Resource resource : new ArrayList<Resource>(set.getResources())) {
        XtendFile file = (XtendFile) resource.getContents().get(0);
        result.add(file);
    }
    if (validate) {
        for (XtendFile file : result) {
            List<Issue> issues = ((XtextResource) file.eResource()).getResourceServiceProvider().getResourceValidator().validate(file.eResource(), CheckMode.ALL, CancelIndicator.NullImpl);
            assertTrue("Resource contained errors : " + issues.toString(), issues.isEmpty());
        }
    }
    return result;
}
Also used : XtendFile(org.eclipse.xtend.core.xtend.XtendFile) StringInputStream(org.eclipse.xtext.util.StringInputStream) LazyStringInputStream(org.eclipse.xtext.util.LazyStringInputStream) Issue(org.eclipse.xtext.validation.Issue) XtextResourceSet(org.eclipse.xtext.resource.XtextResourceSet) XtextResource(org.eclipse.xtext.resource.XtextResource) Resource(org.eclipse.emf.ecore.resource.Resource) ArrayList(java.util.ArrayList) XtextResource(org.eclipse.xtext.resource.XtextResource)

Example 78 with Issue

use of org.eclipse.xtext.validation.Issue in project xtext-xtend by eclipse.

the class XtendValidationTest method testRawTypeOnField_02.

@Test
public void testRawTypeOnField_02() throws Exception {
    String fileAsText = "class Foo { public val x = typeof(java.util.Map) }";
    XtendFile file = file(fileAsText);
    helper.assertWarning(file, XTEND_FIELD, RAW_TYPE, "The inferred field type Class<Map> uses the raw type Map. References to generic type Map<K, V> should be parameterized");
    List<Issue> issues = helper.validate(file);
    assertEquals(1, issues.size());
    assertEquals(fileAsText.indexOf('x'), issues.get(0).getOffset().intValue());
    assertEquals(1, issues.get(0).getLength().intValue());
}
Also used : XtendFile(org.eclipse.xtend.core.xtend.XtendFile) Issue(org.eclipse.xtext.validation.Issue) Test(org.junit.Test)

Example 79 with Issue

use of org.eclipse.xtext.validation.Issue in project xtext-xtend by eclipse.

the class AbstractXtendTestCase method file.

protected XtendFile file(String string, boolean validate, boolean shouldBeSyntacticallyValid) throws Exception {
    XtextResourceSet set = getResourceSet();
    String fileName = getFileName(string);
    Resource resource = set.createResource(URI.createURI(fileName + ".xtend"));
    resource.load(new StringInputStream(string, StandardCharsets.ISO_8859_1.name()), Collections.singletonMap(XtextResource.OPTION_ENCODING, StandardCharsets.ISO_8859_1.name()));
    if (shouldBeSyntacticallyValid) {
        assertEquals(resource.getErrors().toString(), 0, resource.getErrors().size());
    }
    if (validate) {
        List<Issue> issues = Lists.newArrayList(Iterables.filter(((XtextResource) resource).getResourceServiceProvider().getResourceValidator().validate(resource, CheckMode.ALL, CancelIndicator.NullImpl), new Predicate<Issue>() {

            @Override
            public boolean apply(Issue issue) {
                return issue.getSeverity() == Severity.ERROR;
            }
        }));
        assertTrue("Resource contained errors : " + issues.toString(), issues.isEmpty());
    }
    XtendFile file = (XtendFile) resource.getContents().get(0);
    return file;
}
Also used : XtendFile(org.eclipse.xtend.core.xtend.XtendFile) StringInputStream(org.eclipse.xtext.util.StringInputStream) Issue(org.eclipse.xtext.validation.Issue) XtextResourceSet(org.eclipse.xtext.resource.XtextResourceSet) XtextResource(org.eclipse.xtext.resource.XtextResource) Resource(org.eclipse.emf.ecore.resource.Resource) XtextResource(org.eclipse.xtext.resource.XtextResource) Predicate(com.google.common.base.Predicate)

Example 80 with Issue

use of org.eclipse.xtext.validation.Issue in project xtext-xtend by eclipse.

the class SmokeTest method checkNoErrorsInValidator.

protected void checkNoErrorsInValidator(final String model, LazyLinkingResource resource) {
    ResourceValidatorImpl validator = resourceValidatorProvider.get();
    assertNotSame(validator, resource.getResourceServiceProvider().getResourceValidator());
    validator.setDiagnosticConverter(new IDiagnosticConverter() {

        @Override
        public void convertValidatorDiagnostic(org.eclipse.emf.common.util.Diagnostic diagnostic, IAcceptor<Issue> acceptor) {
            if (diagnostic instanceof BasicDiagnostic) {
                List<?> data = diagnostic.getData();
                if (!data.isEmpty() && data.get(0) instanceof Throwable) {
                    Throwable t = (Throwable) data.get(0);
                    throwError(t);
                }
                if (EObjectValidator.DIAGNOSTIC_SOURCE.equals(diagnostic.getSource()) && diagnostic.getCode() == EObjectValidator.EOBJECT__EVERY_REFERENCE_IS_CONTAINED) {
                    throwError(new RuntimeException("Dangling reference found."));
                }
            }
        }

        private void throwError(Throwable e) {
            ComparisonFailure result = new ComparisonFailure(e.getMessage(), model, "");
            result.setStackTrace(e.getStackTrace());
            throw result;
        }

        @Override
        public void convertResourceDiagnostic(Diagnostic diagnostic, Severity severity, IAcceptor<Issue> acceptor) {
            if (diagnostic instanceof ExceptionDiagnostic) {
                Exception e = ((ExceptionDiagnostic) diagnostic).getException();
                throwError(e);
            }
        }
    });
    validator.validate(resource, CheckMode.ALL, CancelIndicator.NullImpl);
}
Also used : Issue(org.eclipse.xtext.validation.Issue) BasicDiagnostic(org.eclipse.emf.common.util.BasicDiagnostic) BasicDiagnostic(org.eclipse.emf.common.util.BasicDiagnostic) Diagnostic(org.eclipse.emf.ecore.resource.Resource.Diagnostic) ExceptionDiagnostic(org.eclipse.xtext.diagnostics.ExceptionDiagnostic) Severity(org.eclipse.xtext.diagnostics.Severity) IOException(java.io.IOException) ResourceValidatorImpl(org.eclipse.xtext.validation.ResourceValidatorImpl) IDiagnosticConverter(org.eclipse.xtext.validation.IDiagnosticConverter) ComparisonFailure(org.junit.ComparisonFailure) ExceptionDiagnostic(org.eclipse.xtext.diagnostics.ExceptionDiagnostic) List(java.util.List)

Aggregations

Issue (org.eclipse.xtext.validation.Issue)108 Test (org.junit.Test)40 XtextResource (org.eclipse.xtext.resource.XtextResource)35 Resource (org.eclipse.emf.ecore.resource.Resource)23 List (java.util.List)20 IResourceValidator (org.eclipse.xtext.validation.IResourceValidator)20 URI (org.eclipse.emf.common.util.URI)16 ArrayList (java.util.ArrayList)12 XtextResourceSet (org.eclipse.xtext.resource.XtextResourceSet)12 IFile (org.eclipse.core.resources.IFile)11 XtendFile (org.eclipse.xtend.core.xtend.XtendFile)11 IXtextDocument (org.eclipse.xtext.ui.editor.model.IXtextDocument)11 IssueResolution (org.eclipse.xtext.ui.editor.quickfix.IssueResolution)11 XtextEditor (org.eclipse.xtext.ui.editor.XtextEditor)10 Severity (org.eclipse.xtext.diagnostics.Severity)9 IOException (java.io.IOException)8 CoreException (org.eclipse.core.runtime.CoreException)8 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)8 StringInputStream (org.eclipse.xtext.util.StringInputStream)8 EObject (org.eclipse.emf.ecore.EObject)6