1 /**********************************************************************
2 * Copyright (c) 2012, 2014 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
.control
.core
.tests
.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
.control
.core
.model
.IDomainInfo
;
22 import org
.eclipse
.linuxtools
.internal
.lttng2
.control
.core
.model
.ISessionInfo
;
23 import org
.eclipse
.linuxtools
.internal
.lttng2
.control
.core
.model
.TraceSessionState
;
24 import org
.eclipse
.linuxtools
.internal
.lttng2
.control
.core
.model
.impl
.SessionInfo
;
25 import org
.junit
.Before
;
26 import org
.junit
.Test
;
29 * The class <code>ChannelInfoTest</code> contains tests for the class
30 * <code>{@link SessionInfo}</code>.
32 public class SessionInfoTest
{
34 // ------------------------------------------------------------------------
36 // ------------------------------------------------------------------------
38 private ISessionInfo fSessionInfo1
= null;
39 private ISessionInfo fSessionInfo2
= null;
41 private IDomainInfo fDomainInfo1
= null;
42 private IDomainInfo fDomainInfo2
= null;
44 // ------------------------------------------------------------------------
46 // ------------------------------------------------------------------------
49 * Perform pre-test initialization.
53 ModelImplFactory factory
= new ModelImplFactory();
54 fSessionInfo1
= factory
.getSessionInfo1();
55 fDomainInfo1
= factory
.getDomainInfo1();
56 fSessionInfo2
= factory
.getSessionInfo2();
57 fDomainInfo2
= factory
.getDomainInfo2();
60 // ------------------------------------------------------------------------
62 // ------------------------------------------------------------------------
64 // ------------------------------------------------------------------------
66 // ------------------------------------------------------------------------
69 * Run the ChannelInfo() constructor test.
72 public void testSessionInfo() {
73 ISessionInfo result
= new SessionInfo("test");
74 assertNotNull(result
);
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 assertFalse(result
.isSnapshotSession());
85 assertNull(result
.getNetworkUrl());
86 assertNull(result
.getControlUrl());
87 assertNull(result
.getDataUrl());
91 * Test copy constructor.
94 public void testSessionInfoCopy() {
95 SessionInfo sessionInfo
= new SessionInfo((SessionInfo
)fSessionInfo1
);
97 assertEquals(sessionInfo
.getName(), fSessionInfo1
.getName());
98 assertEquals(sessionInfo
.getSessionPath(), fSessionInfo1
.getSessionPath());
99 assertEquals(sessionInfo
.getSessionState(), fSessionInfo1
.getSessionState());
101 IDomainInfo
[] orignalDomains
= fSessionInfo1
.getDomains();
102 IDomainInfo
[] resultDomains
= sessionInfo
.getDomains();
103 for (int i
= 0; i
< orignalDomains
.length
; i
++) {
104 assertEquals(orignalDomains
[i
], resultDomains
[i
]);
107 assertEquals(sessionInfo
.getNetworkUrl(), fSessionInfo1
.getNetworkUrl());
108 assertEquals(sessionInfo
.getControlUrl(), fSessionInfo1
.getControlUrl());
109 assertEquals(sessionInfo
.getDataUrl(), fSessionInfo1
.getDataUrl());
113 * Test copy constructor.
116 public void testSessionCopy2() {
118 SessionInfo session
= null;
119 new SessionInfo(session
);
122 catch (IllegalArgumentException e
) {
128 * Run the long getNumberOfSubBuffers() method test.
131 public void testGetAndSetters() {
133 // Note that addDomain() has been executed in setUp()
134 // check get method here
135 assertEquals(1, fSessionInfo1
.getDomains().length
);
136 assertNotNull(fSessionInfo1
.getDomains()[0]);
137 assertEquals(fDomainInfo1
, fSessionInfo1
.getDomains()[0]);
139 ISessionInfo session
= new SessionInfo("session");
140 List
<IDomainInfo
> list
= new LinkedList
<>();
141 list
.add(fDomainInfo1
);
142 list
.add(fDomainInfo2
);
143 session
.setDomains(list
);
145 IDomainInfo
[] result
= session
.getDomains();
146 assertEquals(2, result
.length
);
147 assertEquals(fDomainInfo1
, result
[0]);
148 assertEquals(fDomainInfo2
, result
[1]);
150 session
.setSessionPath("/home/user");
151 assertEquals("/home/user", session
.getSessionPath());
153 session
.setSessionState("active");
154 TraceSessionState state
= session
.getSessionState();
155 state
= session
.getSessionState();
156 assertEquals("active", state
.getInName());
157 assertEquals("ACTIVE", state
.name());
158 assertEquals("ACTIVE", state
.toString());
159 assertEquals(1, state
.ordinal());
161 session
.setSessionState("inactive");
162 state
= session
.getSessionState();
163 assertEquals("inactive", state
.getInName());
164 assertEquals("INACTIVE", state
.name());
165 assertEquals("INACTIVE", state
.toString());
166 assertEquals(0, state
.ordinal());
168 session
.setSessionState("test");
169 state
= session
.getSessionState();
170 assertEquals("inactive", state
.getInName());
171 assertEquals("INACTIVE", state
.name());
172 assertEquals("INACTIVE", state
.toString());
173 assertEquals(0, state
.ordinal());
175 session
.setSessionState(TraceSessionState
.ACTIVE
);
176 state
= session
.getSessionState();
177 assertEquals("active", state
.getInName());
178 assertEquals("ACTIVE", state
.name());
179 assertEquals("ACTIVE", state
.toString());
180 assertEquals(1, state
.ordinal());
182 session
.setSessionState(TraceSessionState
.INACTIVE
);
183 state
= session
.getSessionState();
184 assertEquals("inactive", state
.getInName());
185 assertEquals("INACTIVE", state
.name());
186 assertEquals("INACTIVE", state
.toString());
187 assertEquals(0, state
.ordinal());
191 * Run the String toString() method test.
194 public void testToString_1() {
195 ISessionInfo fixture
= new SessionInfo("sessionName");
197 String result
= fixture
.toString();
199 // add additional test code here
200 assertEquals("[SessionInfo([TraceInfo(Name=sessionName)],Path=,State=INACTIVE,isStreamedTrace=false,isSnapshot=false,Domains=,NetworkUrl=null,ControlUrl=null,DataUrl=null)]", result
);
204 * Run the String toString() method test.
207 public void testToString_2() {
208 String result
= fSessionInfo1
.toString();
210 // add additional test code here
211 assertEquals("[SessionInfo([TraceInfo(Name=session1)],Path=/home/user/lttng-trace/mysession/,State=ACTIVE,isStreamedTrace=false,isSnapshot=false,snapshotInfo="
212 + "[SnapshotInfo([TraceInfo(Name=snapshot-1)],snapshotPath=/home/user/lttng-trace/mysession/,ID=1,isStreamedSnapshot=false)],"
213 + "Domains=[DomainInfo([TraceInfo(Name=test1)],"
214 + "Channels=[ChannelInfo([TraceInfo(Name=channel1)],State=DISABLED,OverwriteMode=true,SubBuffersSize=13,NumberOfSubBuffers=12,SwitchTimer=10,ReadTimer=11,output=splice(),"
215 + "Events=[EventInfo([BaseEventInfo([TraceInfo(Name=event1)],type=TRACEPOINT,level=TRACE_DEBUG)],State=ENABLED,levelType=LOGLEVEL_ONLY)])],"
216 + "isKernel=false)],NetworkUrl=null,ControlUrl=null,DataUrl=null)]", result
);
220 * Run the String toString() method test.
223 public void testToString_3() {
224 SessionInfo info
= new SessionInfo((SessionInfo
)fSessionInfo1
);
225 info
.setSnapshot(false);
226 info
.setSnapshotInfo(null);
227 info
.setSessionPath("/home/user/lttng-trace/mysession/");
229 String result
= info
.toString();
231 // add additional test code here
232 assertEquals("[SessionInfo([TraceInfo(Name=session1)],Path=/home/user/lttng-trace/mysession/,State=ACTIVE,isStreamedTrace=false,isSnapshot=false,"
233 + "Domains=[DomainInfo([TraceInfo(Name=test1)],"
234 + "Channels=[ChannelInfo([TraceInfo(Name=channel1)],State=DISABLED,OverwriteMode=true,SubBuffersSize=13,NumberOfSubBuffers=12,SwitchTimer=10,ReadTimer=11,output=splice(),"
235 + "Events=[EventInfo([BaseEventInfo([TraceInfo(Name=event1)],type=TRACEPOINT,level=TRACE_DEBUG)],State=ENABLED,levelType=LOGLEVEL_ONLY)])],"
236 + "isKernel=false)],NetworkUrl=null,ControlUrl=null,DataUrl=null)]", result
);
239 // ------------------------------------------------------------------------
241 // ------------------------------------------------------------------------
244 * Run the {@link SessionInfo#equals} method test.
247 public void testEqualsReflexivity() {
248 assertTrue("equals", fSessionInfo1
.equals(fSessionInfo1
));
249 assertTrue("equals", fSessionInfo2
.equals(fSessionInfo2
));
251 assertTrue("equals", !fSessionInfo1
.equals(fSessionInfo2
));
252 assertTrue("equals", !fSessionInfo2
.equals(fSessionInfo1
));
256 * Run the {@link SessionInfo#equals} method test.
259 public void testEqualsSymmetry() {
260 SessionInfo event1
= new SessionInfo((SessionInfo
)fSessionInfo1
);
261 SessionInfo event2
= new SessionInfo((SessionInfo
)fSessionInfo2
);
263 assertTrue("equals", event1
.equals(fSessionInfo1
));
264 assertTrue("equals", fSessionInfo1
.equals(event1
));
266 assertTrue("equals", event2
.equals(fSessionInfo2
));
267 assertTrue("equals", fSessionInfo2
.equals(event2
));
271 * Run the {@link SessionInfo#equals} method test.
274 public void testEqualsTransivity() {
275 SessionInfo channel1
= new SessionInfo((SessionInfo
)fSessionInfo1
);
276 SessionInfo channel2
= new SessionInfo((SessionInfo
)fSessionInfo1
);
277 SessionInfo channel3
= new SessionInfo((SessionInfo
)fSessionInfo1
);
279 assertTrue("equals", channel1
.equals(channel2
));
280 assertTrue("equals", channel2
.equals(channel3
));
281 assertTrue("equals", channel1
.equals(channel3
));
285 * Run the {@link SessionInfo#equals} method test.
288 public void testEqualsNull() {
289 assertTrue("equals", !fSessionInfo1
.equals(null));
290 assertTrue("equals", !fSessionInfo2
.equals(null));
293 // ------------------------------------------------------------------------
295 // ------------------------------------------------------------------------
298 * Run the {@link SessionInfo#hashCode} method test.
301 public void testHashCode() {
302 SessionInfo channel1
= new SessionInfo((SessionInfo
)fSessionInfo1
);
303 SessionInfo channel2
= new SessionInfo((SessionInfo
)fSessionInfo2
);
305 assertTrue("hashCode", fSessionInfo1
.hashCode() == channel1
.hashCode());
306 assertTrue("hashCode", fSessionInfo2
.hashCode() == channel2
.hashCode());
308 assertTrue("hashCode", fSessionInfo1
.hashCode() != channel2
.hashCode());
309 assertTrue("hashCode", fSessionInfo2
.hashCode() != channel1
.hashCode());