1 /*******************************************************************************
2 * Copyright (c) 2015 Ericsson
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 * Patrick Tasse - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.tracecompass
.tmf
.core
.tests
.filter
;
15 import static org
.junit
.Assert
.assertEquals
;
16 import static org
.junit
.Assert
.assertFalse
;
17 import static org
.junit
.Assert
.assertTrue
;
19 import java
.util
.Arrays
;
20 import java
.util
.HashSet
;
23 import org
.eclipse
.tracecompass
.tmf
.core
.event
.ITmfEventField
;
24 import org
.eclipse
.tracecompass
.tmf
.core
.event
.TmfEvent
;
25 import org
.eclipse
.tracecompass
.tmf
.core
.event
.TmfEventField
;
26 import org
.eclipse
.tracecompass
.tmf
.core
.event
.TmfEventType
;
27 import org
.eclipse
.tracecompass
.tmf
.core
.filter
.model
.TmfFilterAndNode
;
28 import org
.eclipse
.tracecompass
.tmf
.core
.filter
.model
.TmfFilterCompareNode
;
29 import org
.eclipse
.tracecompass
.tmf
.core
.filter
.model
.TmfFilterContainsNode
;
30 import org
.eclipse
.tracecompass
.tmf
.core
.filter
.model
.TmfFilterEqualsNode
;
31 import org
.eclipse
.tracecompass
.tmf
.core
.filter
.model
.TmfFilterMatchesNode
;
32 import org
.eclipse
.tracecompass
.tmf
.core
.filter
.model
.TmfFilterOrNode
;
33 import org
.eclipse
.tracecompass
.tmf
.core
.filter
.model
.TmfFilterTraceTypeNode
;
34 import org
.eclipse
.tracecompass
.tmf
.core
.parsers
.custom
.CustomTxtEvent
;
35 import org
.eclipse
.tracecompass
.tmf
.core
.parsers
.custom
.CustomTxtEventType
;
36 import org
.eclipse
.tracecompass
.tmf
.core
.parsers
.custom
.CustomTxtTrace
;
37 import org
.eclipse
.tracecompass
.tmf
.core
.parsers
.custom
.CustomTxtTraceDefinition
;
38 import org
.eclipse
.tracecompass
.tmf
.core
.parsers
.custom
.CustomXmlEvent
;
39 import org
.eclipse
.tracecompass
.tmf
.core
.parsers
.custom
.CustomXmlEventType
;
40 import org
.eclipse
.tracecompass
.tmf
.core
.parsers
.custom
.CustomXmlInputElement
;
41 import org
.eclipse
.tracecompass
.tmf
.core
.parsers
.custom
.CustomXmlTrace
;
42 import org
.eclipse
.tracecompass
.tmf
.core
.parsers
.custom
.CustomXmlTraceDefinition
;
43 import org
.eclipse
.tracecompass
.tmf
.core
.timestamp
.TmfNanoTimestamp
;
44 import org
.eclipse
.tracecompass
.tmf
.tests
.stubs
.trace
.TmfTraceStub
;
45 import org
.junit
.AfterClass
;
46 import org
.junit
.Before
;
47 import org
.junit
.Test
;
50 * Test suite for the {@link TmfFilterTraceTypeNode} class.
52 * @author Patrick Tasse
54 @SuppressWarnings("javadoc")
55 public class TmfFilterTraceTypeNodeTest
extends TmfFilterTreeNodeTest
{
57 // ------------------------------------------------------------------------
59 // ------------------------------------------------------------------------
61 private static final String CATEGORY_TXT
= "txt";
62 private static final String CATEGORY_XML
= "xml";
63 private static final String DEFINITION_NAME_TXT
= "name txt";
64 private static final String DEFINITION_NAME_XML
= "name xml";
65 private static final String SEP
= ":";
66 private static final String CUSTOM_TXT_TRACE_TYPE_PREFIX
= "custom.txt.trace" + SEP
;
67 private static final String CUSTOM_XML_TRACE_TYPE_PREFIX
= "custom.xml.trace" + SEP
;
68 private static CustomTxtTraceDefinition fCustomTxtDefinition
= new CustomTxtTraceDefinition();
69 private static CustomXmlTraceDefinition fCustomXmlDefinition
= new CustomXmlTraceDefinition();
71 fCustomTxtDefinition
.categoryName
= CATEGORY_TXT
;
72 fCustomTxtDefinition
.definitionName
= DEFINITION_NAME_TXT
;
73 fCustomXmlDefinition
.categoryName
= CATEGORY_XML
;
74 fCustomXmlDefinition
.definitionName
= DEFINITION_NAME_XML
;
75 fCustomXmlDefinition
.rootInputElement
= new CustomXmlInputElement();
77 private static CustomTxtTrace fCustomTxtTrace
= new CustomTxtTrace(fCustomTxtDefinition
);
78 private static CustomXmlTrace fCustomXmlTrace
= new CustomXmlTrace(fCustomXmlDefinition
);
79 private static TmfEventType fCustomTxtEventType
= new CustomTxtEventType(fCustomTxtDefinition
);
80 private static TmfEventType fCustomXmlEventType
= new CustomXmlEventType(fCustomXmlDefinition
);
81 private ITmfEventField fContent
= new TmfEventField(ITmfEventField
.ROOT_FIELD_ID
, null, null);
82 private TmfEvent fEvent1
= new TmfEvent(TRACE
, 0, new TmfNanoTimestamp(1), EVENT_TYPE
, fContent
);
83 private TmfEvent fEvent2
= new CustomTxtEvent(fCustomTxtDefinition
, fCustomTxtTrace
, new TmfNanoTimestamp(2), fCustomTxtEventType
);
84 private TmfEvent fEvent3
= new CustomXmlEvent(fCustomXmlDefinition
, fCustomXmlTrace
, new TmfNanoTimestamp(3), fCustomXmlEventType
);
85 private TmfFilterTraceTypeNode fFilter
;
88 public static void disposeCustomTraces() {
89 fCustomTxtTrace
.dispose();
90 fCustomXmlTrace
.dispose();
93 // ------------------------------------------------------------------------
95 // ------------------------------------------------------------------------
98 public void createFilter() {
99 fFilter
= new TmfFilterTraceTypeNode(null);
100 fFilterNode
= fFilter
;
104 public void testMatches() {
105 fFilter
.setTraceClass(TmfTraceStub
.class);
106 assertTrue(fFilter
.matches(fEvent1
));
107 assertFalse(fFilter
.matches(fEvent2
));
108 assertFalse(fFilter
.matches(fEvent3
));
110 fFilter
.setTraceClass(CustomTxtTrace
.class);
111 fFilter
.setTraceTypeId(CUSTOM_TXT_TRACE_TYPE_PREFIX
+ CATEGORY_TXT
+ SEP
+ DEFINITION_NAME_TXT
);
112 assertFalse(fFilter
.matches(fEvent1
));
113 assertTrue(fFilter
.matches(fEvent2
));
114 assertFalse(fFilter
.matches(fEvent3
));
116 fFilter
.setTraceClass(CustomXmlTrace
.class);
117 fFilter
.setTraceTypeId(CUSTOM_XML_TRACE_TYPE_PREFIX
+ CATEGORY_XML
+ SEP
+ DEFINITION_NAME_XML
);
118 assertFalse(fFilter
.matches(fEvent1
));
119 assertFalse(fFilter
.matches(fEvent2
));
120 assertTrue(fFilter
.matches(fEvent3
));
122 fFilter
.setTraceClass(CustomTxtTrace
.class);
123 fFilter
.setTraceTypeId(CUSTOM_TXT_TRACE_TYPE_PREFIX
+ CATEGORY_XML
+ SEP
+ DEFINITION_NAME_XML
);
124 assertFalse(fFilter
.matches(fEvent1
));
125 assertFalse(fFilter
.matches(fEvent2
));
126 assertFalse(fFilter
.matches(fEvent3
));
130 public void testGetName() {
131 assertEquals("getName()", "TRACETYPE", fFilter
.getNodeName());
135 public void testGetValidChildren() {
136 Set
<String
> validChildren
= new HashSet
<>(Arrays
.asList(
137 TmfFilterTraceTypeNode
.NODE_NAME
,
138 TmfFilterAndNode
.NODE_NAME
,
139 TmfFilterOrNode
.NODE_NAME
,
140 TmfFilterContainsNode
.NODE_NAME
,
141 TmfFilterEqualsNode
.NODE_NAME
,
142 TmfFilterMatchesNode
.NODE_NAME
,
143 TmfFilterCompareNode
.NODE_NAME
));
144 assertEquals("getValidChildren()", validChildren
, new HashSet
<>(fFilter
.getValidChildren()));