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