Search in sources :

Example 11 with Type

use of org.eclipse.xtext.linking.langATestLanguage.Type in project xtext-core by eclipse.

the class CrossRefTest method testNonDefaultLinkText.

/* see https://bugs.eclipse.org/bugs/show_bug.cgi?id=287813 */
@Test
public void testNonDefaultLinkText() throws Exception {
    XtextResource r = getResourceFromString("type TypeA extends ^TypeB type TypeB");
    Main model = (Main) r.getContents().get(0);
    assertEquals(2, model.getTypes().size());
    Type type = model.getTypes().get(0);
    assertEquals("TypeA", type.getName());
    Type superType = type.getExtends();
    assertEquals("TypeB", superType.getName());
    INode node = getCrossReferenceNode(type, GrammarUtil.getReference(grammar.getTypeAccess().getExtendsTypeCrossReference_2_1_0()), superType);
    String linkText = crossRefSerializer.serializeCrossRef(type, grammar.getTypeAccess().getExtendsTypeCrossReference_2_1_0(), superType, node);
    assertTrue(ITokenSerializer.KEEP_VALUE_FROM_NODE_MODEL == linkText);
}
Also used : Type(org.eclipse.xtext.linking.langATestLanguage.Type) INode(org.eclipse.xtext.nodemodel.INode) XtextResource(org.eclipse.xtext.resource.XtextResource) Main(org.eclipse.xtext.linking.langATestLanguage.Main) Test(org.junit.Test)

Example 12 with Type

use of org.eclipse.xtext.linking.langATestLanguage.Type in project xtext-core by eclipse.

the class CrossRefTest method testSerializingProxiedCrossReference.

/* see https://bugs.eclipse.org/bugs/show_bug.cgi?id=325435 */
@Test
public void testSerializingProxiedCrossReference() throws Exception {
    XtextResource r = getResourceFromString("type TypeA extends ^TypeB type TypeB ");
    Main model = (Main) r.getContents().get(0);
    Type type = model.getTypes().get(0);
    Type superType = type.getExtends();
    CrossRefLinkingService linkingService = (CrossRefLinkingService) get(ILinkingService.class);
    InternalEObject typeProxy = (InternalEObject) LangATestLanguageFactory.eINSTANCE.createType();
    typeProxy.eSetProxyURI(EcoreUtil.getURI(superType));
    linkingService.returnOnceForGetLinkedObjects(typeProxy);
    INode node = getCrossReferenceNode(type, GrammarUtil.getReference(grammar.getTypeAccess().getExtendsTypeCrossReference_2_1_0()), superType);
    String linkText = crossRefSerializer.serializeCrossRef(type, grammar.getTypeAccess().getExtendsTypeCrossReference_2_1_0(), superType, node);
    assertEquals(ITokenSerializer.KEEP_VALUE_FROM_NODE_MODEL, linkText);
}
Also used : Type(org.eclipse.xtext.linking.langATestLanguage.Type) INode(org.eclipse.xtext.nodemodel.INode) XtextResource(org.eclipse.xtext.resource.XtextResource) Main(org.eclipse.xtext.linking.langATestLanguage.Main) InternalEObject(org.eclipse.emf.ecore.InternalEObject) Test(org.junit.Test)

Aggregations

Type (org.eclipse.xtext.linking.langATestLanguage.Type)12 Main (org.eclipse.xtext.linking.langATestLanguage.Main)9 Test (org.junit.Test)7 XtextResource (org.eclipse.xtext.resource.XtextResource)6 INode (org.eclipse.xtext.nodemodel.INode)4 Adapter (org.eclipse.emf.common.notify.Adapter)2 Resource (org.eclipse.emf.ecore.resource.Resource)2 XtextResourceSet (org.eclipse.xtext.resource.XtextResourceSet)2 BasicDiagnostic (org.eclipse.emf.common.util.BasicDiagnostic)1 DiagnosticChain (org.eclipse.emf.common.util.DiagnosticChain)1 URI (org.eclipse.emf.common.util.URI)1 EClass (org.eclipse.emf.ecore.EClass)1 EDataType (org.eclipse.emf.ecore.EDataType)1 EObject (org.eclipse.emf.ecore.EObject)1 EPackage (org.eclipse.emf.ecore.EPackage)1 EValidator (org.eclipse.emf.ecore.EValidator)1 InternalEObject (org.eclipse.emf.ecore.InternalEObject)1 ENotificationImpl (org.eclipse.emf.ecore.impl.ENotificationImpl)1 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)1 Action (org.eclipse.xtext.Action)1