tmf.core: Introduce TmfTimestamp factory methods
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.core.tests / src / org / eclipse / tracecompass / tmf / core / tests / filter / TmfCollapseFilterTest.java
CommitLineData
203f982e
BH
1/*******************************************************************************
2 * Copyright (c) 2014 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 * Bernd Hufmann - Initial API and implementation
11 *******************************************************************************/
12
2bdf0193 13package org.eclipse.tracecompass.tmf.core.tests.filter;
203f982e
BH
14
15import static org.junit.Assert.assertEquals;
16import static org.junit.Assert.assertFalse;
17import static org.junit.Assert.assertNotEquals;
18import static org.junit.Assert.assertNull;
19import static org.junit.Assert.assertTrue;
20
34de057e 21import org.eclipse.core.runtime.PlatformObject;
ca5b04ad 22import org.eclipse.jdt.annotation.NonNull;
2bdf0193
AM
23import org.eclipse.tracecompass.internal.tmf.core.filter.TmfCollapseFilter;
24import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
25import org.eclipse.tracecompass.tmf.core.event.ITmfEventField;
26import org.eclipse.tracecompass.tmf.core.event.ITmfEventType;
27import org.eclipse.tracecompass.tmf.core.event.TmfEvent;
28import org.eclipse.tracecompass.tmf.core.event.TmfEventField;
29import org.eclipse.tracecompass.tmf.core.event.TmfEventType;
30import org.eclipse.tracecompass.tmf.core.event.collapse.ITmfCollapsibleEvent;
ca5b04ad 31import org.eclipse.tracecompass.tmf.core.tests.shared.TmfTestTrace;
2bdf0193 32import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
b2c971ec 33import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
0c7471fb 34import org.eclipse.tracecompass.tmf.core.trace.ITmfContext;
2bdf0193 35import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
ca5b04ad 36import org.junit.After;
203f982e
BH
37import org.junit.Test;
38
39/**
40 * Test suite for the {@link TmfCollpaseFilter} class.
41 *
42 * @author Bernd Hufmann
43 */
44@SuppressWarnings("javadoc")
45public class TmfCollapseFilterTest {
46
ca5b04ad
GB
47 private static final TmfTestTrace STUB_TRACE = TmfTestTrace.A_TEST_10K;
48
203f982e
BH
49 // ------------------------------------------------------------------------
50 // Variables
51 // ------------------------------------------------------------------------
52
53 private CollapsibleEvent fCollapsibleEvent1 = new CollapsibleEvent(true);
54 private CollapsibleEvent fCollapsibleEvent2 = new CollapsibleEvent(true);
55 private CollapsibleEvent fCollapsibleEvent3 = new CollapsibleEvent(false);
56 private NonCollapsibleEvent fNonCollapsibleEvent1 = new NonCollapsibleEvent();
57 private TmfCollapseFilter fFilter = new TmfCollapseFilter();
ca5b04ad 58 private @NonNull ITmfTrace fTrace = STUB_TRACE.getTrace();
203f982e
BH
59
60 // ------------------------------------------------------------------------
61 // matches
62 // ------------------------------------------------------------------------
63
ca5b04ad
GB
64 @After
65 public void disposeTrace() {
66 fTrace.dispose();
67 }
68
203f982e
BH
69 @Test
70 public void testMatches() {
71
72 TmfCollapseFilter filter = new TmfCollapseFilter();
73
74 assertTrue(filter.matches(fCollapsibleEvent1));
75 assertFalse(filter.matches(fCollapsibleEvent2));
76 assertFalse(filter.matches(fCollapsibleEvent1));
77 assertFalse(filter.matches(fCollapsibleEvent2));
78 assertTrue(filter.matches(fNonCollapsibleEvent1));
79 assertTrue(filter.matches(fNonCollapsibleEvent1));
80 assertTrue(filter.matches(fCollapsibleEvent1));
81 assertFalse(filter.matches(fCollapsibleEvent2));
82 assertTrue(filter.matches(fCollapsibleEvent3));
83 }
84
85 @Test
86 public void testInterfaces() {
87 assertNull("getParent()", fFilter.getParent());
88 assertEquals("getName()", "Collapse", fFilter.getNodeName());
89 assertEquals("hasChildren()", false, fFilter.hasChildren());
90 assertEquals("getChildrenCount()", 0, fFilter.getChildrenCount());
91 assertEquals("getChildren()", 0, fFilter.getChildren().length);
92 }
93
94 @Test
95 public void testClone() {
96 assertNotEquals("clone()", fFilter, fFilter.clone());
97 }
98
ca5b04ad 99 @Test(expected = UnsupportedOperationException.class)
203f982e
BH
100 public void testGetChild() {
101 fFilter.getChild(0);
102 }
103
ca5b04ad 104 @Test(expected = UnsupportedOperationException.class)
203f982e
BH
105 public void testRemove() {
106 fFilter.remove();
107 }
108
ca5b04ad 109 @Test(expected = UnsupportedOperationException.class)
203f982e
BH
110 public void testRemoveChild() {
111 fFilter.removeChild(null);
112 }
113
ca5b04ad 114 @Test(expected = UnsupportedOperationException.class)
203f982e
BH
115 public void testAddChild() {
116 fFilter.addChild(null);
117 }
118
ca5b04ad 119 @Test(expected = UnsupportedOperationException.class)
203f982e
BH
120 public void testReplaceChild() {
121 fFilter.replaceChild(0, null);
122 }
123
ca5b04ad 124 @Test(expected = UnsupportedOperationException.class)
203f982e
BH
125 public void testGetValidChildren() {
126 fFilter.getValidChildren();
127 }
128
129 // ------------------------------------------------------------------------
130 // Helper Classes
131 // ------------------------------------------------------------------------
132
133 private class CollapsibleEvent extends TmfEvent implements ITmfCollapsibleEvent {
134
135 private final boolean fIsCollapsible;
ca5b04ad 136
203f982e 137 CollapsibleEvent(boolean isCollapsible) {
e1de2fd4 138 super(fTrace, ITmfContext.UNKNOWN_RANK, null, null, null);
203f982e
BH
139 fIsCollapsible = isCollapsible;
140 }
ca5b04ad 141
203f982e
BH
142 @Override
143 public boolean isCollapsibleWith(ITmfEvent otherEvent) {
ca5b04ad 144 return ((CollapsibleEvent) otherEvent).fIsCollapsible;
203f982e
BH
145 }
146 }
147
34de057e 148 private class NonCollapsibleEvent extends PlatformObject implements ITmfEvent {
ca5b04ad 149
203f982e
BH
150 @Override
151 public ITmfTrace getTrace() {
ca5b04ad 152 return fTrace;
203f982e 153 }
ca5b04ad 154
203f982e
BH
155 @Override
156 public long getRank() {
157 return 0;
158 }
ca5b04ad 159
203f982e
BH
160 @Override
161 public ITmfTimestamp getTimestamp() {
b2c971ec 162 return TmfTimestamp.fromNanos(100);
203f982e 163 }
ca5b04ad 164
203f982e
BH
165 @Override
166 public ITmfEventType getType() {
167 return new TmfEventType();
168 }
ca5b04ad 169
5c3d072d
MK
170 @Override
171 public String getName() {
172 return "";
173 }
174
203f982e
BH
175 @Override
176 public ITmfEventField getContent() {
177 return new TmfEventField("testField", "test", null);
178 }
203f982e
BH
179 }
180}
This page took 0.085805 seconds and 5 git commands to generate.