1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 École Polytechnique de Montréal
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
10 * Geneviève Bastien - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.tracecompass
.tmf
.core
.tests
.analysis
;
15 import static org
.junit
.Assert
.assertEquals
;
16 import static org
.junit
.Assert
.assertNotNull
;
17 import static org
.junit
.Assert
.fail
;
19 import java
.util
.List
;
21 import org
.eclipse
.jdt
.annotation
.NonNull
;
22 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.IAnalysisModule
;
23 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.IAnalysisModuleHelper
;
24 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.IAnalysisParameterProvider
;
25 import org
.eclipse
.tracecompass
.tmf
.core
.analysis
.TmfAnalysisManager
;
26 import org
.eclipse
.tracecompass
.tmf
.core
.exceptions
.TmfAnalysisException
;
27 import org
.eclipse
.tracecompass
.tmf
.core
.tests
.shared
.TmfTestTrace
;
28 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.ITmfTrace
;
29 import org
.eclipse
.tracecompass
.tmf
.tests
.stubs
.analysis
.TestAnalysis
;
30 import org
.eclipse
.tracecompass
.tmf
.tests
.stubs
.analysis
.TestAnalysisParameterProvider
;
31 import org
.junit
.After
;
32 import org
.junit
.Before
;
33 import org
.junit
.Test
;
35 import com
.google
.common
.collect
.Multimap
;
38 * Test the TmfAbstractParameterProvider class
40 * @author Geneviève Bastien
42 public class AnalysisParameterProviderTest
{
44 private static IAnalysisModuleHelper
getModuleHelper(@NonNull String moduleId
) {
45 Multimap
<String
, IAnalysisModuleHelper
> helpers
= TmfAnalysisManager
.getAnalysisModules();
46 assertEquals(1, helpers
.get(moduleId
).size());
47 return helpers
.get(moduleId
).iterator().next();
51 * Registers the parameter provider
55 TmfAnalysisManager
.registerParameterProvider(AnalysisManagerTest
.MODULE_PARAM
, TestAnalysisParameterProvider
.class);
59 * Cleanup the trace after testing
62 public void cleanupTrace() {
63 TmfTestTrace
.A_TEST_10K
.dispose();
67 * Test that the provider's value is used
70 public void testProviderTmfTrace() {
71 ITmfTrace trace
= TmfTestTrace
.A_TEST_10K
.getTrace();
72 /* Make sure the value is set to null */
73 IAnalysisModuleHelper helper
= getModuleHelper(AnalysisManagerTest
.MODULE_PARAM
);
74 assertNotNull(helper
);
75 IAnalysisModule module
= null;
77 module
= helper
.newModule(trace
);
78 assertNotNull(module
);
80 assertEquals(10, module
.getParameter(TestAnalysis
.PARAM_TEST
));
82 /* Change the value of the parameter in the provider */
83 List
<IAnalysisParameterProvider
> providers
= TmfAnalysisManager
.getParameterProviders(module
, trace
);
84 assertEquals(1, providers
.size());
85 TestAnalysisParameterProvider provider
= (TestAnalysisParameterProvider
) providers
.get(0);
87 assertEquals(5, module
.getParameter(TestAnalysis
.PARAM_TEST
));
89 } catch (TmfAnalysisException e
) {