Commit | Line | Data |
---|---|---|
eb1bab5b | 1 | /********************************************************************** |
ba3a9bd2 | 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.IDomainInfo; |
22 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.ISessionInfo; | |
23 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceSessionState; | |
24 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.SessionInfo; | |
2ba3d0a1 AM |
25 | import org.junit.Before; |
26 | import org.junit.Test; | |
eb1bab5b BH |
27 | |
28 | /** | |
2ba3d0a1 AM |
29 | * The class <code>ChannelInfoTest</code> contains tests for the class |
30 | * <code>{@link SessionInfo}</code>. | |
eb1bab5b | 31 | */ |
2ba3d0a1 AM |
32 | public class SessionInfoTest { |
33 | ||
eb1bab5b BH |
34 | // ------------------------------------------------------------------------ |
35 | // Test data | |
36 | // ------------------------------------------------------------------------ | |
2ba3d0a1 | 37 | |
eb1bab5b BH |
38 | private ISessionInfo fSessionInfo1 = null; |
39 | private ISessionInfo fSessionInfo2 = null; | |
b0318660 | 40 | |
eb1bab5b BH |
41 | private IDomainInfo fDomainInfo1 = null; |
42 | private IDomainInfo fDomainInfo2 = null; | |
43 | ||
44 | // ------------------------------------------------------------------------ | |
45 | // Housekeeping | |
46 | // ------------------------------------------------------------------------ | |
b0318660 | 47 | |
eb1bab5b BH |
48 | /** |
49 | * Perform pre-test initialization. | |
eb1bab5b | 50 | */ |
2ba3d0a1 | 51 | @Before |
eb1bab5b BH |
52 | public void setUp() { |
53 | ModelImplFactory factory = new ModelImplFactory(); | |
54 | fSessionInfo1 = factory.getSessionInfo1(); | |
55 | fDomainInfo1 = factory.getDomainInfo1(); | |
56 | fSessionInfo2 = factory.getSessionInfo2(); | |
57 | fDomainInfo2 = factory.getDomainInfo2(); | |
58 | } | |
59 | ||
eb1bab5b BH |
60 | // ------------------------------------------------------------------------ |
61 | // Tests | |
62 | // ------------------------------------------------------------------------ | |
b0318660 | 63 | |
eb1bab5b BH |
64 | // ------------------------------------------------------------------------ |
65 | // Constructors | |
66 | // ------------------------------------------------------------------------ | |
67 | ||
68 | /** | |
69 | * Run the ChannelInfo() constructor test. | |
eb1bab5b | 70 | */ |
2ba3d0a1 | 71 | @Test |
eb1bab5b BH |
72 | public void testSessionInfo() { |
73 | ISessionInfo result = new SessionInfo("test"); | |
74 | assertNotNull(result); | |
b0318660 | 75 | |
eb1bab5b BH |
76 | assertEquals("test", result.getName()); |
77 | assertEquals("", result.getSessionPath()); | |
78 | TraceSessionState state = result.getSessionState(); | |
79 | assertEquals("inactive", state.getInName()); | |
80 | assertEquals("INACTIVE", state.name()); | |
81 | assertEquals("INACTIVE", state.toString()); | |
82 | assertEquals(0, state.ordinal()); | |
83 | assertEquals(0, result.getDomains().length); | |
84 | } | |
85 | ||
2ba3d0a1 AM |
86 | /** |
87 | * Test copy constructor. | |
88 | */ | |
89 | @Test | |
eb1bab5b BH |
90 | public void testSessionInfoCopy() { |
91 | SessionInfo sessionInfo = new SessionInfo((SessionInfo)fSessionInfo1); | |
b0318660 | 92 | |
eb1bab5b BH |
93 | assertEquals(sessionInfo.getName(), fSessionInfo1.getName()); |
94 | assertEquals(sessionInfo.getSessionPath(), fSessionInfo1.getSessionPath()); | |
95 | assertEquals(sessionInfo.getSessionState(), fSessionInfo1.getSessionState()); | |
96 | ||
97 | IDomainInfo[] orignalDomains = fSessionInfo1.getDomains(); | |
98 | IDomainInfo[] resultDomains = sessionInfo.getDomains(); | |
99 | for (int i = 0; i < orignalDomains.length; i++) { | |
100 | assertEquals(orignalDomains[i], resultDomains[i]); | |
101 | } | |
102 | } | |
103 | ||
2ba3d0a1 AM |
104 | /** |
105 | * Test copy constructor. | |
106 | */ | |
107 | @Test | |
eb1bab5b BH |
108 | public void testSessionCopy2() { |
109 | try { | |
110 | SessionInfo session = null; | |
111 | new SessionInfo(session); | |
112 | fail("null copy"); | |
113 | } | |
114 | catch (IllegalArgumentException e) { | |
115 | // Success | |
116 | } | |
117 | } | |
118 | ||
119 | /** | |
120 | * Run the long getNumberOfSubBuffers() method test. | |
eb1bab5b | 121 | */ |
2ba3d0a1 | 122 | @Test |
eb1bab5b | 123 | public void testGetAndSetters() { |
b0318660 | 124 | |
eb1bab5b BH |
125 | // Note that addDomain() has been executed in setUp() |
126 | // check get method here | |
127 | assertEquals(1, fSessionInfo1.getDomains().length); | |
128 | assertNotNull(fSessionInfo1.getDomains()[0]); | |
129 | assertEquals(fDomainInfo1, fSessionInfo1.getDomains()[0]); | |
b0318660 | 130 | |
eb1bab5b | 131 | ISessionInfo session = new SessionInfo("session"); |
e0838ca1 | 132 | List<IDomainInfo> list = new LinkedList<>(); |
eb1bab5b BH |
133 | list.add(fDomainInfo1); |
134 | list.add(fDomainInfo2); | |
135 | session.setDomains(list); | |
b0318660 | 136 | |
eb1bab5b BH |
137 | IDomainInfo[] result = session.getDomains(); |
138 | assertEquals(2, result.length); | |
139 | assertEquals(fDomainInfo1, result[0]); | |
140 | assertEquals(fDomainInfo2, result[1]); | |
b0318660 | 141 | |
eb1bab5b BH |
142 | session.setSessionPath("/home/user"); |
143 | assertEquals("/home/user", session.getSessionPath()); | |
b0318660 | 144 | |
eb1bab5b BH |
145 | session.setSessionState("active"); |
146 | TraceSessionState state = session.getSessionState(); | |
147 | state = session.getSessionState(); | |
148 | assertEquals("active", state.getInName()); | |
149 | assertEquals("ACTIVE", state.name()); | |
150 | assertEquals("ACTIVE", state.toString()); | |
151 | assertEquals(1, state.ordinal()); | |
b0318660 | 152 | |
eb1bab5b BH |
153 | session.setSessionState("inactive"); |
154 | state = session.getSessionState(); | |
155 | assertEquals("inactive", state.getInName()); | |
156 | assertEquals("INACTIVE", state.name()); | |
157 | assertEquals("INACTIVE", state.toString()); | |
158 | assertEquals(0, state.ordinal()); | |
159 | ||
160 | session.setSessionState("test"); | |
161 | state = session.getSessionState(); | |
162 | assertEquals("inactive", state.getInName()); | |
163 | assertEquals("INACTIVE", state.name()); | |
164 | assertEquals("INACTIVE", state.toString()); | |
165 | assertEquals(0, state.ordinal()); | |
b0318660 | 166 | |
eb1bab5b BH |
167 | session.setSessionState(TraceSessionState.ACTIVE); |
168 | state = session.getSessionState(); | |
169 | assertEquals("active", state.getInName()); | |
170 | assertEquals("ACTIVE", state.name()); | |
171 | assertEquals("ACTIVE", state.toString()); | |
172 | assertEquals(1, state.ordinal()); | |
173 | ||
174 | session.setSessionState(TraceSessionState.INACTIVE); | |
175 | state = session.getSessionState(); | |
176 | assertEquals("inactive", state.getInName()); | |
177 | assertEquals("INACTIVE", state.name()); | |
178 | assertEquals("INACTIVE", state.toString()); | |
179 | assertEquals(0, state.ordinal()); | |
180 | } | |
181 | ||
2ba3d0a1 AM |
182 | /** |
183 | * Run the String toString() method test. | |
184 | */ | |
185 | @Test | |
eb1bab5b BH |
186 | public void testToString_1() { |
187 | ISessionInfo fixture = new SessionInfo("sessionName"); | |
188 | ||
189 | String result = fixture.toString(); | |
190 | ||
191 | // add additional test code here | |
589d0d33 | 192 | assertEquals("[SessionInfo([TraceInfo(Name=sessionName)],Path=,State=INACTIVE,isStreamedTrace=false,Domains=)]", result); |
eb1bab5b BH |
193 | } |
194 | ||
195 | /** | |
196 | * Run the String toString() method test. | |
eb1bab5b | 197 | */ |
2ba3d0a1 | 198 | @Test |
eb1bab5b BH |
199 | public void testToString_2() { |
200 | String result = fSessionInfo1.toString(); | |
201 | ||
202 | // add additional test code here | |
589d0d33 BH |
203 | assertEquals("[SessionInfo([TraceInfo(Name=session1)],Path=/home/user/lttng-trace/mysession/,State=ACTIVE,isStreamedTrace=false,snapshotInfo=" |
204 | + "[SnapshotInfo([TraceInfo(Name=snapshot-1)],snapshotPath=/home/user/lttng-trace/mysession/,ID=1,isStreamedSnapshot=false)]," | |
205 | + "Domains=[DomainInfo([TraceInfo(Name=test1)]," | |
206 | + "Channels=[ChannelInfo([TraceInfo(Name=channel1)],State=DISABLED,OverwriteMode=true,SubBuffersSize=13,NumberOfSubBuffers=12,SwitchTimer=10,ReadTimer=11,output=splice()," | |
207 | + "Events=[EventInfo([BaseEventInfo([TraceInfo(Name=event1)],type=TRACEPOINT,level=TRACE_DEBUG)],State=ENABLED)])]," | |
208 | + "isKernel=false)])]", result); | |
209 | } | |
210 | ||
211 | /** | |
212 | * Run the String toString() method test. | |
213 | */ | |
214 | @Test | |
215 | public void testToString_3() { | |
216 | SessionInfo info = new SessionInfo((SessionInfo)fSessionInfo1); | |
217 | info.setSnapshotInfo(null); | |
218 | info.setSessionPath("/home/user/lttng-trace/mysession/"); | |
219 | ||
220 | String result = info.toString(); | |
221 | ||
222 | // add additional test code here | |
223 | assertEquals("[SessionInfo([TraceInfo(Name=session1)],Path=/home/user/lttng-trace/mysession/,State=ACTIVE,isStreamedTrace=false," | |
224 | + "Domains=[DomainInfo([TraceInfo(Name=test1)]," | |
225 | + "Channels=[ChannelInfo([TraceInfo(Name=channel1)],State=DISABLED,OverwriteMode=true,SubBuffersSize=13,NumberOfSubBuffers=12,SwitchTimer=10,ReadTimer=11,output=splice()," | |
226 | + "Events=[EventInfo([BaseEventInfo([TraceInfo(Name=event1)],type=TRACEPOINT,level=TRACE_DEBUG)],State=ENABLED)])]," | |
227 | + "isKernel=false)])]", result); | |
eb1bab5b | 228 | } |
b0318660 | 229 | |
eb1bab5b BH |
230 | // ------------------------------------------------------------------------ |
231 | // equals | |
232 | // ------------------------------------------------------------------------ | |
233 | ||
2ba3d0a1 AM |
234 | /** |
235 | * Run the {@link SessionInfo#equals} method test. | |
236 | */ | |
237 | @Test | |
eb1bab5b BH |
238 | public void testEqualsReflexivity() { |
239 | assertTrue("equals", fSessionInfo1.equals(fSessionInfo1)); | |
240 | assertTrue("equals", fSessionInfo2.equals(fSessionInfo2)); | |
241 | ||
242 | assertTrue("equals", !fSessionInfo1.equals(fSessionInfo2)); | |
243 | assertTrue("equals", !fSessionInfo2.equals(fSessionInfo1)); | |
244 | } | |
b0318660 | 245 | |
2ba3d0a1 AM |
246 | /** |
247 | * Run the {@link SessionInfo#equals} method test. | |
248 | */ | |
249 | @Test | |
eb1bab5b BH |
250 | public void testEqualsSymmetry() { |
251 | SessionInfo event1 = new SessionInfo((SessionInfo)fSessionInfo1); | |
252 | SessionInfo event2 = new SessionInfo((SessionInfo)fSessionInfo2); | |
253 | ||
254 | assertTrue("equals", event1.equals(fSessionInfo1)); | |
255 | assertTrue("equals", fSessionInfo1.equals(event1)); | |
256 | ||
257 | assertTrue("equals", event2.equals(fSessionInfo2)); | |
258 | assertTrue("equals", fSessionInfo2.equals(event2)); | |
259 | } | |
b0318660 | 260 | |
2ba3d0a1 AM |
261 | /** |
262 | * Run the {@link SessionInfo#equals} method test. | |
263 | */ | |
264 | @Test | |
eb1bab5b BH |
265 | public void testEqualsTransivity() { |
266 | SessionInfo channel1 = new SessionInfo((SessionInfo)fSessionInfo1); | |
267 | SessionInfo channel2 = new SessionInfo((SessionInfo)fSessionInfo1); | |
268 | SessionInfo channel3 = new SessionInfo((SessionInfo)fSessionInfo1); | |
269 | ||
270 | assertTrue("equals", channel1.equals(channel2)); | |
271 | assertTrue("equals", channel2.equals(channel3)); | |
272 | assertTrue("equals", channel1.equals(channel3)); | |
273 | } | |
b0318660 | 274 | |
2ba3d0a1 AM |
275 | /** |
276 | * Run the {@link SessionInfo#equals} method test. | |
277 | */ | |
278 | @Test | |
ea21cd65 | 279 | public void testEqualsNull() { |
eb1bab5b BH |
280 | assertTrue("equals", !fSessionInfo1.equals(null)); |
281 | assertTrue("equals", !fSessionInfo2.equals(null)); | |
282 | } | |
b0318660 | 283 | |
eb1bab5b BH |
284 | // ------------------------------------------------------------------------ |
285 | // hashCode | |
286 | // ------------------------------------------------------------------------ | |
287 | ||
2ba3d0a1 AM |
288 | /** |
289 | * Run the {@link SessionInfo#hashCode} method test. | |
290 | */ | |
291 | @Test | |
eb1bab5b BH |
292 | public void testHashCode() { |
293 | SessionInfo channel1 = new SessionInfo((SessionInfo)fSessionInfo1); | |
294 | SessionInfo channel2 = new SessionInfo((SessionInfo)fSessionInfo2); | |
295 | ||
296 | assertTrue("hashCode", fSessionInfo1.hashCode() == channel1.hashCode()); | |
297 | assertTrue("hashCode", fSessionInfo2.hashCode() == channel2.hashCode()); | |
298 | ||
299 | assertTrue("hashCode", fSessionInfo1.hashCode() != channel2.hashCode()); | |
300 | assertTrue("hashCode", fSessionInfo2.hashCode() != channel1.hashCode()); | |
2ba3d0a1 AM |
301 | } |
302 | } |