Commit | Line | Data |
---|---|---|
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 | 14 | package org.eclipse.linuxtools.lttng2.core.tests.control.model.impl; |
eb1bab5b | 15 | |
2ba3d0a1 AM |
16 | import static org.junit.Assert.*; |
17 | ||
eb1bab5b BH |
18 | import java.util.LinkedList; |
19 | import java.util.List; | |
20 | ||
9315aeee BH |
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; | |
2ba3d0a1 AM |
26 | import org.junit.Before; |
27 | import 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") |
34 | public 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 | } |