[CTF] fix support for traces with per-event contexts
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / request / TmfTraceFilterTest.java
1 /*******************************************************************************
2 * Copyright (c) 2012 Ericsson
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 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.tmf.core.tests.request;
14
15 import junit.framework.TestCase;
16
17 import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
18 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
19 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
20 import org.eclipse.linuxtools.tmf.core.request.TmfTraceFilter;
21 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
22 import org.eclipse.linuxtools.tmf.tests.stubs.trace.TmfTraceStub;
23 import org.junit.Test;
24
25 /**
26 * <b><u>TmfTraceFilterTest</u></b>
27 * <p>
28 * Test suite for the TmfTraceFilter class.
29 */
30 @SuppressWarnings({"nls","javadoc"})
31 public class TmfTraceFilterTest extends TestCase {
32
33 // ------------------------------------------------------------------------
34 // Constants
35 // ------------------------------------------------------------------------
36
37 private static final TmfTraceFilter ALL_TRACES = TmfTraceFilter.ALL_TRACES;
38
39 // ------------------------------------------------------------------------
40 // Housekeeping
41 // ------------------------------------------------------------------------
42
43 /**
44 * @param name the test name
45 */
46 public TmfTraceFilterTest(String name) {
47 super(name);
48 }
49
50 @Override
51 protected void setUp() throws Exception {
52 super.setUp();
53 }
54
55 @Override
56 protected void tearDown() throws Exception {
57 super.tearDown();
58 }
59
60 // ------------------------------------------------------------------------
61 // Constructors
62 // ------------------------------------------------------------------------
63
64 @Test
65 public void testTmfTraceFilter() {
66 ITmfTrace trace1 = new TmfTraceStub();
67 ITmfTrace trace2 = new TmfTraceStub();
68 ITmfTrace[] traces;
69
70 TmfTraceFilter filter = ALL_TRACES;
71 traces = filter.getTraces();
72 assertEquals("getTraces", 0, traces.length);
73 assertEquals("getTraces", ALL_TRACES.getTraces(), filter.getTraces());
74
75 filter = new TmfTraceFilter();
76 traces = filter.getTraces();
77 assertEquals("getTraces", 0, traces.length);
78 assertEquals("getTraces", ALL_TRACES.getTraces(), filter.getTraces());
79
80 filter = new TmfTraceFilter(new ITmfTrace[] { trace1 });
81 traces = filter.getTraces();
82 assertEquals("getTraces", 1, traces.length);
83 assertEquals("getTraces", trace1, traces[0]);
84
85 filter = new TmfTraceFilter(new ITmfTrace[] { trace2 });
86 traces = filter.getTraces();
87 assertEquals("getTraces", 1, traces.length);
88 assertEquals("getTraces", trace2, traces[0]);
89
90 filter = new TmfTraceFilter(new ITmfTrace[] { trace1, trace2 });
91 traces = filter.getTraces();
92 assertEquals("getTraces", 2, traces.length);
93 assertEquals("getTraces", trace1, traces[0]);
94 assertEquals("getTraces", trace2, traces[1]);
95 }
96
97 @Test
98 public void testTmfTraceFilterCopy() {
99 ITmfTrace trace1 = new TmfTraceStub();
100 ITmfTrace trace2 = new TmfTraceStub();
101
102 TmfTraceFilter filter1 = new TmfTraceFilter(new ITmfTrace[] { trace1, trace2 });
103 TmfTraceFilter filter2 = new TmfTraceFilter(filter1);
104 ITmfTrace[] traces = filter2.getTraces();
105 assertEquals("getTraces", 2, traces.length);
106 assertEquals("getTraces", trace1, traces[0]);
107 assertEquals("getTraces", trace2, traces[1]);
108 }
109
110 // ------------------------------------------------------------------------
111 // equals
112 // ------------------------------------------------------------------------
113
114 @Test
115 public void testEqualsReflexivity() {
116 TmfTraceFilter filter1 = new TmfTraceFilter();
117 TmfTraceFilter filter2 = new TmfTraceFilter(new ITmfTrace[] { new TmfTraceStub() });
118
119 assertEquals("equals", filter1, filter1);
120 assertEquals("equals", filter2, filter2);
121
122 assertFalse("equals", filter1.equals(filter2));
123 assertFalse("equals", filter2.equals(filter1));
124 }
125
126 @Test
127 public void testEqualsSymmetry() {
128 TmfTraceFilter filter1 = new TmfTraceFilter();
129 TmfTraceFilter filter2 = new TmfTraceFilter();
130 TmfTraceFilter filter3 = new TmfTraceFilter(new ITmfTrace[] { new TmfTraceStub() });
131
132 assertEquals("equals", filter1, filter2);
133 assertEquals("equals", filter2, filter1);
134
135 assertFalse("equals", filter1.equals(filter3));
136 assertFalse("equals", filter3.equals(filter1));
137 }
138
139 @Test
140 public void testEqualsTransivity() {
141 TmfTraceFilter filter1 = new TmfTraceFilter();
142 TmfTraceFilter filter2 = new TmfTraceFilter();
143 TmfTraceFilter filter3 = new TmfTraceFilter();
144
145 assertEquals("equals", filter1, filter2);
146 assertEquals("equals", filter2, filter3);
147 assertEquals("equals", filter3, filter1);
148
149 ITmfTrace trace = new TmfTraceStub();
150 filter1 = new TmfTraceFilter(new ITmfTrace[] { trace });
151 filter2 = new TmfTraceFilter(new ITmfTrace[] { trace });
152 filter3 = new TmfTraceFilter(new ITmfTrace[] { trace });
153
154 assertEquals("equals", filter1, filter2);
155 assertEquals("equals", filter2, filter3);
156 assertEquals("equals", filter3, filter1);
157 }
158
159 @Test
160 public void testEqualsNull() {
161 TmfTraceFilter filter1 = new TmfTraceFilter();
162 TmfTraceFilter filter2 = new TmfTraceFilter(new ITmfTrace[] { new TmfTraceStub() });
163
164 assertFalse("equals", filter1.equals(null));
165 assertFalse("equals", filter2.equals(null));
166 }
167
168 // ------------------------------------------------------------------------
169 // hashCode
170 // ------------------------------------------------------------------------
171
172 @Test
173 public void testHashCode() {
174 TmfTraceFilter filter1 = new TmfTraceFilter();
175 TmfTraceFilter filter2 = new TmfTraceFilter(new ITmfTrace[] { new TmfTraceStub() });
176
177 assertFalse("hashCode", filter1.hashCode() == filter2.hashCode());
178 }
179
180 // ------------------------------------------------------------------------
181 // toString
182 // ------------------------------------------------------------------------
183
184 @Test
185 public void testToString() {
186 ITmfTrace trace = new TmfTraceStub();
187 TmfTraceFilter filter1 = new TmfTraceFilter();
188 TmfTraceFilter filter2 = new TmfTraceFilter(new ITmfTrace[] { trace });
189
190 String expected1 = "TmfTraceFilter [fTraces=[]]";
191 String expected2 = "TmfTraceFilter [fTraces=[" + trace + "]]";
192
193 assertEquals("toString", expected1, filter1.toString());
194 assertEquals("toString", expected2, filter2.toString());
195 }
196
197 // ------------------------------------------------------------------------
198 // matches
199 // ------------------------------------------------------------------------
200
201 /**
202 * The only test that really matters...
203 */
204 @Test
205 public void testMatches() {
206 ITmfTrace trace0 = new TmfTraceStub();
207 ITmfTrace trace1 = new TmfTraceStub();
208 ITmfTrace trace2 = new TmfTraceStub();
209
210 TmfTraceFilter filter0 = new TmfTraceFilter();
211 TmfTraceFilter filter1 = new TmfTraceFilter(new ITmfTrace[] { trace1 });
212 TmfTraceFilter filter2 = new TmfTraceFilter(new ITmfTrace[] { trace2 });
213 TmfTraceFilter filter3 = new TmfTraceFilter(new ITmfTrace[] { trace1, trace2 });
214
215 ITmfEvent event = new TmfEvent(trace0, 0, new TmfTimestamp(0), null, null, null, null);
216 assertTrue ("matches", TmfTraceFilter.ALL_TRACES.matches(event));
217 assertTrue ("matches", filter0.matches(event));
218 assertFalse("matches", filter1.matches(event));
219 assertFalse("matches", filter2.matches(event));
220 assertFalse("matches", filter3.matches(event));
221
222 event = new TmfEvent(trace1, 0, new TmfTimestamp(0), null, null, null, null);
223 assertTrue ("matches", TmfTraceFilter.ALL_TRACES.matches(event));
224 assertTrue ("matches", filter0.matches(event));
225 assertTrue ("matches", filter1.matches(event));
226 assertFalse("matches", filter2.matches(event));
227 assertTrue ("matches", filter3.matches(event));
228
229 event = new TmfEvent(trace2, 0, new TmfTimestamp(0), null, null, null, null);
230 assertTrue ("matches", TmfTraceFilter.ALL_TRACES.matches(event));
231 assertTrue ("matches", filter0.matches(event));
232 assertFalse("matches", filter1.matches(event));
233 assertTrue ("matches", filter2.matches(event));
234 assertTrue ("matches", filter3.matches(event));
235 }
236
237 }
This page took 0.034839 seconds and 5 git commands to generate.