lttng: Port unit tests to JUnit4
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.core.tests / src / org / eclipse / linuxtools / lttng2 / core / tests / control / model / impl / ChannelInfoTest.java
CommitLineData
eb1bab5b 1/**********************************************************************
2ba3d0a1 2 * Copyright (c) 2012, 2013 Ericsson
b0318660 3 *
eb1bab5b
BH
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
b0318660
AM
8 *
9 * Contributors:
eb1bab5b 10 * Bernd Hufmann - Initial API and implementation
2ba3d0a1 11 * Alexandre Montplaisir - Port to JUnit4
eb1bab5b 12 **********************************************************************/
2ba3d0a1 13
9315aeee 14package org.eclipse.linuxtools.lttng2.core.tests.control.model.impl;
eb1bab5b 15
2ba3d0a1
AM
16import static org.junit.Assert.*;
17
eb1bab5b
BH
18import java.util.LinkedList;
19import java.util.List;
20
9315aeee
BH
21import org.eclipse.linuxtools.internal.lttng2.core.control.model.IChannelInfo;
22import org.eclipse.linuxtools.internal.lttng2.core.control.model.IEventInfo;
23import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceEnablement;
24import org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.ChannelInfo;
25import org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.EventInfo;
2ba3d0a1
AM
26import org.junit.Before;
27import org.junit.Test;
eb1bab5b
BH
28
29/**
2ba3d0a1
AM
30 * The class <code>ChannelInfoTest</code> contains tests for the class
31 * <code>{@link ChannelInfo}</code>.
eb1bab5b 32 */
2ba3d0a1
AM
33@SuppressWarnings("nls")
34public class ChannelInfoTest {
35
eb1bab5b
BH
36 // ------------------------------------------------------------------------
37 // Test data
38 // ------------------------------------------------------------------------
2ba3d0a1 39
eb1bab5b
BH
40 private IChannelInfo fChannelInfo1 = null;
41 private IChannelInfo fChannelInfo2 = null;
b0318660 42
eb1bab5b
BH
43 // ------------------------------------------------------------------------
44 // Housekeeping
45 // ------------------------------------------------------------------------
b0318660 46
eb1bab5b
BH
47 /**
48 * Perform pre-test initialization.
eb1bab5b 49 */
2ba3d0a1 50 @Before
eb1bab5b
BH
51 public void setUp() {
52 ModelImplFactory factory = new ModelImplFactory();
53 fChannelInfo1 = factory.getChannel1();
54 fChannelInfo2 = factory.getChannel2();
55 }
56
eb1bab5b
BH
57 // ------------------------------------------------------------------------
58 // Tests
59 // ------------------------------------------------------------------------
b0318660 60
eb1bab5b
BH
61 // ------------------------------------------------------------------------
62 // Constructors
63 // ------------------------------------------------------------------------
64
65 /**
66 * Run the ChannelInfo() constructor test.
eb1bab5b 67 */
2ba3d0a1 68 @Test
eb1bab5b
BH
69 public void testChannelInfo() {
70 ChannelInfo result = new ChannelInfo("test");
71 assertNotNull(result);
b0318660 72
eb1bab5b
BH
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());
81 }
82
2ba3d0a1
AM
83 /**
84 * Test copy constructor.
85 */
86 @Test
eb1bab5b
BH
87 public void testChannelInfoCopy() {
88 ChannelInfo channelInfo = new ChannelInfo((ChannelInfo)fChannelInfo1);
b0318660 89
eb1bab5b
BH
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);
b0318660 98
eb1bab5b
BH
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]);
103 }
104 }
105
2ba3d0a1
AM
106 /**
107 * Test copy constructor with a null value.
108 */
109 @Test
eb1bab5b
BH
110 public void testChannelCopy2() {
111 try {
112 ChannelInfo channel = null;
113 new ChannelInfo(channel);
114 fail("null copy");
115 }
116 catch (IllegalArgumentException e) {
117 // Success
118 }
119 }
120
121 /**
122 * Run the IEventInfo[] getEvents() method test.
eb1bab5b 123 */
2ba3d0a1 124 @Test
eb1bab5b
BH
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);
b0318660 134
eb1bab5b
BH
135 // add an event
136 IEventInfo event = new EventInfo("event");
137 fixture.addEvent(event);
138
139 // Verify the stored events
140 IEventInfo[] result = fixture.getEvents();
141
142 assertNotNull(result);
143 assertEquals(1, result.length);
144 assertNotNull(result[0]);
145 assertTrue(event.equals(result[0]));
146 }
147
148 /**
149 * Run the long getNumberOfSubBuffers() method test.
eb1bab5b 150 */
2ba3d0a1 151 @Test
eb1bab5b
BH
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"));
162
163 long switchTimer = fixture.getSwitchTimer();
164 assertEquals(2L, switchTimer);
b0318660 165
eb1bab5b
BH
166 boolean mode = fixture.isOverwriteMode();
167 assertTrue(mode);
b0318660 168
eb1bab5b
BH
169 long readTimer = fixture.getReadTimer();
170 assertEquals(3L, readTimer);
b0318660 171
eb1bab5b
BH
172 TraceEnablement state = fixture.getState();
173 assertEquals("disabled", state.getInName());
b0318660 174
eb1bab5b
BH
175 long numSubBuffers = fixture.getNumberOfSubBuffers();
176 assertEquals(4, numSubBuffers);
b0318660 177
eb1bab5b
BH
178 String outputType = fixture.getOutputType();
179 assertEquals("splice()", outputType);
b0318660 180
eb1bab5b
BH
181 long subBufferSize = fixture.getSubBufferSize();
182 assertEquals(1L, subBufferSize);
183
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);
191
192 switchTimer = fixture.getSwitchTimer();
193 assertEquals(5L, switchTimer);
b0318660 194
eb1bab5b
BH
195 mode = fixture.isOverwriteMode();
196 assertFalse(mode);
b0318660 197
eb1bab5b
BH
198 readTimer = fixture.getReadTimer();
199 assertEquals(6L, readTimer);
b0318660 200
eb1bab5b
BH
201 state = fixture.getState();
202 assertEquals("enabled", state.getInName());
b0318660 203
eb1bab5b
BH
204 numSubBuffers = fixture.getNumberOfSubBuffers();
205 assertEquals(7, numSubBuffers);
b0318660 206
eb1bab5b
BH
207 outputType = fixture.getOutputType();
208 assertEquals("mmap()", outputType);
b0318660 209
eb1bab5b
BH
210 subBufferSize = fixture.getSubBufferSize();
211 assertEquals(8L, subBufferSize);
212 }
213
214 /**
215 * Run the void setEvents(List<IEventInfo>) method test.
eb1bab5b 216 */
2ba3d0a1 217 @Test
eb1bab5b
BH
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>();
b0318660 228
eb1bab5b
BH
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"));
233 events.add(info);
234 }
235
236 fixture.setEvents(events);
237
238 IEventInfo[] infos = fixture.getEvents();
b0318660 239
eb1bab5b 240 assertEquals(events.size(), infos.length);
b0318660 241
eb1bab5b
BH
242 for (int i = 0; i < infos.length; i++) {
243 assertEquals(events.get(i), infos[i]);
244 }
245 }
246
2ba3d0a1
AM
247 /**
248 * Run the String toString() method test.
249 */
250 @Test
eb1bab5b
BH
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);
260
261 String result = fixture.toString();
262
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);
265 }
266
267 /**
2ba3d0a1 268 * Run another String toString() method test.
eb1bab5b 269 */
2ba3d0a1 270 @Test
eb1bab5b
BH
271 public void testToString_2() {
272 String result = fChannelInfo1.toString();
273
274 // add additional test code here
4775bcbf 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);
eb1bab5b 276 }
b0318660 277
eb1bab5b
BH
278 // ------------------------------------------------------------------------
279 // equals
280 // ------------------------------------------------------------------------
281
2ba3d0a1
AM
282 /**
283 * Run the equals() method test.
284 */
285 @Test
eb1bab5b
BH
286 public void testEqualsReflexivity() {
287 assertTrue("equals", fChannelInfo1.equals(fChannelInfo1));
288 assertTrue("equals", fChannelInfo2.equals(fChannelInfo2));
289
290 assertTrue("equals", !fChannelInfo1.equals(fChannelInfo2));
291 assertTrue("equals", !fChannelInfo2.equals(fChannelInfo1));
292 }
b0318660 293
2ba3d0a1
AM
294 /**
295 * Run the equals() method test.
296 */
297 @Test
eb1bab5b
BH
298 public void testEqualsSymmetry() {
299 ChannelInfo event1 = new ChannelInfo((ChannelInfo)fChannelInfo1);
300 ChannelInfo event2 = new ChannelInfo((ChannelInfo)fChannelInfo2);
301
302 assertTrue("equals", event1.equals(fChannelInfo1));
303 assertTrue("equals", fChannelInfo1.equals(event1));
304
305 assertTrue("equals", event2.equals(fChannelInfo2));
306 assertTrue("equals", fChannelInfo2.equals(event2));
307 }
b0318660 308
2ba3d0a1
AM
309 /**
310 * Run the equals() method test.
311 */
312 @Test
eb1bab5b
BH
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);
317
318 assertTrue("equals", channel1.equals(channel2));
319 assertTrue("equals", channel2.equals(channel3));
320 assertTrue("equals", channel1.equals(channel3));
321 }
b0318660 322
2ba3d0a1
AM
323 /**
324 * Run the equals() method test.
325 */
326 @Test
ea21cd65 327 public void testEqualsNull() {
eb1bab5b
BH
328 assertTrue("equals", !fChannelInfo1.equals(null));
329 assertTrue("equals", !fChannelInfo2.equals(null));
330 }
b0318660 331
eb1bab5b
BH
332 // ------------------------------------------------------------------------
333 // hashCode
334 // ------------------------------------------------------------------------
335
2ba3d0a1
AM
336 /**
337 * Run the hashCode() method test.
338 */
339 @Test
eb1bab5b
BH
340 public void testHashCode() {
341 ChannelInfo channel1 = new ChannelInfo((ChannelInfo)fChannelInfo1);
342 ChannelInfo channel2 = new ChannelInfo((ChannelInfo)fChannelInfo2);
343
344 assertTrue("hashCode", fChannelInfo1.hashCode() == channel1.hashCode());
345 assertTrue("hashCode", fChannelInfo2.hashCode() == channel2.hashCode());
346
347 assertTrue("hashCode", fChannelInfo1.hashCode() != channel2.hashCode());
348 assertTrue("hashCode", fChannelInfo2.hashCode() != channel1.hashCode());
349 }
350}
This page took 0.056696 seconds and 5 git commands to generate.