tmf: Move plugins to the Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.ui.tests / src / org / eclipse / linuxtools / tmf / ui / tests / views / uml2sd / load / LoadersManagerTest.java
1 /**********************************************************************
2 * Copyright (c) 2011, 2013 Ericsson.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * Bernd Hufmann - Initial API and implementation
10 * Alexandre Montplaisir - Port to JUnit4
11 **********************************************************************/
12
13 package org.eclipse.linuxtools.tmf.ui.tests.views.uml2sd.load;
14
15 import static org.junit.Assert.assertEquals;
16 import static org.junit.Assert.assertFalse;
17 import static org.junit.Assert.assertNotNull;
18 import static org.junit.Assert.assertNull;
19 import static org.junit.Assert.fail;
20
21 import org.eclipse.jface.preference.IPreferenceStore;
22 import org.eclipse.linuxtools.internal.tmf.ui.Activator;
23 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.SDView;
24 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.load.IUml2SDLoader;
25 import org.eclipse.linuxtools.tmf.ui.views.uml2sd.load.LoadersManager;
26 import org.eclipse.ui.PlatformUI;
27 import org.junit.Test;
28
29 /**
30 * Test cases class to test loader manager of UML2SD extension point.
31 */
32 public class LoadersManagerTest {
33
34 private final static String SDVIEW_WITH_ONE_LOADER = "org.eclipse.linuxtools.tmf.ui.tests.testSDView1Loader";
35 private final static String SDVIEW_WITH_MULTIPLE_LOADER = "org.eclipse.linuxtools.tmf.ui.tests.testSDView2Loaders";
36 private final static String TEST_LOADER_CLASS_NAME = "org.eclipse.linuxtools.tmf.ui.tests.uml2sd.load.TestLoaders";
37 private final static String TMF_UML2SD_LOADER_CLASS_NAME = "org.eclipse.linuxtools.tmf.ui.views.uml2sd.loader.TmfUml2SDSyncLoader";
38
39 private static final String LOADER_TAG = "uml2SDLoader";
40 private static final String LOADER_PREFIX = LOADER_TAG + ".";
41
42 /**
43 * Tests of loader manager singleton class.
44 */
45 @Test
46 public void testLoaderManager() {
47 SDView view = null;
48 try {
49
50 /*
51 * Test creation of a loader (one per SD view)
52 */
53
54 // Open view
55 // Note this will create the default loader!
56 view = (SDView)PlatformUI.getWorkbench()
57 .getActiveWorkbenchWindow()
58 .getActivePage()
59 .showView(SDVIEW_WITH_ONE_LOADER);
60
61 IUml2SDLoader defaultLoader = LoadersManager.getInstance().getCurrentLoader(SDVIEW_WITH_ONE_LOADER, view);
62 assertNotNull("testLoaderManager", defaultLoader);
63
64 // Test createLoader where loader doesn't exist
65 assertNull("testLoaderManager", LoadersManager.getInstance().createLoader("blabla", view));
66
67 // Test createLoader
68 IUml2SDLoader loader = LoadersManager.getInstance().createLoader(TEST_LOADER_CLASS_NAME, view);
69
70 assertNotNull("testLoaderManager", loader);
71 assertEquals("testLoaderManager", "Test Loader", loader.getTitleString());
72 assertEquals("testLoaderManager", loader, LoadersManager.getInstance().getCurrentLoader(SDVIEW_WITH_ONE_LOADER));
73
74 // compare loader and default loader. Even if they are the same class, they are different instances
75 assertFalse("testLoaderManager", loader==defaultLoader);
76
77 // test getCurrentLoader(viewId, view)
78 IUml2SDLoader loader2 = LoadersManager.getInstance().getCurrentLoader(SDVIEW_WITH_ONE_LOADER, view);
79 assertEquals("testLoaderManager", loader, loader2);
80
81 // Hide the view
82 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().hideView(view);
83
84 // test that view restores the previous associated loader
85 view = (SDView)PlatformUI.getWorkbench()
86 .getActiveWorkbenchWindow()
87 .getActivePage()
88 .showView(SDVIEW_WITH_ONE_LOADER);
89
90 // Well, this is the only way test which loader is set
91 assertEquals("testLoaderManager", "Sequence Diagram - First Page", view.getFrame().getName());
92
93 // Test view == null
94 assertNull("testLoaderManager", LoadersManager.getInstance().createLoader(TEST_LOADER_CLASS_NAME, null));
95
96 // Hide the view
97 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().hideView(view);
98
99 /*
100 * Test creation of loaders with re-uses the same SD view
101 */
102
103 // test that view restores the previous associated loader
104 view = (SDView)PlatformUI.getWorkbench()
105 .getActiveWorkbenchWindow()
106 .getActivePage()
107 .showView(SDVIEW_WITH_MULTIPLE_LOADER);
108
109 // Test that default loader is set. Note that 2 default loaders are define in the plugin.xml and the
110 // the first one should be selected.
111
112 // Well, this is the only way test which loader is set
113 assertEquals("testLoaderManager", "Sequence Diagram - First Page", view.getFrame().getName());
114
115 loader = LoadersManager.getInstance().getCurrentLoader(SDVIEW_WITH_MULTIPLE_LOADER, view);
116 assertNotNull("testLoaderManager", loader);
117 assertEquals("testLoaderManager", "Test Loader", loader.getTitleString());
118 assertEquals("testLoaderManager", loader, LoadersManager.getInstance().getCurrentLoader(SDVIEW_WITH_MULTIPLE_LOADER));
119
120 // Test createLoader for loader with class name TMF_UML2SD_LOADER_CLASS_NAME
121 loader = LoadersManager.getInstance().createLoader(TMF_UML2SD_LOADER_CLASS_NAME, view);
122
123 assertNotNull("testLoaderManager", loader);
124 assertEquals("testLoaderManager", "Component Interactions", loader.getTitleString());
125 assertEquals("testLoaderManager", loader, LoadersManager.getInstance().getCurrentLoader(SDVIEW_WITH_MULTIPLE_LOADER));
126
127 // Verify if the correct loader is stored in the preferences as the current loader for this view
128 assertEquals("testLoaderManager", TMF_UML2SD_LOADER_CLASS_NAME, getSavedLoader(SDVIEW_WITH_MULTIPLE_LOADER));
129
130 // Test createLoader for loader with class name TEST_LOADER_CLASS_NAME
131 loader = LoadersManager.getInstance().createLoader(TEST_LOADER_CLASS_NAME, view);
132
133 assertNotNull("testLoaderManager", loader);
134 assertEquals("testLoaderManager", "Test Loader", loader.getTitleString());
135 assertEquals("testLoaderManager", loader, LoadersManager.getInstance().getCurrentLoader(SDVIEW_WITH_MULTIPLE_LOADER));
136
137 // Verify if the correct loader is stored in the preferences as the current loader for this view
138 assertEquals("testLoaderManager", TEST_LOADER_CLASS_NAME, getSavedLoader(SDVIEW_WITH_MULTIPLE_LOADER));
139 assertEquals("testLoaderManager", TEST_LOADER_CLASS_NAME, LoadersManager.getInstance().getSavedLoader(SDVIEW_WITH_MULTIPLE_LOADER));
140
141 // Hide the view
142 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().hideView(view);
143
144 // Test reset loader
145 LoadersManager.getInstance().resetLoader(SDVIEW_WITH_MULTIPLE_LOADER);
146
147 } catch (Exception e) {
148 e.printStackTrace();
149 fail();
150 }
151 }
152
153 private static String getSavedLoader(String viewId) {
154 IPreferenceStore p = Activator.getDefault().getPreferenceStore();
155 return p.getString(LOADER_PREFIX + viewId);
156 }
157 }
This page took 0.034251 seconds and 5 git commands to generate.