Commit | Line | Data |
---|---|---|
0a004264 BR |
1 | /********************************************************************** |
2 | * Copyright (c) 2016 Ericsson | |
3 | * | |
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 | |
8 | * | |
9 | * Contributors: | |
10 | * Bruno Roy- Initial API and implementation | |
11 | **********************************************************************/ | |
12 | package org.eclipse.tracecompass.lttng2.control.core.tests.model.impl; | |
13 | ||
14 | import static org.junit.Assert.assertEquals; | |
15 | import static org.junit.Assert.assertNotNull; | |
16 | import static org.junit.Assert.assertTrue; | |
17 | import static org.junit.Assert.fail; | |
18 | ||
19 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.ILoggerInfo; | |
20 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType; | |
21 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceDomainType; | |
22 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceEnablement; | |
23 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceJulLogLevel; | |
4a9365ef | 24 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceLog4jLogLevel; |
0a004264 BR |
25 | import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.LoggerInfo; |
26 | import org.junit.Before; | |
27 | import org.junit.Test; | |
28 | ||
29 | /** | |
30 | * The class <code>LoggerInfoTest</code> contains test for the class | |
31 | * <code>{@link LoggerInfo}</code>. | |
32 | */ | |
33 | public class LoggerInfoTest { | |
34 | ||
35 | // ------------------------------------------------------------------------ | |
36 | // Test data | |
37 | // ------------------------------------------------------------------------ | |
38 | ||
39 | private ILoggerInfo fLoggerInfo1 = null; | |
40 | private ILoggerInfo fLoggerInfo2 = null; | |
41 | ||
42 | // ------------------------------------------------------------------------ | |
43 | // Housekeeping | |
44 | // ------------------------------------------------------------------------ | |
45 | ||
46 | /** | |
47 | * Perform pre-test initialization. | |
48 | */ | |
49 | @Before | |
50 | public void setUp() { | |
51 | ModelImplFactory factory = new ModelImplFactory(); | |
52 | fLoggerInfo1 = factory.getLoggerInfo1(); | |
53 | fLoggerInfo2 = factory.getLoggerInfo2(); | |
54 | } | |
55 | ||
56 | // ------------------------------------------------------------------------ | |
57 | // Tests | |
58 | // ------------------------------------------------------------------------ | |
59 | ||
60 | /** | |
61 | * Run the LoggerInfo() constructor test. | |
62 | */ | |
63 | @Test | |
64 | public void testLoggerInfo() { | |
65 | LoggerInfo fixture = new LoggerInfo("logger"); | |
66 | assertNotNull(fixture); | |
67 | ||
68 | // Name | |
69 | String name = fixture.getName(); | |
70 | assertEquals("logger", name); | |
71 | ||
72 | // Domain | |
73 | TraceDomainType result = fixture.getDomain(); | |
74 | assertEquals("UNKNOWN", result.name()); | |
75 | assertEquals("UNKNOWN", result.toString()); | |
76 | assertEquals(5, result.ordinal()); | |
77 | ||
78 | // State | |
79 | TraceEnablement state = fixture.getState(); | |
80 | assertEquals("disabled", state.getInName()); | |
81 | assertEquals("DISABLED", state.name()); | |
82 | assertEquals("DISABLED", state.toString()); | |
83 | assertEquals(0, state.ordinal()); | |
84 | ||
85 | // Log level type | |
86 | LogLevelType logType = fixture.getLogLevelType(); | |
b5a170e0 | 87 | assertEquals("All", logType.getShortName()); |
0a004264 BR |
88 | assertEquals("LOGLEVEL_ALL", logType.name()); |
89 | assertEquals("LOGLEVEL_ALL", logType.toString()); | |
90 | assertEquals(0, state.ordinal()); | |
91 | ||
92 | // Log level | |
93 | TraceJulLogLevel logLevel = (TraceJulLogLevel) fixture.getLogLevel(); | |
94 | assertEquals("LEVEL_UNKNOWN", logLevel.getInName()); | |
95 | assertEquals("LEVEL_UNKNOWN", logLevel.name()); | |
96 | assertEquals("LEVEL_UNKNOWN", logLevel.toString()); | |
97 | assertEquals(9, logLevel.ordinal()); | |
98 | } | |
99 | ||
100 | /** | |
101 | * Test Copy Constructor | |
102 | */ | |
103 | @Test | |
104 | public void testLoggerInfoCopy() { | |
105 | LoggerInfo info = new LoggerInfo((LoggerInfo) fLoggerInfo1); | |
106 | ||
107 | assertEquals(fLoggerInfo1.getName(), info.getName()); | |
108 | assertEquals(fLoggerInfo1.getState(), info.getState()); | |
109 | assertEquals(fLoggerInfo1.getLogLevelType(), info.getLogLevelType()); | |
110 | assertEquals(fLoggerInfo1.getLogLevel(), info.getLogLevel()); | |
111 | assertEquals(fLoggerInfo1.getDomain(), info.getDomain()); | |
112 | } | |
113 | ||
114 | /** | |
115 | * Test Copy Constructor | |
116 | */ | |
117 | @Test | |
118 | public void testEventCopy2() { | |
119 | try { | |
120 | LoggerInfo info = null; | |
121 | new LoggerInfo(info); | |
122 | fail("null copy"); | |
123 | } | |
124 | catch (IllegalArgumentException e) { | |
125 | // Success | |
126 | } | |
127 | } | |
128 | ||
129 | /** | |
130 | * Getter/Setter tests | |
131 | */ | |
132 | @Test | |
133 | public void testGetAndSetter() { | |
134 | LoggerInfo fixture = new LoggerInfo("logger"); | |
135 | ||
136 | // setState(String stateName) | |
137 | fixture.setState("disabled"); | |
138 | TraceEnablement state = fixture.getState(); | |
139 | assertEquals("disabled", state.getInName()); | |
140 | assertEquals("DISABLED", state.name()); | |
141 | assertEquals("DISABLED", state.toString()); | |
142 | assertEquals(0, state.ordinal()); | |
143 | ||
144 | fixture.setState("true"); | |
145 | state = fixture.getState(); | |
146 | assertEquals("true", state.getInMiName()); | |
147 | assertEquals("ENABLED", state.name()); | |
148 | assertEquals("ENABLED", state.toString()); | |
149 | assertEquals(1, state.ordinal()); | |
150 | ||
151 | fixture.setState("false"); | |
152 | state = fixture.getState(); | |
153 | assertEquals("false", state.getInMiName()); | |
154 | assertEquals("DISABLED", state.name()); | |
155 | assertEquals("DISABLED", state.toString()); | |
156 | assertEquals(0, state.ordinal()); | |
157 | ||
158 | fixture.setState("enabled"); | |
159 | state = fixture.getState(); | |
160 | assertEquals("enabled", state.getInName()); | |
161 | assertEquals("ENABLED", state.name()); | |
162 | assertEquals("ENABLED", state.toString()); | |
163 | assertEquals(1, state.ordinal()); | |
164 | ||
165 | fixture.setState("bla"); | |
166 | state = fixture.getState(); | |
167 | assertEquals("disabled", state.getInName()); | |
168 | assertEquals("DISABLED", state.name()); | |
169 | assertEquals("DISABLED", state.toString()); | |
170 | assertEquals(0, state.ordinal()); | |
171 | ||
172 | // setState(TraceEnablement state) | |
173 | fixture.setState(TraceEnablement.ENABLED); | |
174 | state = fixture.getState(); | |
175 | assertEquals("enabled", state.getInName()); | |
176 | assertEquals("ENABLED", state.name()); | |
177 | assertEquals("ENABLED", state.toString()); | |
178 | assertEquals(1, state.ordinal()); | |
179 | ||
180 | fixture.setState(TraceEnablement.DISABLED); | |
181 | state = fixture.getState(); | |
182 | assertEquals("disabled", state.getInName()); | |
183 | assertEquals("DISABLED", state.name()); | |
184 | assertEquals("DISABLED", state.toString()); | |
185 | assertEquals(0, state.ordinal()); | |
186 | ||
187 | // setLogLevelType(String name) | |
188 | fixture.setLogLevelType("=="); | |
189 | assertEquals("LOGLEVEL_ONLY", fixture.getLogLevelType().name()); | |
190 | assertEquals("==", fixture.getLogLevelType().getShortName()); | |
191 | ||
192 | fixture.setLogLevelType("<="); | |
193 | assertEquals("LOGLEVEL", fixture.getLogLevelType().name()); | |
194 | assertEquals("<=", fixture.getLogLevelType().getShortName()); | |
195 | ||
b5a170e0 | 196 | fixture.setLogLevelType("All"); |
0a004264 | 197 | assertEquals("LOGLEVEL_ALL", fixture.getLogLevelType().name()); |
b5a170e0 | 198 | assertEquals("All", fixture.getLogLevelType().getShortName()); |
0a004264 BR |
199 | |
200 | fixture.setLogLevelType(LogLevelType.LOGLEVEL_ONLY); | |
201 | assertEquals("LOGLEVEL_ONLY", fixture.getLogLevelType().name()); | |
202 | assertEquals("==", fixture.getLogLevelType().getShortName()); | |
203 | ||
204 | fixture.setLogLevelType(LogLevelType.LOGLEVEL); | |
205 | assertEquals("LOGLEVEL", fixture.getLogLevelType().name()); | |
206 | assertEquals("<=", fixture.getLogLevelType().getShortName()); | |
207 | ||
208 | fixture.setLogLevelType(LogLevelType.LOGLEVEL_ALL); | |
209 | assertEquals("LOGLEVEL_ALL", fixture.getLogLevelType().name()); | |
b5a170e0 | 210 | assertEquals("All", fixture.getLogLevelType().getShortName()); |
0a004264 BR |
211 | |
212 | fixture.setLogLevelType(LogLevelType.LOGLEVEL_NONE); | |
213 | assertEquals("LOGLEVEL_NONE", fixture.getLogLevelType().name()); | |
214 | assertEquals("", fixture.getLogLevelType().getShortName()); | |
215 | ||
216 | // setLogLevelType(String name) | |
217 | fixture.setLogLevelType("SINGLE"); | |
218 | assertEquals("LOGLEVEL_ONLY", fixture.getLogLevelType().name()); | |
219 | assertEquals("SINGLE", fixture.getLogLevelType().getMiName()); | |
220 | ||
221 | fixture.setLogLevelType("RANGE"); | |
222 | assertEquals("LOGLEVEL", fixture.getLogLevelType().name()); | |
223 | assertEquals("RANGE", fixture.getLogLevelType().getMiName()); | |
224 | ||
225 | fixture.setLogLevelType("ALL"); | |
226 | assertEquals("LOGLEVEL_ALL", fixture.getLogLevelType().name()); | |
227 | assertEquals("ALL", fixture.getLogLevelType().getMiName()); | |
228 | ||
229 | fixture.setLogLevelType("UNKNOWN"); | |
230 | assertEquals("LOGLEVEL_NONE", fixture.getLogLevelType().name()); | |
231 | assertEquals("UNKNOWN", fixture.getLogLevelType().getMiName()); | |
232 | ||
233 | } | |
234 | ||
235 | /** | |
236 | * Run the String toString() method test. | |
237 | */ | |
238 | @Test | |
239 | public void testToString() { | |
240 | LoggerInfo fixture = new LoggerInfo("logger"); | |
241 | fixture.setName("testName"); | |
242 | ||
243 | String result = fixture.toString(); | |
244 | assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=UNKNOWN,level=LEVEL_UNKNOWN)],State=DISABLED,levelType=LOGLEVEL_ALL)]", result); | |
245 | ||
246 | fixture.setDomain(TraceDomainType.JUL); | |
247 | result = fixture.toString(); | |
248 | assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=JUL,level=LEVEL_UNKNOWN)],State=DISABLED,levelType=LOGLEVEL_ALL)]", result); | |
249 | ||
250 | fixture.setLogLevel(TraceJulLogLevel.JUL_FINE); | |
251 | result = fixture.toString(); | |
252 | assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=JUL,level=JUL_FINE)],State=DISABLED,levelType=LOGLEVEL_ALL)]", result); | |
253 | ||
254 | fixture.setState(TraceEnablement.ENABLED); | |
255 | result = fixture.toString(); | |
256 | assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=JUL,level=JUL_FINE)],State=ENABLED,levelType=LOGLEVEL_ALL)]", result); | |
4a9365ef BR |
257 | |
258 | fixture.setDomain(TraceDomainType.LOG4J); | |
259 | result = fixture.toString(); | |
260 | assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=LOG4J,level=JUL_FINE)],State=ENABLED,levelType=LOGLEVEL_ALL)]", result); | |
261 | ||
262 | fixture.setLogLevel(TraceLog4jLogLevel.LOG4J_FATAL); | |
263 | result = fixture.toString(); | |
264 | assertEquals("[LoggerInfo([BaseLoggerInfo([TraceInfo(Name=testName)],domain=LOG4J,level=LOG4J_FATAL)],State=ENABLED,levelType=LOGLEVEL_ALL)]", result); | |
0a004264 BR |
265 | } |
266 | ||
267 | // ------------------------------------------------------------------------ | |
268 | // equals | |
269 | // ------------------------------------------------------------------------ | |
270 | ||
271 | /** | |
272 | * Run the equals() method test. | |
273 | */ | |
274 | @Test | |
275 | public void testEqualsReflexivity() { | |
276 | assertTrue("equals", fLoggerInfo1.equals(fLoggerInfo1)); | |
277 | assertTrue("equals", fLoggerInfo2.equals(fLoggerInfo2)); | |
278 | ||
279 | assertTrue("equals", !fLoggerInfo1.equals(fLoggerInfo2)); | |
280 | assertTrue("equals", !fLoggerInfo2.equals(fLoggerInfo1)); | |
281 | } | |
282 | ||
283 | /** | |
284 | * Run the equals() method test. | |
285 | */ | |
286 | @Test | |
287 | public void testEqualsSymmetry() { | |
288 | LoggerInfo info1 = new LoggerInfo((LoggerInfo)fLoggerInfo1); | |
289 | LoggerInfo info2 = new LoggerInfo((LoggerInfo)fLoggerInfo2); | |
290 | ||
291 | assertTrue("equals", info1.equals(fLoggerInfo1)); | |
292 | assertTrue("equals", fLoggerInfo1.equals(info1)); | |
293 | ||
294 | assertTrue("equals", info2.equals(fLoggerInfo2)); | |
295 | assertTrue("equals", fLoggerInfo2.equals(info2)); | |
296 | } | |
297 | ||
298 | /** | |
299 | * Run the equals() method test. | |
300 | */ | |
301 | @Test | |
302 | public void testEqualsTransivity() { | |
303 | LoggerInfo info1 = new LoggerInfo((LoggerInfo)fLoggerInfo1); | |
304 | LoggerInfo info2 = new LoggerInfo((LoggerInfo)fLoggerInfo1); | |
305 | LoggerInfo info3 = new LoggerInfo((LoggerInfo)fLoggerInfo1); | |
306 | ||
307 | assertTrue("equals", info1.equals(info2)); | |
308 | assertTrue("equals", info2.equals(info3)); | |
309 | assertTrue("equals", info1.equals(info3)); | |
310 | } | |
311 | ||
312 | /** | |
313 | * Run the equals() method test. | |
314 | */ | |
315 | @Test | |
316 | public void testEqualsNull() { | |
317 | assertTrue("equals", !fLoggerInfo1.equals(null)); | |
318 | assertTrue("equals", !fLoggerInfo2.equals(null)); | |
319 | } | |
320 | ||
321 | // ------------------------------------------------------------------------ | |
322 | // hashCode | |
323 | // ------------------------------------------------------------------------ | |
324 | ||
325 | /** | |
326 | * Run the hashCode() method test. | |
327 | */ | |
328 | @Test | |
329 | public void testHashCode() { | |
330 | LoggerInfo info1 = new LoggerInfo((LoggerInfo)fLoggerInfo1); | |
331 | LoggerInfo info2 = new LoggerInfo((LoggerInfo)fLoggerInfo2); | |
332 | ||
333 | assertTrue("hashCode", fLoggerInfo1.hashCode() == info1.hashCode()); | |
334 | assertTrue("hashCode", fLoggerInfo2.hashCode() == info2.hashCode()); | |
335 | ||
336 | assertTrue("hashCode", fLoggerInfo1.hashCode() != info2.hashCode()); | |
337 | assertTrue("hashCode", fLoggerInfo2.hashCode() != info1.hashCode()); | |
338 | } | |
339 | } |