blob: 180703b2aec0eb0e12165f117f35f9d5a16051ed [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.tracecompass.tmf.analysis.xml.core.tests;
import static org.junit.Assert.assertNotNull;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.fsm.compile.TmfXmlPatternCu;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.pattern.stateprovider.XmlPatternAnalysis;
import org.eclipse.tracecompass.tmf.analysis.xml.core.module.TmfXmlStrings;
import org.eclipse.tracecompass.tmf.analysis.xml.core.tests.common.TmfXmlTestFiles;
import org.eclipse.tracecompass.tmf.analysis.xml.core.tests.stateprovider.XmlModuleTestBase;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
/**
* Utilities method for pattern analysis tests
*
* @author Jean-Christian Kouame
*
*/
public class PatternAnalysisTestUtils {
private static XmlPatternAnalysis createModule(@NonNull Element element, TmfXmlTestFiles file) {
String id = element.getAttribute(TmfXmlStrings.ID);
TmfXmlPatternCu patternCu = TmfXmlPatternCu.compile(element);
assertNotNull(patternCu);
XmlPatternAnalysis module = new XmlPatternAnalysis(id, patternCu);
module.setName(XmlModuleTestBase.getName(element));
return module;
}
/**
* Initialise a pattern analysis module
*
* @param file
* The xml file that contains the analysis description
* @return The created module
*/
public static XmlPatternAnalysis initModule(TmfXmlTestFiles file) {
Document doc = file.getXmlDocument();
assertNotNull(doc);
/* get State Providers modules */
NodeList stateproviderNodes = doc.getElementsByTagName(TmfXmlStrings.PATTERN);
Element node = (Element) stateproviderNodes.item(0);
assertNotNull(node);
XmlPatternAnalysis module = createModule(node, file);
String moduleId = node.getAttribute(TmfXmlStrings.ID);
assertNotNull(moduleId);
module.setId(moduleId);
return module;
}
}