1 /*******************************************************************************
2 * Copyright (c) 2012 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 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.tmf
.core
.tests
.request
;
15 import junit
.framework
.TestCase
;
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
;
26 * <b><u>TmfTraceFilterTest</u></b>
28 * Test suite for the TmfTraceFilter class.
30 @SuppressWarnings({"nls","javadoc"})
31 public class TmfTraceFilterTest
extends TestCase
{
33 // ------------------------------------------------------------------------
35 // ------------------------------------------------------------------------
37 private static final TmfTraceFilter ALL_TRACES
= TmfTraceFilter
.ALL_TRACES
;
39 // ------------------------------------------------------------------------
41 // ------------------------------------------------------------------------
44 * @param name the test name
46 public TmfTraceFilterTest(String name
) {
51 protected void setUp() throws Exception
{
56 protected void tearDown() throws Exception
{
60 // ------------------------------------------------------------------------
62 // ------------------------------------------------------------------------
65 public void testTmfTraceFilter() {
66 ITmfTrace trace1
= new TmfTraceStub();
67 ITmfTrace trace2
= new TmfTraceStub();
70 TmfTraceFilter filter
= ALL_TRACES
;
71 traces
= filter
.getTraces();
72 assertEquals("getTraces", 0, traces
.length
);
73 assertEquals("getTraces", ALL_TRACES
.getTraces(), filter
.getTraces());
75 filter
= new TmfTraceFilter();
76 traces
= filter
.getTraces();
77 assertEquals("getTraces", 0, traces
.length
);
78 assertEquals("getTraces", ALL_TRACES
.getTraces(), filter
.getTraces());
80 filter
= new TmfTraceFilter(new ITmfTrace
[] { trace1
});
81 traces
= filter
.getTraces();
82 assertEquals("getTraces", 1, traces
.length
);
83 assertEquals("getTraces", trace1
, traces
[0]);
85 filter
= new TmfTraceFilter(new ITmfTrace
[] { trace2
});
86 traces
= filter
.getTraces();
87 assertEquals("getTraces", 1, traces
.length
);
88 assertEquals("getTraces", trace2
, traces
[0]);
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]);
98 public void testTmfTraceFilterCopy() {
99 ITmfTrace trace1
= new TmfTraceStub();
100 ITmfTrace trace2
= new TmfTraceStub();
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]);
110 // ------------------------------------------------------------------------
112 // ------------------------------------------------------------------------
115 public void testEqualsReflexivity() {
116 TmfTraceFilter filter1
= new TmfTraceFilter();
117 TmfTraceFilter filter2
= new TmfTraceFilter(new ITmfTrace
[] { new TmfTraceStub() });
119 assertEquals("equals", filter1
, filter1
);
120 assertEquals("equals", filter2
, filter2
);
122 assertFalse("equals", filter1
.equals(filter2
));
123 assertFalse("equals", filter2
.equals(filter1
));
127 public void testEqualsSymmetry() {
128 TmfTraceFilter filter1
= new TmfTraceFilter();
129 TmfTraceFilter filter2
= new TmfTraceFilter();
130 TmfTraceFilter filter3
= new TmfTraceFilter(new ITmfTrace
[] { new TmfTraceStub() });
132 assertEquals("equals", filter1
, filter2
);
133 assertEquals("equals", filter2
, filter1
);
135 assertFalse("equals", filter1
.equals(filter3
));
136 assertFalse("equals", filter3
.equals(filter1
));
140 public void testEqualsTransivity() {
141 TmfTraceFilter filter1
= new TmfTraceFilter();
142 TmfTraceFilter filter2
= new TmfTraceFilter();
143 TmfTraceFilter filter3
= new TmfTraceFilter();
145 assertEquals("equals", filter1
, filter2
);
146 assertEquals("equals", filter2
, filter3
);
147 assertEquals("equals", filter3
, filter1
);
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
});
154 assertEquals("equals", filter1
, filter2
);
155 assertEquals("equals", filter2
, filter3
);
156 assertEquals("equals", filter3
, filter1
);
160 public void testEqualsNull() {
161 TmfTraceFilter filter1
= new TmfTraceFilter();
162 TmfTraceFilter filter2
= new TmfTraceFilter(new ITmfTrace
[] { new TmfTraceStub() });
164 assertFalse("equals", filter1
.equals(null));
165 assertFalse("equals", filter2
.equals(null));
168 // ------------------------------------------------------------------------
170 // ------------------------------------------------------------------------
173 public void testHashCode() {
174 TmfTraceFilter filter1
= new TmfTraceFilter();
175 TmfTraceFilter filter2
= new TmfTraceFilter(new ITmfTrace
[] { new TmfTraceStub() });
177 assertFalse("hashCode", filter1
.hashCode() == filter2
.hashCode());
180 // ------------------------------------------------------------------------
182 // ------------------------------------------------------------------------
185 public void testToString() {
186 ITmfTrace trace
= new TmfTraceStub();
187 TmfTraceFilter filter1
= new TmfTraceFilter();
188 TmfTraceFilter filter2
= new TmfTraceFilter(new ITmfTrace
[] { trace
});
190 String expected1
= "TmfTraceFilter [fTraces=[]]";
191 String expected2
= "TmfTraceFilter [fTraces=[" + trace
+ "]]";
193 assertEquals("toString", expected1
, filter1
.toString());
194 assertEquals("toString", expected2
, filter2
.toString());
197 // ------------------------------------------------------------------------
199 // ------------------------------------------------------------------------
202 * The only test that really matters...
205 public void testMatches() {
206 ITmfTrace trace0
= new TmfTraceStub();
207 ITmfTrace trace1
= new TmfTraceStub();
208 ITmfTrace trace2
= new TmfTraceStub();
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
});
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
));
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
));
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
));