From 613522847ed59ee795fb08103cfe2f5ad2369b93 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Fri, 15 Mar 2019 13:02:53 +0100 Subject: [PATCH] unit tests for CopyAction --- CellDesigner-plugin/pom.xml | 8 ++ .../cdplugin/copypaste/CopyAction.java | 7 -- .../cdplugin/copypaste/AllCopyPasteTests.java | 3 +- .../cdplugin/copypaste/CopyActionTest.java | 114 ++++++++++++++++++ 4 files changed, 124 insertions(+), 8 deletions(-) create mode 100644 CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyActionTest.java diff --git a/CellDesigner-plugin/pom.xml b/CellDesigner-plugin/pom.xml index c1a59b8687..a28ab24e2a 100644 --- a/CellDesigner-plugin/pom.xml +++ b/CellDesigner-plugin/pom.xml @@ -89,6 +89,14 @@ <scope>test</scope> </dependency> + <!-- mockito used for testing --> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>${mockito.version}</version> + <scope>test</scope> + </dependency> + </dependencies> </project> \ No newline at end of file diff --git a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyAction.java b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyAction.java index eb66bf7ded..7ccc8d9a62 100644 --- a/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyAction.java +++ b/CellDesigner-plugin/src/main/java/lcsb/mapviewer/cdplugin/copypaste/CopyAction.java @@ -2,7 +2,6 @@ package lcsb.mapviewer.cdplugin.copypaste; import org.apache.log4j.Logger; -import jp.sbi.celldesigner.MainWindow; import jp.sbi.celldesigner.plugin.PluginListOf; import jp.sbi.celldesigner.plugin.PluginReaction; import jp.sbi.celldesigner.plugin.PluginSBase; @@ -34,12 +33,6 @@ public class CopyAction extends CopyPasteAbstractAction { * - list of species to annotate */ public void performAnnotation(CopyPastePlugin plug, PluginListOf speciesList) { - - // if list is empty then just return from the method - if (speciesList.size() == 0) { - return; - } - SystemClipboard sc = new SystemClipboard(); int size = speciesList.size(); diff --git a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/AllCopyPasteTests.java b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/AllCopyPasteTests.java index 3858371717..81ad633894 100644 --- a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/AllCopyPasteTests.java +++ b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/AllCopyPasteTests.java @@ -5,7 +5,8 @@ import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) -@SuiteClasses({ CopyPasteAbstractActionTest.class }) +@SuiteClasses({ CopyActionTest.class, + CopyPasteAbstractActionTest.class }) public class AllCopyPasteTests { } diff --git a/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyActionTest.java b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyActionTest.java new file mode 100644 index 0000000000..ac3ab594b5 --- /dev/null +++ b/CellDesigner-plugin/src/test/java/lcsb/mapviewer/cdplugin/copypaste/CopyActionTest.java @@ -0,0 +1,114 @@ +package lcsb.mapviewer.cdplugin.copypaste; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +import org.apache.log4j.Logger; +import org.junit.Test; +import org.mockito.Mockito; + +import jp.sbi.celldesigner.plugin.PluginListOf; +import jp.sbi.celldesigner.plugin.PluginReaction; +import jp.sbi.celldesigner.plugin.PluginSpecies; +import jp.sbi.celldesigner.plugin.PluginSpeciesAlias; +import lcsb.mapviewer.common.SystemClipboard; + +public class CopyActionTest { + String rdfString = "<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:vCard=\"http://www.w3.org/2001/vcard-rdf/3.0#\" xmlns:bqbiol=\"http://biomodels.net/biology-qualifiers/\" xmlns:bqmodel=\"http://biomodels.net/model-qualifiers/\">\n" + + + "<rdf:Description rdf:about=\"#s3\">\n" + + "<bqmodel:is>\n" + + "<rdf:Bag>\n" + + "<rdf:li rdf:resource=\"urn:miriam:wikipedia.en:1\"/>\n" + + "</rdf:Bag>\n" + + "</bqmodel:is>\n" + + "</rdf:Description>\n" + + "</rdf:RDF>\n"; + + Logger logger = Logger.getLogger(CopyActionTest.class); + + SystemClipboard cp = new SystemClipboard(); + + @Test + public void testCopyFromSpecies() { + CopyAction action = new CopyAction(); + String data = cp.getClipboardContents(); + + PluginListOf list = createPluginListWithSpecies(2); + action.performAnnotation(Mockito.mock(CopyPastePlugin.class), list); + + String newData = cp.getClipboardContents(); + + assertNotEquals("Data in clipboard didn't change", data, newData); + } + + @Test + public void testCopyFromReaction() { + CopyAction action = new CopyAction(); + String data = cp.getClipboardContents(); + + PluginListOf list = createPluginListWithReaction(2); + action.performAnnotation(Mockito.mock(CopyPastePlugin.class), list); + + String newData = cp.getClipboardContents(); + + assertNotEquals("Data in clipboard didn't change", data, newData); + } + + @Test + public void testCopyFromEmptyList() { + CopyAction action = new CopyAction(); + String data = cp.getClipboardContents(); + + PluginListOf list = createPluginListWithSpecies(0); + action.performAnnotation(Mockito.mock(CopyPastePlugin.class), list); + + String newData = cp.getClipboardContents(); + + assertEquals("Data in clipboard didn't change", data, newData); + } + + private PluginListOf createPluginListWithSpecies(int size) { + PluginListOf list = Mockito.mock(PluginListOf.class); + + Mockito.when(list.size()).thenReturn(size); + for (int i = 0; i < size; i++) { + PluginSpeciesAlias alias = createSpeciesAlias("id" + i); + Mockito.when(list.get(i)).thenReturn(alias); + } + return list; + } + + private PluginListOf createPluginListWithReaction(int size) { + PluginListOf list = Mockito.mock(PluginListOf.class); + + Mockito.when(list.size()).thenReturn(size); + for (int i = 0; i < size; i++) { + PluginReaction reaction = createReaction("id" + i); + Mockito.when(list.get(i)).thenReturn(reaction); + } + return list; + } + + private PluginSpeciesAlias createSpeciesAlias(String id) { + PluginSpecies species = Mockito.mock(PluginSpecies.class); + Mockito.when(species.getId()).thenReturn(id); + Mockito.when(species.getAnnotationString()).thenReturn(rdfString); + Mockito.when(species.getNotesString()).thenReturn("spceies some notes" + id); + + PluginSpeciesAlias speciesAlias = Mockito.mock(PluginSpeciesAlias.class); + Mockito.when(speciesAlias.getSpecies()).thenReturn(species); + return speciesAlias; + } + + private PluginReaction createReaction(String id) { + + PluginReaction reaction = Mockito.mock(PluginReaction.class); + Mockito.when(reaction.getId()).thenReturn("re" + id); + Mockito.when(reaction.getAnnotationString()).thenReturn(rdfString); + Mockito.when(reaction.getNotesString()).thenReturn("re notes" + id); + + return reaction; + } + +} -- GitLab