tmf: Add some nonNull annotation to the tmf.core.analysis package
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core.tests / src / org / eclipse / tracecompass / tmf / core / tests / analysis / AnalysisManagerTest.java
1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 École Polytechnique de Montréal
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Geneviève Bastien - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.tracecompass.tmf.core.tests.analysis;
14
15 import static org.junit.Assert.assertFalse;
16 import static org.junit.Assert.assertNotNull;
17 import static org.junit.Assert.assertTrue;
18
19 import java.util.Map;
20
21 import org.eclipse.jdt.annotation.NonNull;
22 import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleHelper;
23 import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModuleSource;
24 import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisManager;
25 import org.eclipse.tracecompass.tmf.core.tests.shared.TmfTestTrace;
26 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
27 import org.eclipse.tracecompass.tmf.tests.stubs.analysis.AnalysisModuleSourceStub;
28 import org.eclipse.tracecompass.tmf.tests.stubs.analysis.AnalysisModuleTestHelper;
29 import org.junit.After;
30 import org.junit.Before;
31 import org.junit.Test;
32
33 /**
34 * Test suite for the TmfAnalysisModule class
35 */
36 public class AnalysisManagerTest {
37
38 /** Id of analysis module with parameter */
39 public static final @NonNull String MODULE_PARAM = "org.eclipse.linuxtools.tmf.core.tests.analysis.test";
40 /** ID of analysis module with parameter and default value */
41 public static final @NonNull String MODULE_PARAM_DEFAULT = "org.eclipse.linuxtools.tmf.core.tests.analysis.test2";
42 /** ID of analysis module for trace 2 classes only */
43 public static final @NonNull String MODULE_SECOND = "org.eclipse.linuxtools.tmf.core.tests.analysis.testother";
44 /** Id of analysis module with requirements */
45 public static final @NonNull String MODULE_REQ = "org.eclipse.linuxtools.tmf.core.tests.analysis.reqtest";
46
47 private ITmfTrace fTrace;
48
49 /**
50 * Set up some trace code
51 */
52 @Before
53 public void setupTraces() {
54 fTrace = TmfTestTrace.A_TEST_10K2.getTraceAsStub2();
55 }
56
57 /**
58 * Some tests use traces, let's clean them here
59 */
60 @After
61 public void cleanupTraces() {
62 TmfTestTrace.A_TEST_10K.dispose();
63 fTrace.dispose();
64 }
65
66 /**
67 * Test suite for the {@link TmfAnalysisManager#getAnalysisModules()} method
68 */
69 @Test
70 public void testGetAnalysisModules() {
71 Map<String, IAnalysisModuleHelper> modules = TmfAnalysisManager.getAnalysisModules();
72 /* At least 3 modules should be found */
73 assertTrue(modules.size() >= 3);
74
75 IAnalysisModuleHelper module = modules.get(MODULE_PARAM_DEFAULT);
76 assertTrue(module.isAutomatic());
77
78 module = modules.get(MODULE_PARAM);
79 assertFalse(module.isAutomatic());
80 }
81
82 /**
83 * Test suite for {@link TmfAnalysisManager#getAnalysisModules(Class)} Use
84 * the test TMF trace and test trace2 stubs as sample traces
85 */
86 @Test
87 public void testListForTraces() {
88 /* Generic TmfTrace */
89 ITmfTrace trace = TmfTestTrace.A_TEST_10K.getTrace();
90 Class<? extends ITmfTrace> traceClass = trace.getClass();
91 assertNotNull(traceClass);
92 Map<String, IAnalysisModuleHelper> map = TmfAnalysisManager.getAnalysisModules(traceClass);
93
94 assertTrue(map.containsKey(MODULE_PARAM));
95 assertTrue(map.containsKey(MODULE_PARAM_DEFAULT));
96 assertFalse(map.containsKey(MODULE_SECOND));
97
98 /* TmfTraceStub2 class */
99 traceClass = fTrace.getClass();
100 assertNotNull(traceClass);
101 map = TmfAnalysisManager.getAnalysisModules(traceClass);
102
103 assertTrue(map.containsKey(MODULE_PARAM));
104 assertTrue(map.containsKey(MODULE_PARAM_DEFAULT));
105 assertTrue(map.containsKey(MODULE_SECOND));
106 }
107
108 /**
109 * Test suite to test refresh of analysis module when adding a {@link IAnalysisModuleSource}
110 */
111 @Test
112 public void testSources() {
113 /* Make sure that modules in the new source are not in the list already */
114 /* Generic TmfTrace */
115 ITmfTrace trace = TmfTestTrace.A_TEST_10K.getTrace();
116 Class<? extends ITmfTrace> traceClass = trace.getClass();
117 assertNotNull(traceClass);
118 Map<String, IAnalysisModuleHelper> map = TmfAnalysisManager.getAnalysisModules(traceClass);
119
120 assertFalse(map.containsKey(AnalysisModuleTestHelper.moduleStubEnum.TEST.name()));
121
122 /* TmfTraceStub2 class */
123 Class<? extends ITmfTrace> ftraceClass = fTrace.getClass();
124 assertNotNull(ftraceClass);
125 map = TmfAnalysisManager.getAnalysisModules(ftraceClass);
126
127 assertFalse(map.containsKey(AnalysisModuleTestHelper.moduleStubEnum.TEST2.name()));
128
129 /* Add new source */
130 TmfAnalysisManager.registerModuleSource(new AnalysisModuleSourceStub());
131
132 /* Now make sure the modules are present */
133 map = TmfAnalysisManager.getAnalysisModules(traceClass);
134 assertTrue(map.containsKey(AnalysisModuleTestHelper.moduleStubEnum.TEST.name()));
135
136 map = TmfAnalysisManager.getAnalysisModules(ftraceClass);
137 assertTrue(map.containsKey(AnalysisModuleTestHelper.moduleStubEnum.TEST2.name()));
138 }
139
140 }
This page took 0.04261 seconds and 5 git commands to generate.