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) {