/*******************************************************************************
* Copyright (c) 2010 SAP AG.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Emil Simeonov - initial API and implementation.
* Dimitar Donchev - initial API and implementation.
* Dimitar Tenev - initial API and implementation.
* Nevena Manova - initial API and implementation.
* Georgi Konstantinov - initial API and implementation.
*******************************************************************************/
package org.eclipse.wst.sse.sieditor.test.ui.v2.dt.nodes.labels;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.wst.sse.sieditor.ui.v2.dt.nodes.labels.DTTreeNodeLabelsProviderFactory;
import org.eclipse.wst.sse.sieditor.test.util.ResourceUtils;
import org.eclipse.wst.sse.sieditor.test.util.SIEditorBaseTest;
import org.junit.Before;
import org.junit.Test;
import org.eclipse.wst.sse.sieditor.model.api.IXSDModelRoot;
import org.eclipse.wst.sse.sieditor.model.xsd.api.IElement;
import org.eclipse.wst.sse.sieditor.model.xsd.api.ISchema;
import org.eclipse.wst.sse.sieditor.model.xsd.api.IStructureType;
public class DataTypesTreeNodesLabelsPovider_BrokenElements_Test extends SIEditorBaseTest {
private IXSDModelRoot modelRoot;
private IStructureType globalElementWithComplexContent;
private IStructureType globalElementWithComplexType;
private IStructureType globalElementWithSimpleType;
private IStructureType complexTypeComplexContent;
private IElement elementReference;
private final DTTreeNodeLabelsProviderFactory factory = DTTreeNodeLabelsProviderFactory.instance();
@Override
@Before
public void setUp() throws Exception {
super.setUp();
if (modelRoot == null) {
final IFile fileForAllValidLabels = ResourceUtils.copyFileIntoTestProject("pub/csns/labels/labels_with_errors.xsd",
Document_FOLDER_NAME, this.getProject(), "labels_with_errors.xsd");
getProject().refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
modelRoot = getXSDModelRoot(fileForAllValidLabels);
}
final ISchema schema = modelRoot.getSchema();
globalElementWithComplexContent = (IStructureType) schema.getType(true, "GlobalElementComplexContent");
complexTypeComplexContent = (IStructureType) schema.getType(false, "ComplexTypeComplexContent");
globalElementWithComplexType = (IStructureType) schema.getType(true, "Element4");
globalElementWithSimpleType = (IStructureType) schema.getType(true, "Element5");
elementReference = (IElement) complexTypeComplexContent.getElements("GlobalElementSimpleContent").toArray()[0];
}
@Test
public void testCheckLabels() {
assertEquals("Element5 : SimpleType3", factory.getLabelsProvider(globalElementWithSimpleType).getTreeDisplayText());
assertEquals("SimpleType3", factory.getLabelsProvider(globalElementWithSimpleType).getTypeDisplayText());
assertEquals("Element4 : ClassicComplexType", factory.getLabelsProvider(globalElementWithComplexType)
.getTreeDisplayText());
assertEquals("ClassicComplexType", factory.getLabelsProvider(globalElementWithComplexType).getTypeDisplayText());
assertEquals("GlobalElementComplexContent : ClassicComplexType", factory.getLabelsProvider(globalElementWithComplexContent)
.getTreeDisplayText());
assertEquals("ClassicComplexType", factory.getLabelsProvider(globalElementWithComplexContent).getTypeDisplayText());
assertEquals("GlobalElementSimpleContent : <Unresolved Type>", factory.getLabelsProvider(elementReference)
.getTreeDisplayText());
assertEquals("<Unresolved Type>", factory.getLabelsProvider(elementReference).getTypeDisplayText());
}
}