1 /**********************************************************************
2 * Copyright (c) 2012, 2013 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 * Bernd Hufmann - Initial API and implementation
11 * Alexandre Montplaisir - Port to JUnit4
12 **********************************************************************/
14 package org
.eclipse
.linuxtools
.lttng2
.core
.tests
.control
.model
.impl
;
16 import static org
.junit
.Assert
.*;
18 import java
.util
.LinkedList
;
19 import java
.util
.List
;
21 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IChannelInfo
;
22 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.IEventInfo
;
23 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.TraceEnablement
;
24 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.impl
.ChannelInfo
;
25 import org
.eclipse
.linuxtools
.internal
.lttng2
.core
.control
.model
.impl
.EventInfo
;
26 import org
.junit
.Before
;
27 import org
.junit
.Test
;
30 * The class <code>ChannelInfoTest</code> contains tests for the class
31 * <code>{@link ChannelInfo}</code>.
33 @SuppressWarnings("nls")
34 public class ChannelInfoTest
{
36 // ------------------------------------------------------------------------
38 // ------------------------------------------------------------------------
40 private IChannelInfo fChannelInfo1
= null;
41 private IChannelInfo fChannelInfo2
= null;
43 // ------------------------------------------------------------------------
45 // ------------------------------------------------------------------------
48 * Perform pre-test initialization.
52 ModelImplFactory factory
= new ModelImplFactory();
53 fChannelInfo1
= factory
.getChannel1();
54 fChannelInfo2
= factory
.getChannel2();
57 // ------------------------------------------------------------------------
59 // ------------------------------------------------------------------------
61 // ------------------------------------------------------------------------
63 // ------------------------------------------------------------------------
66 * Run the ChannelInfo() constructor test.
69 public void testChannelInfo() {
70 ChannelInfo result
= new ChannelInfo("test");
71 assertNotNull(result
);
73 assertEquals("test", result
.getName());
74 assertEquals(0, result
.getNumberOfSubBuffers());
75 assertEquals("", result
.getOutputType());
76 assertEquals(false, result
.isOverwriteMode());
77 assertEquals(0, result
.getReadTimer());
78 assertEquals("disabled", result
.getState().getInName());
79 assertEquals(0, result
.getSubBufferSize());
80 assertEquals(0, result
.getSwitchTimer());
84 * Test copy constructor.
87 public void testChannelInfoCopy() {
88 ChannelInfo channelInfo
= new ChannelInfo((ChannelInfo
)fChannelInfo1
);
90 assertEquals(fChannelInfo1
.getName(), channelInfo
.getName());
91 assertEquals(fChannelInfo1
.getNumberOfSubBuffers(), channelInfo
.getNumberOfSubBuffers());
92 assertEquals(fChannelInfo1
.getOutputType(), channelInfo
.getOutputType());
93 assertEquals(fChannelInfo1
.isOverwriteMode(), channelInfo
.isOverwriteMode());
94 assertEquals(fChannelInfo1
.getReadTimer(), channelInfo
.getReadTimer());
95 assertEquals(fChannelInfo1
.getState(), channelInfo
.getState());
96 assertEquals(fChannelInfo1
.getSwitchTimer(), channelInfo
.getSwitchTimer());
97 assertEquals(fChannelInfo1
.getEvents().length
, channelInfo
.getEvents().length
);
99 IEventInfo
[] orignalEvents
= fChannelInfo1
.getEvents();
100 IEventInfo
[] resultEvents
= channelInfo
.getEvents();
101 for (int i
= 0; i
< orignalEvents
.length
; i
++) {
102 assertEquals(orignalEvents
[i
], resultEvents
[i
]);
107 * Test copy constructor with a null value.
110 public void testChannelCopy2() {
112 ChannelInfo channel
= null;
113 new ChannelInfo(channel
);
116 catch (IllegalArgumentException e
) {
122 * Run the IEventInfo[] getEvents() method test.
125 public void testAddAndGetEvents_1() {
126 ChannelInfo fixture
= new ChannelInfo("test");
127 fixture
.setSwitchTimer(1L);
128 fixture
.setOverwriteMode(true);
129 fixture
.setReadTimer(1L);
130 fixture
.setState(TraceEnablement
.DISABLED
);
131 fixture
.setNumberOfSubBuffers(1);
132 fixture
.setOutputType("");
133 fixture
.setSubBufferSize(1L);
136 IEventInfo event
= new EventInfo("event");
137 fixture
.addEvent(event
);
139 // Verify the stored events
140 IEventInfo
[] result
= fixture
.getEvents();
142 assertNotNull(result
);
143 assertEquals(1, result
.length
);
144 assertNotNull(result
[0]);
145 assertTrue(event
.equals(result
[0]));
149 * Run the long getNumberOfSubBuffers() method test.
152 public void testGetAndSetters() {
153 ChannelInfo fixture
= new ChannelInfo("test");
154 fixture
.setSwitchTimer(2L);
155 fixture
.setOverwriteMode(true);
156 fixture
.setReadTimer(3L);
157 fixture
.setState(TraceEnablement
.DISABLED
);
158 fixture
.setNumberOfSubBuffers(4);
159 fixture
.setOutputType("splice()");
160 fixture
.setSubBufferSize(1L);
161 fixture
.addEvent(new EventInfo("event"));
163 long switchTimer
= fixture
.getSwitchTimer();
164 assertEquals(2L, switchTimer
);
166 boolean mode
= fixture
.isOverwriteMode();
169 long readTimer
= fixture
.getReadTimer();
170 assertEquals(3L, readTimer
);
172 TraceEnablement state
= fixture
.getState();
173 assertEquals("disabled", state
.getInName());
175 long numSubBuffers
= fixture
.getNumberOfSubBuffers();
176 assertEquals(4, numSubBuffers
);
178 String outputType
= fixture
.getOutputType();
179 assertEquals("splice()", outputType
);
181 long subBufferSize
= fixture
.getSubBufferSize();
182 assertEquals(1L, subBufferSize
);
184 fixture
.setSwitchTimer(5L);
185 fixture
.setOverwriteMode(false);
186 fixture
.setReadTimer(6L);
187 fixture
.setState(TraceEnablement
.ENABLED
);
188 fixture
.setNumberOfSubBuffers(7);
189 fixture
.setOutputType("mmap()");
190 fixture
.setSubBufferSize(8L);
192 switchTimer
= fixture
.getSwitchTimer();
193 assertEquals(5L, switchTimer
);
195 mode
= fixture
.isOverwriteMode();
198 readTimer
= fixture
.getReadTimer();
199 assertEquals(6L, readTimer
);
201 state
= fixture
.getState();
202 assertEquals("enabled", state
.getInName());
204 numSubBuffers
= fixture
.getNumberOfSubBuffers();
205 assertEquals(7, numSubBuffers
);
207 outputType
= fixture
.getOutputType();
208 assertEquals("mmap()", outputType
);
210 subBufferSize
= fixture
.getSubBufferSize();
211 assertEquals(8L, subBufferSize
);
215 * Run the void setEvents(List<IEventInfo>) method test.
218 public void testSetEvents_1() {
219 ChannelInfo fixture
= new ChannelInfo("test");
220 fixture
.setSwitchTimer(1L);
221 fixture
.setOverwriteMode(true);
222 fixture
.setReadTimer(1L);
223 fixture
.setState(TraceEnablement
.DISABLED
);
224 fixture
.setNumberOfSubBuffers(1);
225 fixture
.setOutputType("");
226 fixture
.setSubBufferSize(1L);
227 List
<IEventInfo
> events
= new LinkedList
<IEventInfo
>();
229 for (int i
= 0; i
< 2; i
++) {
230 IEventInfo info
= new EventInfo("event" + i
);
231 info
.setEventType("tracepoint");
232 info
.setState((i
% 2 == 0 ?
"enabled" : "disabled"));
236 fixture
.setEvents(events
);
238 IEventInfo
[] infos
= fixture
.getEvents();
240 assertEquals(events
.size(), infos
.length
);
242 for (int i
= 0; i
< infos
.length
; i
++) {
243 assertEquals(events
.get(i
), infos
[i
]);
248 * Run the String toString() method test.
251 public void testToString_1() {
252 ChannelInfo fixture
= new ChannelInfo("channel");
253 fixture
.setSwitchTimer(1L);
254 fixture
.setOverwriteMode(true);
255 fixture
.setReadTimer(1L);
256 fixture
.setState(TraceEnablement
.DISABLED
);
257 fixture
.setNumberOfSubBuffers(1);
258 fixture
.setOutputType("splice()");
259 fixture
.setSubBufferSize(1L);
261 String result
= fixture
.toString();
263 // add additional test code here
264 assertEquals("[ChannelInfo([TraceInfo(Name=channel)],State=DISABLED,OverwriteMode=true,SubBuffersSize=1,NumberOfSubBuffers=1,SwitchTimer=1,ReadTimer=1,output=splice(),Events=None)]", result
);
268 * Run another String toString() method test.
271 public void testToString_2() {
272 String result
= fChannelInfo1
.toString();
274 // add additional test code here
275 assertEquals("[ChannelInfo([TraceInfo(Name=channel1)],State=DISABLED,OverwriteMode=true,SubBuffersSize=13,NumberOfSubBuffers=12,SwitchTimer=10,ReadTimer=11,output=splice(),Events=[EventInfo([BaseEventInfo([TraceInfo(Name=event1)],type=TRACEPOINT,level=TRACE_DEBUG)],State=ENABLED)])]", result
);
278 // ------------------------------------------------------------------------
280 // ------------------------------------------------------------------------
283 * Run the equals() method test.
286 public void testEqualsReflexivity() {
287 assertTrue("equals", fChannelInfo1
.equals(fChannelInfo1
));
288 assertTrue("equals", fChannelInfo2
.equals(fChannelInfo2
));
290 assertTrue("equals", !fChannelInfo1
.equals(fChannelInfo2
));
291 assertTrue("equals", !fChannelInfo2
.equals(fChannelInfo1
));
295 * Run the equals() method test.
298 public void testEqualsSymmetry() {
299 ChannelInfo event1
= new ChannelInfo((ChannelInfo
)fChannelInfo1
);
300 ChannelInfo event2
= new ChannelInfo((ChannelInfo
)fChannelInfo2
);
302 assertTrue("equals", event1
.equals(fChannelInfo1
));
303 assertTrue("equals", fChannelInfo1
.equals(event1
));
305 assertTrue("equals", event2
.equals(fChannelInfo2
));
306 assertTrue("equals", fChannelInfo2
.equals(event2
));
310 * Run the equals() method test.
313 public void testEqualsTransivity() {
314 ChannelInfo channel1
= new ChannelInfo((ChannelInfo
)fChannelInfo1
);
315 ChannelInfo channel2
= new ChannelInfo((ChannelInfo
)fChannelInfo1
);
316 ChannelInfo channel3
= new ChannelInfo((ChannelInfo
)fChannelInfo1
);
318 assertTrue("equals", channel1
.equals(channel2
));
319 assertTrue("equals", channel2
.equals(channel3
));
320 assertTrue("equals", channel1
.equals(channel3
));
324 * Run the equals() method test.
327 public void testEqualsNull() {
328 assertTrue("equals", !fChannelInfo1
.equals(null));
329 assertTrue("equals", !fChannelInfo2
.equals(null));
332 // ------------------------------------------------------------------------
334 // ------------------------------------------------------------------------
337 * Run the hashCode() method test.
340 public void testHashCode() {
341 ChannelInfo channel1
= new ChannelInfo((ChannelInfo
)fChannelInfo1
);
342 ChannelInfo channel2
= new ChannelInfo((ChannelInfo
)fChannelInfo2
);
344 assertTrue("hashCode", fChannelInfo1
.hashCode() == channel1
.hashCode());
345 assertTrue("hashCode", fChannelInfo2
.hashCode() == channel2
.hashCode());
347 assertTrue("hashCode", fChannelInfo1
.hashCode() != channel2
.hashCode());
348 assertTrue("hashCode", fChannelInfo2
.hashCode() != channel1
.hashCode());