blob: 65641fbfbbfaf758961b5b7d5bd4d30a46c70f61 [file] [log] [blame]
package org.eclipse.wst.sse.sieditor.search.ui.actions;
import org.eclipse.core.resources.IFile;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.wst.sse.sieditor.model.api.IModelObject;
import org.eclipse.wst.sse.sieditor.model.api.IWsdlModelRoot;
import org.eclipse.wst.sse.sieditor.model.impl.WSDLFactory;
import org.eclipse.wst.sse.sieditor.model.wsdl.api.IDescription;
import org.eclipse.wst.sse.sieditor.model.xsd.api.ISchema;
import org.eclipse.wst.sse.sieditor.search.ui.tree.FileNode;
import org.eclipse.wst.sse.sieditor.test.util.ProjectBasedTest;
import org.eclipse.wst.sse.sieditor.test.util.ResourceUtils;
import org.eclipse.wst.sse.sieditor.test.util.SIEditorBaseTest;
import org.eclipse.wst.sse.sieditor.ui.DataTypesEditor;
import org.eclipse.wst.sse.sieditor.ui.ServiceInterfaceEditor;
import org.eclipse.wst.sse.sieditor.ui.v2.nodes.ITreeNode;
import org.eclipse.wst.wsdl.Definition;
import org.eclipse.wst.wsdl.util.WSDLResourceImpl;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.Mockito;
@SuppressWarnings("nls")
public class OpenInEditorActionTest extends ProjectBasedTest {
private IFile copiedFileIntoTestProject;
@BeforeClass
public void setUp() throws Exception {
super.setUp();
copiedFileIntoTestProject = ResourceUtils.copyFileIntoTestProject("pub/simple/NewWSDLFileCyclingTypes.wsdl",
SIEditorBaseTest.Document_FOLDER_NAME, this.getProject(), "ECC_CUSTOMER002QR.wsdl");
setDeleteProjectOnTearDown();
}
@Test
public void testGetFileFromTreeNode() {
OpenInEditorActionMock openInEditorActionMock = new OpenInEditorActionMock(Mockito.mock(ISelection.class));
FileNode fileNode = new FileNode(copiedFileIntoTestProject, Mockito.mock(ITreeNode.class), false);
Assert.assertEquals(copiedFileIntoTestProject, openInEditorActionMock.getFileFromTreeNode(fileNode));
ResourceSet resourceSet = new ResourceSetImpl();
WSDLResourceImpl resource = (WSDLResourceImpl) resourceSet.getResource(
URI.createFileURI(copiedFileIntoTestProject.getLocation().toFile().getAbsolutePath()), true);
Definition definition = resource.getDefinition();
IWsdlModelRoot modelRoot = WSDLFactory.getInstance().createWSDLModelRoot(definition);
ITreeNode treeNode = Mockito.mock(ITreeNode.class);
Mockito.when(treeNode.getModelObject()).thenReturn(modelRoot.getModelObject());
Assert.assertEquals(copiedFileIntoTestProject, openInEditorActionMock.getFileFromTreeNode(treeNode));
}
@Test
public void testGetEditorId() {
OpenInEditorActionMock openInEditorActionMock = new OpenInEditorActionMock(Mockito.mock(ISelection.class));
FileNode treeNode = Mockito.mock(FileNode.class);
Mockito.when(treeNode.isXsdFile()).thenReturn(false);
String editorId = openInEditorActionMock.getEditorId(treeNode);
Assert.assertEquals(ServiceInterfaceEditor.EDITOR_ID, editorId);
Mockito.when(treeNode.isXsdFile()).thenReturn(true);
editorId = openInEditorActionMock.getEditorId(treeNode);
Assert.assertEquals(DataTypesEditor.EDITOR_ID, editorId);
IModelObject modelObject = Mockito.mock(IModelObject.class);
Mockito.when(modelObject.getRoot()).thenReturn(Mockito.mock(ISchema.class));
ITreeNode treeNode2 = Mockito.mock(ITreeNode.class);
Mockito.when(treeNode2.getModelObject()).thenReturn(modelObject);
editorId = openInEditorActionMock.getEditorId(treeNode2);
Assert.assertEquals(DataTypesEditor.EDITOR_ID, editorId);
Mockito.when(modelObject.getRoot()).thenReturn(Mockito.mock(IDescription.class));
editorId = openInEditorActionMock.getEditorId(treeNode2);
Assert.assertEquals(ServiceInterfaceEditor.EDITOR_ID, editorId);
}
@Test
public void testGetText() {
Assert.assertNotNull(new OpenInEditorAction(Mockito.mock(ISelection.class)).getText());
}
@Override
protected String getProjectName() {
return "OpenInEditorActionTest";
}
private class OpenInEditorActionMock extends OpenInEditorAction {
public OpenInEditorActionMock(ISelection selection) {
super(selection);
}
@Override
protected String getEditorId(ITreeNode treeNode) {
return super.getEditorId(treeNode);
}
@Override
protected IFile getFileFromTreeNode(ITreeNode selectedTreeNode) {
return super.getFileFromTreeNode(selectedTreeNode);
}
}
}