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
.assertArrayEquals
;
16 import static org
.junit
.Assert
.assertEquals
;
17 import static org
.junit
.Assert
.assertFalse
;
18 import static org
.junit
.Assert
.assertTrue
;
20 import org
.eclipse
.tracecompass
.tmf
.core
.event
.ITmfEventField
;
21 import org
.eclipse
.tracecompass
.tmf
.core
.event
.TmfEvent
;
22 import org
.eclipse
.tracecompass
.tmf
.core
.event
.TmfEventField
;
23 import org
.eclipse
.tracecompass
.tmf
.core
.event
.aspect
.ITmfEventAspect
;
24 import org
.eclipse
.tracecompass
.tmf
.core
.event
.aspect
.TmfContentFieldAspect
;
25 import org
.eclipse
.tracecompass
.tmf
.core
.filter
.model
.TmfFilterCompareNode
;
26 import org
.eclipse
.tracecompass
.tmf
.core
.filter
.model
.TmfFilterCompareNode
.Type
;
27 import org
.eclipse
.tracecompass
.tmf
.core
.timestamp
.TmfNanoTimestamp
;
28 import org
.junit
.Before
;
29 import org
.junit
.Test
;
32 * Test suite for the {@link TmfFilterCompareNode} class.
34 * @author Patrick Tasse
36 @SuppressWarnings("javadoc")
37 public class TmfFilterCompareNodeTest
extends TmfFilterTreeNodeTestBase
{
39 // ------------------------------------------------------------------------
41 // ------------------------------------------------------------------------
43 private ITmfEventField
[] fFields1
= new ITmfEventField
[] { new TmfEventField(FIELD
, "1", null) };
44 private ITmfEventField
[] fFields2
= new ITmfEventField
[] { new TmfEventField(FIELD
, "5", null) };
45 private ITmfEventField
[] fFields3
= new ITmfEventField
[] { new TmfEventField(FIELD
, "11", null) };
46 private ITmfEventField fContent1
= new TmfEventField(ITmfEventField
.ROOT_FIELD_ID
, null, fFields1
);
47 private ITmfEventField fContent2
= new TmfEventField(ITmfEventField
.ROOT_FIELD_ID
, null, fFields2
);
48 private ITmfEventField fContent3
= new TmfEventField(ITmfEventField
.ROOT_FIELD_ID
, null, fFields3
);
49 private TmfEvent fEvent1
= new TmfEvent(TRACE
, 0, new TmfNanoTimestamp(1), EVENT_TYPE
, fContent1
);
50 private TmfEvent fEvent2
= new TmfEvent(TRACE
, 1, new TmfNanoTimestamp(2), EVENT_TYPE
, fContent2
);
51 private TmfEvent fEvent3
= new TmfEvent(TRACE
, 2, new TmfNanoTimestamp(3), EVENT_TYPE
, fContent3
);
52 private TmfFilterCompareNode fFilter
;
54 // ------------------------------------------------------------------------
56 // ------------------------------------------------------------------------
59 public void createFilter() {
60 fFilter
= new TmfFilterCompareNode(null);
61 fFilterNode
= fFilter
;
65 public void testMatchesNum() {
66 fFilter
.setEventAspect(new TmfContentFieldAspect(FIELD
, FIELD
));
67 fFilter
.setType(Type
.NUM
);
68 fFilter
.setValue("5");
70 fFilter
.setResult(-1);
71 assertTrue(fFilter
.matches(fEvent1
));
72 assertFalse(fFilter
.matches(fEvent2
));
73 assertFalse(fFilter
.matches(fEvent3
));
76 assertFalse(fFilter
.matches(fEvent1
));
77 assertTrue(fFilter
.matches(fEvent2
));
78 assertFalse(fFilter
.matches(fEvent3
));
81 assertFalse(fFilter
.matches(fEvent1
));
82 assertFalse(fFilter
.matches(fEvent2
));
83 assertTrue(fFilter
.matches(fEvent3
));
86 assertTrue(fFilter
.matches(fEvent1
));
87 assertTrue(fFilter
.matches(fEvent2
));
88 assertFalse(fFilter
.matches(fEvent3
));
92 public void testMatchesAlpha() {
93 fFilter
.setEventAspect(new TmfContentFieldAspect(FIELD
, FIELD
));
94 fFilter
.setType(Type
.ALPHA
);
95 fFilter
.setValue("5");
97 fFilter
.setResult(-1);
98 assertTrue(fFilter
.matches(fEvent1
));
99 assertFalse(fFilter
.matches(fEvent2
));
100 assertTrue(fFilter
.matches(fEvent3
));
102 fFilter
.setResult(0);
103 assertFalse(fFilter
.matches(fEvent1
));
104 assertTrue(fFilter
.matches(fEvent2
));
105 assertFalse(fFilter
.matches(fEvent3
));
107 fFilter
.setResult(1);
108 assertFalse(fFilter
.matches(fEvent1
));
109 assertFalse(fFilter
.matches(fEvent2
));
110 assertFalse(fFilter
.matches(fEvent3
));
112 fFilter
.setNot(true);
113 assertTrue(fFilter
.matches(fEvent1
));
114 assertTrue(fFilter
.matches(fEvent2
));
115 assertTrue(fFilter
.matches(fEvent3
));
119 public void testMatchesTimestamp() {
120 fFilter
.setEventAspect(ITmfEventAspect
.BaseAspects
.TIMESTAMP
);
121 fFilter
.setType(Type
.TIMESTAMP
);
122 fFilter
.setValue("0.000000002");
124 fFilter
.setResult(-1);
125 assertTrue(fFilter
.matches(fEvent1
));
126 assertFalse(fFilter
.matches(fEvent2
));
127 assertFalse(fFilter
.matches(fEvent3
));
129 fFilter
.setResult(0);
130 assertFalse(fFilter
.matches(fEvent1
));
131 assertTrue(fFilter
.matches(fEvent2
));
132 assertFalse(fFilter
.matches(fEvent3
));
134 fFilter
.setResult(1);
135 assertFalse(fFilter
.matches(fEvent1
));
136 assertFalse(fFilter
.matches(fEvent2
));
137 assertTrue(fFilter
.matches(fEvent3
));
139 fFilter
.setNot(true);
140 assertTrue(fFilter
.matches(fEvent1
));
141 assertTrue(fFilter
.matches(fEvent2
));
142 assertFalse(fFilter
.matches(fEvent3
));
146 public void testGetName() {
147 assertEquals("getName()", "COMPARE", fFilter
.getNodeName());
151 public void testGetValidChildren() {
152 assertArrayEquals("getValidChildren()", new String
[] {}, fFilter
.getValidChildren().toArray());