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
.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
;
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 @SuppressWarnings("nls")
33 public class SessionInfoTest
{
35 // ------------------------------------------------------------------------
37 // ------------------------------------------------------------------------
39 private ISessionInfo fSessionInfo1
= null;
40 private ISessionInfo fSessionInfo2
= null;
42 private IDomainInfo fDomainInfo1
= null;
43 private IDomainInfo fDomainInfo2
= null;
45 // ------------------------------------------------------------------------
47 // ------------------------------------------------------------------------
50 * Perform pre-test initialization.
54 ModelImplFactory factory
= new ModelImplFactory();
55 fSessionInfo1
= factory
.getSessionInfo1();
56 fDomainInfo1
= factory
.getDomainInfo1();
57 fSessionInfo2
= factory
.getSessionInfo2();
58 fDomainInfo2
= factory
.getDomainInfo2();
61 // ------------------------------------------------------------------------
63 // ------------------------------------------------------------------------
65 // ------------------------------------------------------------------------
67 // ------------------------------------------------------------------------
70 * Run the ChannelInfo() constructor test.
73 public void testSessionInfo() {
74 ISessionInfo result
= new SessionInfo("test");
75 assertNotNull(result
);
77 assertEquals("test", result
.getName());
78 assertEquals("", result
.getSessionPath());
79 TraceSessionState state
= result
.getSessionState();
80 assertEquals("inactive", state
.getInName());
81 assertEquals("INACTIVE", state
.name());
82 assertEquals("INACTIVE", state
.toString());
83 assertEquals(0, state
.ordinal());
84 assertEquals(0, result
.getDomains().length
);
88 * Test copy constructor.
91 public void testSessionInfoCopy() {
92 SessionInfo sessionInfo
= new SessionInfo((SessionInfo
)fSessionInfo1
);
94 assertEquals(sessionInfo
.getName(), fSessionInfo1
.getName());
95 assertEquals(sessionInfo
.getSessionPath(), fSessionInfo1
.getSessionPath());
96 assertEquals(sessionInfo
.getSessionState(), fSessionInfo1
.getSessionState());
98 IDomainInfo
[] orignalDomains
= fSessionInfo1
.getDomains();
99 IDomainInfo
[] resultDomains
= sessionInfo
.getDomains();
100 for (int i
= 0; i
< orignalDomains
.length
; i
++) {
101 assertEquals(orignalDomains
[i
], resultDomains
[i
]);
106 * Test copy constructor.
109 public void testSessionCopy2() {
111 SessionInfo session
= null;
112 new SessionInfo(session
);
115 catch (IllegalArgumentException e
) {
121 * Run the long getNumberOfSubBuffers() method test.
124 public void testGetAndSetters() {
126 // Note that addDomain() has been executed in setUp()
127 // check get method here
128 assertEquals(1, fSessionInfo1
.getDomains().length
);
129 assertNotNull(fSessionInfo1
.getDomains()[0]);
130 assertEquals(fDomainInfo1
, fSessionInfo1
.getDomains()[0]);
132 ISessionInfo session
= new SessionInfo("session");
133 List
<IDomainInfo
> list
= new LinkedList
<IDomainInfo
>();
134 list
.add(fDomainInfo1
);
135 list
.add(fDomainInfo2
);
136 session
.setDomains(list
);
138 IDomainInfo
[] result
= session
.getDomains();
139 assertEquals(2, result
.length
);
140 assertEquals(fDomainInfo1
, result
[0]);
141 assertEquals(fDomainInfo2
, result
[1]);
143 session
.setSessionPath("/home/user");
144 assertEquals("/home/user", session
.getSessionPath());
146 session
.setSessionState("active");
147 TraceSessionState state
= session
.getSessionState();
148 state
= session
.getSessionState();
149 assertEquals("active", state
.getInName());
150 assertEquals("ACTIVE", state
.name());
151 assertEquals("ACTIVE", state
.toString());
152 assertEquals(1, state
.ordinal());
154 session
.setSessionState("inactive");
155 state
= session
.getSessionState();
156 assertEquals("inactive", state
.getInName());
157 assertEquals("INACTIVE", state
.name());
158 assertEquals("INACTIVE", state
.toString());
159 assertEquals(0, state
.ordinal());
161 session
.setSessionState("test");
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(TraceSessionState
.ACTIVE
);
169 state
= session
.getSessionState();
170 assertEquals("active", state
.getInName());
171 assertEquals("ACTIVE", state
.name());
172 assertEquals("ACTIVE", state
.toString());
173 assertEquals(1, state
.ordinal());
175 session
.setSessionState(TraceSessionState
.INACTIVE
);
176 state
= session
.getSessionState();
177 assertEquals("inactive", state
.getInName());
178 assertEquals("INACTIVE", state
.name());
179 assertEquals("INACTIVE", state
.toString());
180 assertEquals(0, state
.ordinal());
184 * Run the String toString() method test.
187 public void testToString_1() {
188 ISessionInfo fixture
= new SessionInfo("sessionName");
190 String result
= fixture
.toString();
192 // add additional test code here
193 assertEquals("[SessionInfo([TraceInfo(Name=sessionName)],State=INACTIVE,isStreamedTrace=false,Domains=)]", result
);
197 * Run the String toString() method test.
200 public void testToString_2() {
201 String result
= fSessionInfo1
.toString();
203 // add additional test code here
204 assertEquals("[SessionInfo([TraceInfo(Name=session1)],State=ACTIVE,isStreamedTrace=false,Domains=[DomainInfo([TraceInfo(Name=test1)],Channels=[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)])],isKernel=false)])]", result
);
207 // ------------------------------------------------------------------------
209 // ------------------------------------------------------------------------
212 * Run the {@link SessionInfo#equals} method test.
215 public void testEqualsReflexivity() {
216 assertTrue("equals", fSessionInfo1
.equals(fSessionInfo1
));
217 assertTrue("equals", fSessionInfo2
.equals(fSessionInfo2
));
219 assertTrue("equals", !fSessionInfo1
.equals(fSessionInfo2
));
220 assertTrue("equals", !fSessionInfo2
.equals(fSessionInfo1
));
224 * Run the {@link SessionInfo#equals} method test.
227 public void testEqualsSymmetry() {
228 SessionInfo event1
= new SessionInfo((SessionInfo
)fSessionInfo1
);
229 SessionInfo event2
= new SessionInfo((SessionInfo
)fSessionInfo2
);
231 assertTrue("equals", event1
.equals(fSessionInfo1
));
232 assertTrue("equals", fSessionInfo1
.equals(event1
));
234 assertTrue("equals", event2
.equals(fSessionInfo2
));
235 assertTrue("equals", fSessionInfo2
.equals(event2
));
239 * Run the {@link SessionInfo#equals} method test.
242 public void testEqualsTransivity() {
243 SessionInfo channel1
= new SessionInfo((SessionInfo
)fSessionInfo1
);
244 SessionInfo channel2
= new SessionInfo((SessionInfo
)fSessionInfo1
);
245 SessionInfo channel3
= new SessionInfo((SessionInfo
)fSessionInfo1
);
247 assertTrue("equals", channel1
.equals(channel2
));
248 assertTrue("equals", channel2
.equals(channel3
));
249 assertTrue("equals", channel1
.equals(channel3
));
253 * Run the {@link SessionInfo#equals} method test.
256 public void testEqualsNull() {
257 assertTrue("equals", !fSessionInfo1
.equals(null));
258 assertTrue("equals", !fSessionInfo2
.equals(null));
261 // ------------------------------------------------------------------------
263 // ------------------------------------------------------------------------
266 * Run the {@link SessionInfo#hashCode} method test.
269 public void testHashCode() {
270 SessionInfo channel1
= new SessionInfo((SessionInfo
)fSessionInfo1
);
271 SessionInfo channel2
= new SessionInfo((SessionInfo
)fSessionInfo2
);
273 assertTrue("hashCode", fSessionInfo1
.hashCode() == channel1
.hashCode());
274 assertTrue("hashCode", fSessionInfo2
.hashCode() == channel2
.hashCode());
276 assertTrue("hashCode", fSessionInfo1
.hashCode() != channel2
.hashCode());
277 assertTrue("hashCode", fSessionInfo2
.hashCode() != channel1
.hashCode());