Commit | Line | Data |
---|---|---|
eb1bab5b BH |
1 | /********************************************************************** |
2 | * Copyright (c) 2012 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.IBaseEventInfo; |
22 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.IUstProviderInfo; | |
23 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.BaseEventInfo; | |
24 | import org.eclipse.linuxtools.internal.lttng2.core.control.model.impl.UstProviderInfo; | |
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 UstProviderInfo}</code>. | |
eb1bab5b | 31 | */ |
2ba3d0a1 AM |
32 | @SuppressWarnings("nls") |
33 | public class UstProviderInfoTest { | |
34 | ||
eb1bab5b BH |
35 | // ------------------------------------------------------------------------ |
36 | // Test data | |
37 | // ------------------------------------------------------------------------ | |
2ba3d0a1 | 38 | |
eb1bab5b BH |
39 | private IUstProviderInfo fUstProviderInfo1 = null; |
40 | private IUstProviderInfo fUstProviderInfo2 = null; | |
b0318660 | 41 | |
eb1bab5b BH |
42 | private IBaseEventInfo fEventInfo1 = null; |
43 | private IBaseEventInfo fEventInfo2 = null; | |
b0318660 | 44 | |
eb1bab5b BH |
45 | // ------------------------------------------------------------------------ |
46 | // Housekeeping | |
47 | // ------------------------------------------------------------------------ | |
b0318660 | 48 | |
eb1bab5b BH |
49 | /** |
50 | * Perform pre-test initialization. | |
eb1bab5b | 51 | */ |
2ba3d0a1 | 52 | @Before |
eb1bab5b BH |
53 | public void setUp() { |
54 | ModelImplFactory factory = new ModelImplFactory(); | |
55 | fUstProviderInfo1 = factory.getUstProviderInfo1(); | |
56 | fUstProviderInfo2 = factory.getUstProviderInfo2(); | |
57 | fEventInfo1 = factory.getBaseEventInfo1(); | |
1f2f091b | 58 | fEventInfo2 = factory.getBaseEventInfo2(); |
eb1bab5b BH |
59 | } |
60 | ||
eb1bab5b BH |
61 | // ------------------------------------------------------------------------ |
62 | // Tests | |
63 | // ------------------------------------------------------------------------ | |
b0318660 | 64 | |
eb1bab5b BH |
65 | // ------------------------------------------------------------------------ |
66 | // Constructors | |
67 | // ------------------------------------------------------------------------ | |
68 | ||
69 | /** | |
70 | * Run the UstProviderInfo() constructor test. | |
eb1bab5b | 71 | */ |
2ba3d0a1 | 72 | @Test |
eb1bab5b BH |
73 | public void testUstProviderInfo() { |
74 | IUstProviderInfo result = new UstProviderInfo("test"); | |
75 | assertNotNull(result); | |
b0318660 | 76 | |
eb1bab5b BH |
77 | assertEquals("test", result.getName()); |
78 | assertEquals(0, result.getPid()); | |
79 | assertEquals(0, result.getEvents().length); | |
80 | } | |
81 | ||
2ba3d0a1 AM |
82 | /** |
83 | * Test the copy constructor. | |
84 | */ | |
85 | @Test | |
eb1bab5b BH |
86 | public void testUstProviderInfoCopy() { |
87 | IUstProviderInfo providerInf = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1); | |
b0318660 | 88 | |
eb1bab5b BH |
89 | assertEquals(fUstProviderInfo1.getName(), providerInf.getName()); |
90 | assertEquals(fUstProviderInfo1.getPid(), providerInf.getPid()); | |
91 | assertEquals(fUstProviderInfo1.getEvents().length, providerInf.getEvents().length); | |
b0318660 | 92 | |
eb1bab5b BH |
93 | IBaseEventInfo[] orignalEvents = fUstProviderInfo1.getEvents(); |
94 | IBaseEventInfo[] resultEvents = providerInf.getEvents(); | |
95 | for (int i = 0; i < orignalEvents.length; i++) { | |
96 | assertEquals(orignalEvents[i], resultEvents[i]); | |
97 | } | |
98 | } | |
99 | ||
2ba3d0a1 AM |
100 | /** |
101 | * Test the copy constructor. | |
102 | */ | |
103 | @Test | |
eb1bab5b BH |
104 | public void testUstProviderCopy2() { |
105 | try { | |
106 | UstProviderInfo providerInfo = null; | |
107 | new UstProviderInfo(providerInfo); | |
108 | fail("null copy"); | |
109 | } | |
110 | catch (IllegalArgumentException e) { | |
111 | // Success | |
112 | } | |
113 | } | |
114 | ||
115 | /** | |
116 | * Run the IEventInfo[] getEvents() method test. | |
eb1bab5b | 117 | */ |
2ba3d0a1 | 118 | @Test |
eb1bab5b BH |
119 | public void testGetAndSetters() { |
120 | IUstProviderInfo fixture = new UstProviderInfo("test"); | |
121 | fixture.setPid(2468); | |
b0318660 | 122 | |
eb1bab5b BH |
123 | // add an event |
124 | IBaseEventInfo event = new BaseEventInfo("event"); | |
125 | fixture.addEvent(event); | |
126 | ||
127 | // Verify the stored events | |
128 | IBaseEventInfo[] result = fixture.getEvents(); | |
129 | ||
130 | assertNotNull(result); | |
131 | assertEquals(1, result.length); | |
132 | assertNotNull(result[0]); | |
133 | assertTrue(event.equals(result[0])); | |
b0318660 | 134 | |
eb1bab5b BH |
135 | assertEquals(2468, fixture.getPid()); |
136 | } | |
137 | ||
138 | /** | |
139 | * Run the void setEvents(List<IBaseEventInfo>) method test. | |
eb1bab5b | 140 | */ |
2ba3d0a1 | 141 | @Test |
eb1bab5b BH |
142 | public void testSetEvents_1() { |
143 | UstProviderInfo fixture = new UstProviderInfo("test"); | |
144 | fixture.setPid(2468); | |
145 | List<IBaseEventInfo> events = new LinkedList<IBaseEventInfo>(); | |
146 | events.add(fEventInfo1); | |
147 | events.add(fEventInfo2); | |
148 | fixture.setEvents(events); | |
b0318660 | 149 | |
eb1bab5b | 150 | IBaseEventInfo[] infos = fixture.getEvents(); |
b0318660 | 151 | |
eb1bab5b | 152 | assertEquals(events.size(), infos.length); |
b0318660 | 153 | |
eb1bab5b BH |
154 | for (int i = 0; i < infos.length; i++) { |
155 | assertEquals(events.get(i), infos[i]); | |
156 | } | |
157 | } | |
158 | ||
2ba3d0a1 AM |
159 | /** |
160 | * Run the String toString() method test. | |
161 | */ | |
162 | @Test | |
eb1bab5b BH |
163 | public void testToString_1() { |
164 | UstProviderInfo fixture = new UstProviderInfo("test"); | |
165 | fixture.setPid(2468); | |
166 | String result = fixture.toString(); | |
167 | ||
168 | assertEquals("[EventInfo([TraceInfo(Name=test)],PID=2468,Events=None)]", result); | |
169 | } | |
170 | ||
171 | /** | |
172 | * Run the String toString() method test. | |
eb1bab5b | 173 | */ |
2ba3d0a1 | 174 | @Test |
eb1bab5b BH |
175 | public void testToString_2() { |
176 | String result = fUstProviderInfo2.toString(); | |
d4514365 | 177 | assertEquals("[EventInfo([TraceInfo(Name=myUST2)],PID=2345,Events=[BaseEventInfo([TraceInfo(Name=event1)]," + |
2ba3d0a1 AM |
178 | "type=UNKNOWN,level=TRACE_DEBUG,Fields=[FieldInfo([TraceInfo(Name=intfield)],type=int[FieldInfo" + |
179 | "([TraceInfo(Name=stringfield)],type=string,Filter=intField==10)][BaseEventInfo([TraceInfo(Name=event2)]," + | |
180 | "type=TRACEPOINT,level=TRACE_DEBUG)])]", result); | |
eb1bab5b | 181 | } |
b0318660 | 182 | |
eb1bab5b BH |
183 | // ------------------------------------------------------------------------ |
184 | // equals | |
185 | // ------------------------------------------------------------------------ | |
186 | ||
2ba3d0a1 AM |
187 | /** |
188 | * Run the equals() method test. | |
189 | */ | |
190 | @Test | |
eb1bab5b BH |
191 | public void testEqualsReflexivity() { |
192 | assertTrue("equals", fUstProviderInfo1.equals(fUstProviderInfo1)); | |
193 | assertTrue("equals", fUstProviderInfo2.equals(fUstProviderInfo2)); | |
194 | ||
195 | assertTrue("equals", !fUstProviderInfo1.equals(fUstProviderInfo2)); | |
196 | assertTrue("equals", !fUstProviderInfo2.equals(fUstProviderInfo1)); | |
197 | } | |
b0318660 | 198 | |
2ba3d0a1 AM |
199 | /** |
200 | * Run the equals() method test. | |
201 | */ | |
202 | @Test | |
eb1bab5b BH |
203 | public void testEqualsSymmetry() { |
204 | UstProviderInfo event1 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1); | |
205 | UstProviderInfo event2 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo2); | |
206 | ||
207 | assertTrue("equals", event1.equals(fUstProviderInfo1)); | |
208 | assertTrue("equals", fUstProviderInfo1.equals(event1)); | |
209 | ||
210 | assertTrue("equals", event2.equals(fUstProviderInfo2)); | |
211 | assertTrue("equals", fUstProviderInfo2.equals(event2)); | |
212 | } | |
b0318660 | 213 | |
2ba3d0a1 AM |
214 | /** |
215 | * Run the equals() method test. | |
216 | */ | |
217 | @Test | |
eb1bab5b BH |
218 | public void testEqualsTransivity() { |
219 | UstProviderInfo UstProvider1 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1); | |
220 | UstProviderInfo UstProvider2 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1); | |
221 | UstProviderInfo UstProvider3 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1); | |
222 | ||
223 | assertTrue("equals", UstProvider1.equals(UstProvider2)); | |
224 | assertTrue("equals", UstProvider2.equals(UstProvider3)); | |
225 | assertTrue("equals", UstProvider1.equals(UstProvider3)); | |
226 | } | |
b0318660 | 227 | |
2ba3d0a1 AM |
228 | /** |
229 | * Run the equals() method test. | |
230 | */ | |
231 | @Test | |
ea21cd65 | 232 | public void testEqualsNull() { |
eb1bab5b BH |
233 | assertTrue("equals", !fUstProviderInfo1.equals(null)); |
234 | assertTrue("equals", !fUstProviderInfo2.equals(null)); | |
235 | } | |
b0318660 | 236 | |
eb1bab5b BH |
237 | // ------------------------------------------------------------------------ |
238 | // hashCode | |
239 | // ------------------------------------------------------------------------ | |
240 | ||
2ba3d0a1 AM |
241 | /** |
242 | * Run the hashCode() method test. | |
243 | */ | |
244 | @Test | |
eb1bab5b BH |
245 | public void testHashCode() { |
246 | UstProviderInfo UstProvider1 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo1); | |
247 | UstProviderInfo UstProvider2 = new UstProviderInfo((UstProviderInfo)fUstProviderInfo2); | |
248 | ||
249 | assertTrue("hashCode", fUstProviderInfo1.hashCode() == UstProvider1.hashCode()); | |
250 | assertTrue("hashCode", fUstProviderInfo2.hashCode() == UstProvider2.hashCode()); | |
251 | ||
252 | assertTrue("hashCode", fUstProviderInfo1.hashCode() != UstProvider2.hashCode()); | |
253 | assertTrue("hashCode", fUstProviderInfo2.hashCode() != UstProvider1.hashCode()); | |
254 | } | |
255 | } |