diff options
author | gkonstantinov | 2013-08-23 21:14:33 +0000 |
---|---|---|
committer | gkonstantinov | 2013-08-23 21:14:33 +0000 |
commit | 52a757ffd745c4ab9bfe686fc413530e3bb87ca5 (patch) | |
tree | dbc4893b3b171ab64569568ba4bf5b545271018a | |
parent | 28cefffe613ecf4cb18fd69a72c5a410da7548e5 (diff) | |
download | org.eclipse.webtools.incubator.sieditor-52a757ffd745c4ab9bfe686fc413530e3bb87ca5.tar.gz org.eclipse.webtools.incubator.sieditor-52a757ffd745c4ab9bfe686fc413530e3bb87ca5.tar.xz org.eclipse.webtools.incubator.sieditor-52a757ffd745c4ab9bfe686fc413530e3bb87ca5.zip |
ClipboardServiceTest
2 files changed, 124 insertions, 0 deletions
diff --git a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java index a91c1a0..c41dd54 100644 --- a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java +++ b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java @@ -59,6 +59,7 @@ import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.StandaloneDtEditorPageNSReadOn import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.StructureNodeDetailsPageTest;
import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.TestElementNodeDetailsPage;
import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.TestTypeNullNameAttribute;
+import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.clipboard.ClipboardServiceTest;
import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.dnd.SiEditorTransferTest;
import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.dnd.TreeViewerDropAdapterTest;
import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.extract.ExtractNamespaceWizardTest;
@@ -284,6 +285,7 @@ import org.junit.runners.Suite.SuiteClasses; PageChangedListenersManagerTest.class,
SiEditorTransferTest.class,
TreeViewerDropAdapterTest.class,
+ ClipboardServiceTest.class,
})
public class UITestsSuite {
diff --git a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/dt/clipboard/ClipboardServiceTest.java b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/dt/clipboard/ClipboardServiceTest.java new file mode 100644 index 0000000..c212576 --- /dev/null +++ b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/dt/clipboard/ClipboardServiceTest.java @@ -0,0 +1,122 @@ +package org.eclipse.wst.sse.sieditor.test.ui.v2.dt.clipboard; + +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.swt.dnd.Clipboard; +import org.eclipse.swt.dnd.TextTransfer; +import org.eclipse.swt.widgets.Display; +import org.eclipse.wst.sse.sieditor.model.api.IWsdlModelRoot; +import org.eclipse.wst.sse.sieditor.model.api.IXSDModelRoot; +import org.eclipse.wst.sse.sieditor.model.impl.WSDLFactory; +import org.eclipse.wst.sse.sieditor.model.impl.XSDFactory; +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.model.xsd.api.IType; +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.v2.dt.clipboard.ClipboardService; +import org.eclipse.wst.sse.sieditor.ui.v2.dt.nodes.IDataTypesTreeNode; +import org.eclipse.wst.wsdl.Definition; +import org.eclipse.wst.wsdl.util.WSDLResourceImpl; +import org.eclipse.xsd.XSDSchema; +import org.eclipse.xsd.util.XSDResourceImpl; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; + +@SuppressWarnings("nls") +public class ClipboardServiceTest extends ProjectBasedTest { + + private static final String NEW_OPERATION = "NewOperation"; + private static final String ELEMENT1 = "Element1"; + private IFile xsdFile; + private IFile wsdlFile; + + @Before + public void setUp() throws Exception { + super.setUp(); + + xsdFile = ResourceUtils.copyFileIntoTestProject("pub/extract/NewXMLSchema1.xsd", SIEditorBaseTest.Document_FOLDER_NAME, + this.getProject(), "NewXMLSchema1.xsd"); + wsdlFile = ResourceUtils.copyFileIntoTestProject("pub/simple/NewWSDLFileCyclingTypes.wsdl", + SIEditorBaseTest.Document_FOLDER_NAME, this.getProject(), "ECC_CUSTOMER002QR.wsdl"); + + setDeleteProjectOnTearDown(); + } + + @Test + public void testIsCopyEnabled() { + Assert.assertFalse(ClipboardService.isCopyEnabled(null)); + Assert.assertFalse(ClipboardService.isCopyEnabled(new Object[0])); + + Object[] selection = { new Object(), new Object() }; + Assert.assertFalse(ClipboardService.isCopyEnabled(selection)); + + IDataTypesTreeNode dataTypesTreeNode = Mockito.mock(IDataTypesTreeNode.class); + selection[0] = dataTypesTreeNode; + selection[1] = new Object(); + + Mockito.when(dataTypesTreeNode.getModelObject()).thenReturn(Mockito.mock(IDescription.class)); + Assert.assertFalse(ClipboardService.isCopyEnabled(selection)); + + Mockito.when(dataTypesTreeNode.getModelObject()).thenReturn(Mockito.mock(IType.class)); + Assert.assertFalse(ClipboardService.isCopyEnabled(selection)); + + selection = new IDataTypesTreeNode[1]; + selection[0] = dataTypesTreeNode; + Mockito.when(dataTypesTreeNode.getModelObject()).thenReturn(Mockito.mock(IType.class)); + Assert.assertTrue(ClipboardService.isCopyEnabled(selection)); + } + + @Test + public void testCopyModelObject() { + ResourceSet resourceSet = new ResourceSetImpl(); + + XSDResourceImpl xsdResource = (XSDResourceImpl) resourceSet.getResource(createFileUri(xsdFile), true); + XSDSchema schema = xsdResource.getSchema(); + IXSDModelRoot xsdModelRoot = XSDFactory.getInstance().createXSDModelRoot(schema); + + IType typeFromSchema = xsdModelRoot.getSchema().getType(true, ELEMENT1); + + WSDLResourceImpl resource = (WSDLResourceImpl) resourceSet.getResource(createFileUri(wsdlFile), true); + Definition definition = resource.getDefinition(); + + IWsdlModelRoot wsdlModelRoot = WSDLFactory.getInstance().createWSDLModelRoot(definition); + ISchema schemaFromWsdl = wsdlModelRoot.getDescription().getSchema("http://www.example.org/NewWSDLFile1/")[0]; + IType elementFromWsdl = schemaFromWsdl.getType(true, NEW_OPERATION); + + Object[] selection = new Object[3]; + selection[0] = new Object(); + IDataTypesTreeNode dataTypesTreeNode = Mockito.mock(IDataTypesTreeNode.class); + Mockito.when(dataTypesTreeNode.getModelObject()).thenReturn(typeFromSchema); + IDataTypesTreeNode dataTypesTreeNode2 = Mockito.mock(IDataTypesTreeNode.class); + Mockito.when(dataTypesTreeNode2.getModelObject()).thenReturn(elementFromWsdl); + selection[1] = dataTypesTreeNode; + selection[2] = dataTypesTreeNode2; + + ClipboardService.copyModelObjectsToClipboard(selection); + Object[] modelObjectsFromClipboard = ClipboardService.getModelObjectsFromClipboard(); + Assert.assertEquals(modelObjectsFromClipboard.length, 2); + Assert.assertSame(modelObjectsFromClipboard[0], typeFromSchema); + Assert.assertSame(modelObjectsFromClipboard[1], elementFromWsdl); + + Clipboard clipboard = new Clipboard(Display.getCurrent()); + String modelObjectAsText = (String) clipboard.getContents(TextTransfer.getInstance()); + assertTrue(modelObjectAsText.contains("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")); + assertTrue(modelObjectAsText.contains(ELEMENT1)); + assertTrue(modelObjectAsText.contains(NEW_OPERATION)); + } + + @Override + protected String getProjectName() { + return "ClibboardServiceTest"; + } + + protected URI createFileUri(IFile file) { + return URI.createFileURI(file.getLocation().toFile().getAbsolutePath()); + } +} |