Search in sources :

Example 1 with Main

use of org.eclipse.xtext.ui.tests.refactoring.refactoring.Main in project xtext-eclipse by eclipse.

the class RefactoringCrossReferenceSerializerTest method testSerializer.

@Test
public void testSerializer() throws Exception {
    RefactoringCrossReferenceSerializer.RefTextEvaluator evaluator = new RefactoringCrossReferenceSerializer.RefTextEvaluator() {

        @Override
        public boolean isValid(IEObjectDescription target) {
            return true;
        }

        @Override
        public boolean isBetterThan(String newText, String currentText) {
            return newText.length() < currentText.length();
        }
    };
    String model = "bar { ref foo } foo";
    String wsRelativePath = "test/test." + getCurrentFileExtension();
    IFile file = createFile(wsRelativePath, model);
    try (InputStream contents = file.getContents()) {
        Main main = (Main) getModel(contents);
        XtextResource resource = (XtextResource) main.eResource();
        resource.setURI(URI.createPlatformResourceURI(wsRelativePath, true));
        Element bar = (Element) main.getElements().get(0);
        Element foo = bar.getReferenced().get(0);
        assertEquals("foo", foo.getName());
        CrossReference crossref = GrammarUtil.containedCrossReferences(grammarAccess.getElementRule()).get(0);
        TextRegion linkTextRegion = new TextRegion(model.lastIndexOf("foo"), 3);
        String linkText = facade.getCrossRefText(bar, crossref, foo, evaluator, linkTextRegion, status);
        assertEquals(linkText, "foo");
        assertTrue(status.getRefactoringStatus().isOK());
        foo.setName("fooBar");
        resource.getCache().clear(resource);
        String linkText1 = facade.getCrossRefText(bar, crossref, foo, evaluator, linkTextRegion, status);
        assertEquals(linkText1, "fooBar");
        assertTrue(status.getRefactoringStatus().isOK());
        assertEquals(foo, ((Main) resource.getContents().get(0)).getElements().get(1));
        foo.setName("bar");
        resource.getCache().clear(resource);
        assertNull(facade.getCrossRefText(bar, crossref, foo, evaluator, linkTextRegion, status));
    }
}
Also used : RefactoringCrossReferenceSerializer(org.eclipse.xtext.ui.refactoring.impl.RefactoringCrossReferenceSerializer) IFile(org.eclipse.core.resources.IFile) TextRegion(org.eclipse.xtext.util.TextRegion) InputStream(java.io.InputStream) Element(org.eclipse.xtext.ui.tests.refactoring.refactoring.Element) CrossReference(org.eclipse.xtext.CrossReference) XtextResource(org.eclipse.xtext.resource.XtextResource) Main(org.eclipse.xtext.ui.tests.refactoring.refactoring.Main) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) Test(org.junit.Test)

Example 2 with Main

use of org.eclipse.xtext.ui.tests.refactoring.refactoring.Main in project xtext-eclipse by eclipse.

the class RefactoringTestLanguageSemanticSequencer method sequence.

@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
    EPackage epackage = semanticObject.eClass().getEPackage();
    ParserRule rule = context.getParserRule();
    Action action = context.getAssignedAction();
    Set<Parameter> parameters = context.getEnabledBooleanParameters();
    if (epackage == RefactoringPackage.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case RefactoringPackage.ELEMENT:
                sequence_Element(context, (Element) semanticObject);
                return;
            case RefactoringPackage.IMPORT:
                sequence_Import(context, (Import) semanticObject);
                return;
            case RefactoringPackage.MAIN:
                sequence_Main(context, (Main) semanticObject);
                return;
        }
    if (errorAcceptor != null)
        errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Also used : ParserRule(org.eclipse.xtext.ParserRule) Action(org.eclipse.xtext.Action) Import(org.eclipse.xtext.ui.tests.refactoring.refactoring.Import) Element(org.eclipse.xtext.ui.tests.refactoring.refactoring.Element) Parameter(org.eclipse.xtext.Parameter) Main(org.eclipse.xtext.ui.tests.refactoring.refactoring.Main) EPackage(org.eclipse.emf.ecore.EPackage)

Aggregations

Element (org.eclipse.xtext.ui.tests.refactoring.refactoring.Element)2 Main (org.eclipse.xtext.ui.tests.refactoring.refactoring.Main)2 InputStream (java.io.InputStream)1 IFile (org.eclipse.core.resources.IFile)1 EPackage (org.eclipse.emf.ecore.EPackage)1 Action (org.eclipse.xtext.Action)1 CrossReference (org.eclipse.xtext.CrossReference)1 Parameter (org.eclipse.xtext.Parameter)1 ParserRule (org.eclipse.xtext.ParserRule)1 IEObjectDescription (org.eclipse.xtext.resource.IEObjectDescription)1 XtextResource (org.eclipse.xtext.resource.XtextResource)1 RefactoringCrossReferenceSerializer (org.eclipse.xtext.ui.refactoring.impl.RefactoringCrossReferenceSerializer)1 Import (org.eclipse.xtext.ui.tests.refactoring.refactoring.Import)1 TextRegion (org.eclipse.xtext.util.TextRegion)1 Test (org.junit.Test)1