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));
}
}
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));
}
Aggregations