Merge branch 'develop' into LibrAlign
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / test / java / eu / etaxonomy / taxeditor / navigation / navigator / operation / MoveTaxonOperationTest.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.taxeditor.navigation.navigator.operation;
11
12 import java.util.HashSet;
13 import java.util.Set;
14 import java.util.UUID;
15
16 import org.eclipse.core.commands.ExecutionException;
17 import org.junit.Assert;
18 import org.junit.BeforeClass;
19 import org.junit.Test;
20
21 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
22 import eu.etaxonomy.cdm.model.taxon.Classification;
23 import eu.etaxonomy.cdm.model.taxon.Taxon;
24 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
25 import eu.etaxonomy.taxeditor.navigation.navigator.TreeNodeDropAdapter.MovingType;
26 import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
27
28 /**
29 * @author n.hoffmann
30 * @created 08.04.2009
31 */
32 public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTestBase {
33
34 private static Taxon oldParentTaxon;
35 private static Taxon newParentTaxon;
36 private static Classification tree;
37 private static TaxonNode oldParentTaxonNode;
38 private static TaxonNode newParentTaxonNode;
39 private static TaxonNode taxonNode;
40
41 /**
42 * @throws java.lang.Exception
43 */
44 @BeforeClass
45 public static void setUpBeforeClass() throws Exception {
46
47
48 taxon = Taxon.NewInstance(null, null);
49
50 oldParentTaxon = Taxon.NewInstance(null, null);
51 newParentTaxon = Taxon.NewInstance(null, null);
52
53 tree = Classification.NewInstance(null);
54 oldParentTaxonNode = tree.addChildTaxon(oldParentTaxon, null, null);
55 newParentTaxonNode = tree.addChildTaxon(newParentTaxon, null, null);
56
57 taxonNode = oldParentTaxonNode.addChildTaxon(taxon, null, null);
58
59 Set<UUID> taxonNodeUuidSet = new HashSet<UUID>();
60 //TODO ??
61 IConversationEnabled conversationEnabled = null;
62 taxonNodeUuidSet.add(taxonNode.getUuid());
63 operation = new MoveTaxonOperation("Move Taxon To Different Parent",
64 undoContext, taxonNodeUuidSet, newParentTaxonNode, postOperation,
65 conversationEnabled, MovingType.CHILD);
66 }
67
68 /**
69 * Test method for {@link eu.etaxonomy.taxeditor.navigation.operation.MoveTaxonOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
70 * @throws ExecutionException
71 */
72 @Test
73 public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
74 operation.execute(monitor, info);
75
76 Assert.assertEquals(newParentTaxon ,taxon.getTaxonNodes().iterator().next().getParent().getTaxon());
77 Assert.assertEquals(taxon, newParentTaxon.getTaxonNodes().iterator().next().getChildNodes().iterator().next());
78 Assert.assertEquals(0, oldParentTaxon.getTaxonNodes().iterator().next().getChildNodes().size());
79 }
80
81
82 /**
83 * Test method for {@link eu.etaxonomy.taxeditor.navigation.operation.MoveTaxonOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
84 * @throws ExecutionException
85 */
86 @Test
87 public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
88 operation.undo(monitor, info);
89
90 Assert.assertEquals(oldParentTaxon ,taxon.getTaxonNodes().iterator().next().getParent().getTaxon());
91 Assert.assertEquals(0, newParentTaxon.getTaxonNodes().iterator().next().getChildNodes().size());
92 Assert.assertEquals(taxon, oldParentTaxon.getTaxonNodes().iterator().next().getChildNodes().iterator().next());
93 }
94
95 /**
96 * Test method for {@link eu.etaxonomy.taxeditor.navigation.operation.MoveTaxonOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
97 * @throws ExecutionException
98 */
99 @Test
100 public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
101 operation.redo(monitor, info);
102
103 Assert.assertEquals(newParentTaxon ,taxon.getTaxonNodes().iterator().next().getParent().getTaxon());
104 Assert.assertEquals(taxon, newParentTaxon.getTaxonNodes().iterator().next().getChildNodes().iterator().next());
105 Assert.assertEquals(0, oldParentTaxon.getTaxonNodes().iterator().next().getChildNodes().size());
106
107 }
108 }