Commit | Line | Data |
---|---|---|
eadf9801 BH |
1 | /******************************************************************************* |
2 | * Copyright (c) 2014 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 | * Bernd Hufmann - Initial API and implementation | |
11 | *******************************************************************************/ | |
2bdf0193 | 12 | package org.eclipse.tracecompass.tmf.core.tests.trace.text; |
eadf9801 BH |
13 | |
14 | import static org.junit.Assert.assertArrayEquals; | |
15 | import static org.junit.Assert.assertEquals; | |
b742c196 | 16 | import static org.junit.Assert.assertNotEquals; |
eadf9801 BH |
17 | import static org.junit.Assert.assertNotNull; |
18 | import static org.junit.Assert.assertNull; | |
19 | import static org.junit.Assert.assertTrue; | |
20 | ||
b742c196 AM |
21 | import java.util.List; |
22 | ||
2bdf0193 AM |
23 | import org.eclipse.tracecompass.tmf.core.event.ITmfEventField; |
24 | import org.eclipse.tracecompass.tmf.core.trace.text.TextTraceEventContent; | |
25 | import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogEventType; | |
26 | import org.eclipse.tracecompass.tmf.tests.stubs.trace.text.SyslogEventType.Index; | |
eadf9801 BH |
27 | import org.junit.Test; |
28 | ||
29 | /** | |
30 | * Test suite for the {@link TextTraceEventContent} class. | |
31 | */ | |
32 | @SuppressWarnings({ "javadoc", "nls" }) | |
33 | public class TextTraceEventContentTest { | |
34 | ||
35 | // ------------------------------------------------------------------------ | |
36 | // Members | |
37 | // ------------------------------------------------------------------------ | |
b742c196 | 38 | |
eadf9801 | 39 | private TextTraceEventContent fEventContent1; |
b742c196 | 40 | private TextTraceEventContent fEventContent1Clone; |
eadf9801 | 41 | private TextTraceEventContent fEventContent2; |
b742c196 | 42 | private TextTraceEventContent fEventContent2Clone; |
eadf9801 BH |
43 | |
44 | public TextTraceEventContentTest () { | |
45 | fEventContent1 = new TextTraceEventContent(SyslogEventType.LABELS); | |
46 | fEventContent1.setValue("CONTENT"); | |
47 | fEventContent1.setFieldValue(Index.TIMESTAMP, "Jan 1 01:01:01"); | |
48 | fEventContent1.setFieldValue(Index.HOST, "HostA"); | |
49 | fEventContent1.setFieldValue(Index.LOGGER, "LoggerA"); | |
32528869 BH |
50 | fEventContent1.setFieldValue(Index.FILE, "SourceFileA"); |
51 | fEventContent1.setFieldValue(Index.LINE, "0"); | |
eadf9801 BH |
52 | fEventContent1.setFieldValue(Index.MESSAGE, "MessageA"); |
53 | ||
b742c196 AM |
54 | fEventContent1Clone = new TextTraceEventContent(SyslogEventType.LABELS); |
55 | fEventContent1Clone.setValue("CONTENT"); | |
56 | fEventContent1Clone.setFieldValue(Index.TIMESTAMP, "Jan 1 01:01:01"); | |
57 | fEventContent1Clone.setFieldValue(Index.HOST, "HostA"); | |
58 | fEventContent1Clone.setFieldValue(Index.LOGGER, "LoggerA"); | |
32528869 BH |
59 | fEventContent1Clone.setFieldValue(Index.FILE, "SourceFileA"); |
60 | fEventContent1Clone.setFieldValue(Index.LINE, "0"); | |
b742c196 AM |
61 | fEventContent1Clone.setFieldValue(Index.MESSAGE, "MessageA"); |
62 | ||
eadf9801 BH |
63 | fEventContent2 = new TextTraceEventContent(SyslogEventType.LABELS); |
64 | fEventContent2.setFieldValue(SyslogEventType.LABELS[0], "Jan 1 02:02:02"); | |
65 | fEventContent2.setFieldValue(SyslogEventType.LABELS[1], "HostB"); | |
66 | fEventContent2.setFieldValue(SyslogEventType.LABELS[2], "LoggerB"); | |
32528869 BH |
67 | fEventContent2.setFieldValue(SyslogEventType.LABELS[3], "SourceFileB"); |
68 | fEventContent2.setFieldValue(SyslogEventType.LABELS[4], "2"); | |
eadf9801 BH |
69 | StringBuffer buffer = new StringBuffer(); |
70 | buffer.append("Message B"); | |
32528869 | 71 | fEventContent2.setFieldValue(SyslogEventType.LABELS[5], buffer); |
b742c196 AM |
72 | |
73 | fEventContent2Clone = new TextTraceEventContent(SyslogEventType.LABELS); | |
74 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[0], "Jan 1 02:02:02"); | |
75 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[1], "HostB"); | |
76 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[2], "LoggerB"); | |
32528869 BH |
77 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[3], "SourceFileB"); |
78 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[4], "2"); | |
b742c196 AM |
79 | buffer = new StringBuffer(); |
80 | buffer.append("Message B"); | |
32528869 | 81 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[5], buffer); |
eadf9801 BH |
82 | } |
83 | ||
84 | public void testConstructorConstructor() { | |
85 | assertEquals("getField:TIMESTAMP", "Jan 1 01:01:01", fEventContent1.getFieldValue(Index.TIMESTAMP)); | |
86 | assertEquals("getField:HOST", "HostA", fEventContent1.getFieldValue(Index.HOST)); | |
87 | assertEquals("getField:LOGGER", "LoggerA", fEventContent1.getFieldValue(Index.LOGGER)); | |
32528869 BH |
88 | assertEquals("getField:FILE", "SourceFileA", fEventContent1.getFieldValue(Index.FILE)); |
89 | assertEquals("getField:LINE", "0", fEventContent1.getFieldValue(Index.LINE)); | |
eadf9801 BH |
90 | assertEquals("getField:MESSAGE", "MessageA", fEventContent1.getFieldValue(Index.MESSAGE).toString()); |
91 | } | |
92 | ||
93 | // ------------------------------------------------------------------------ | |
94 | // Event Type | |
95 | // ------------------------------------------------------------------------ | |
96 | ||
97 | @Test | |
98 | public void testEventTypeInstance() { | |
99 | SyslogEventType eventType = SyslogEventType.INSTANCE; | |
100 | assertEquals("getTypeId", "Syslog", eventType.getName()); | |
101 | assertNotNull ("instance", eventType); | |
b742c196 AM |
102 | assertTrue (eventType.getFieldNames().contains("Timestamp")); |
103 | assertTrue (eventType.getFieldNames().contains("Host")); | |
104 | assertTrue (eventType.getFieldNames().contains("Logger")); | |
32528869 BH |
105 | assertTrue (eventType.getFieldNames().contains("File")); |
106 | assertTrue (eventType.getFieldNames().contains("Line")); | |
b742c196 | 107 | assertTrue (eventType.getFieldNames().contains("Message")); |
eadf9801 BH |
108 | } |
109 | ||
110 | // ------------------------------------------------------------------------ | |
111 | // equals | |
112 | // ------------------------------------------------------------------------ | |
113 | ||
114 | @Test | |
b742c196 AM |
115 | public void testEquals() { |
116 | assertEquals("equals", fEventContent1, fEventContent1); | |
117 | assertEquals("equals", fEventContent2, fEventContent2); | |
eadf9801 | 118 | |
b742c196 AM |
119 | assertTrue("equals", !fEventContent1.equals(fEventContent2)); |
120 | assertTrue("equals", !fEventContent2.equals(fEventContent1)); | |
121 | ||
122 | assertEquals("equals", fEventContent1, fEventContent1Clone); | |
123 | assertEquals("equals", fEventContent2, fEventContent2Clone); | |
eadf9801 BH |
124 | } |
125 | ||
126 | @Test | |
127 | public void testEqualsNull() { | |
128 | assertTrue("equals", !fEventContent1.equals(null)); | |
129 | assertTrue("equals", !fEventContent2.equals(null)); | |
130 | } | |
131 | ||
132 | // ------------------------------------------------------------------------ | |
133 | // hashCode | |
134 | // ------------------------------------------------------------------------ | |
b742c196 | 135 | |
eadf9801 BH |
136 | @Test |
137 | public void testHashCode() { | |
eadf9801 | 138 | |
b742c196 AM |
139 | assertEquals("hashCode", fEventContent1.hashCode(), fEventContent1Clone.hashCode()); |
140 | assertEquals("hashCode", fEventContent2.hashCode(), fEventContent2Clone.hashCode()); | |
eadf9801 | 141 | |
b742c196 AM |
142 | assertNotEquals("hashCode", fEventContent1.hashCode(), fEventContent2.hashCode()); |
143 | assertNotEquals("hashCode", fEventContent2.hashCode(), fEventContent1.hashCode()); | |
eadf9801 BH |
144 | } |
145 | ||
146 | // ------------------------------------------------------------------------ | |
147 | // Event Content | |
148 | // ------------------------------------------------------------------------ | |
149 | ||
150 | @Test | |
151 | public void testGetFieldValueWithIndex() { | |
152 | assertEquals("getFieldValue:TIMESTAMP", "Jan 1 01:01:01", fEventContent1.getFieldValue(Index.TIMESTAMP)); | |
153 | assertEquals("getFieldValue:HOST", "HostA", fEventContent1.getFieldValue(Index.HOST)); | |
154 | assertEquals("getFieldValue:LOGGER", "LoggerA", fEventContent1.getFieldValue(Index.LOGGER)); | |
32528869 BH |
155 | assertEquals("getFieldValue:FILE", "SourceFileA", fEventContent1.getFieldValue(Index.FILE)); |
156 | assertEquals("getFieldValue:LINE", "0", fEventContent1.getFieldValue(Index.LINE)); | |
eadf9801 | 157 | assertEquals("getFieldValue:MESSAGE", "MessageA", fEventContent1.getFieldValue(Index.MESSAGE)); |
32528869 | 158 | assertNull(fEventContent1.getFieldValue(6)); |
eadf9801 BH |
159 | } |
160 | ||
161 | @Test | |
162 | public void testGetFieldValueWithName() { | |
163 | assertEquals("getFieldValue:TIMESTAMP", "Jan 1 01:01:01", fEventContent1.getFieldValue("Timestamp")); | |
164 | assertEquals("getFieldValue:HOST", "HostA", fEventContent1.getFieldValue("Host")); | |
165 | assertEquals("getFieldValue:LOGGER", "LoggerA", fEventContent1.getFieldValue("Logger")); | |
32528869 BH |
166 | assertEquals("getFieldValue:FILE", "SourceFileA", fEventContent1.getFieldValue("File")); |
167 | assertEquals("getFieldValue:LINE", "0", fEventContent1.getFieldValue("Line")); | |
eadf9801 BH |
168 | assertEquals("getFieldValue:MESSAGE", "MessageA", fEventContent1.getFieldValue("Message")); |
169 | assertNull(fEventContent1.getFieldValue("BlaBla")); | |
170 | } | |
171 | ||
172 | @Test | |
173 | public void testGetFieldNameWithIndex() { | |
174 | ||
175 | assertEquals("getFieldName:TIMESTAMP", SyslogEventType.LABELS[0], fEventContent1.getFieldName(Index.TIMESTAMP)); | |
176 | assertEquals("getFieldName:HOST", SyslogEventType.LABELS[1], fEventContent1.getFieldName(Index.HOST)); | |
177 | assertEquals("getFieldName:LOGGER", SyslogEventType.LABELS[2], fEventContent1.getFieldName(Index.LOGGER)); | |
32528869 BH |
178 | assertEquals("getFieldName:FILE", SyslogEventType.LABELS[3], fEventContent1.getFieldName(Index.FILE)); |
179 | assertEquals("getFieldName:LINE", SyslogEventType.LABELS[4], fEventContent1.getFieldName(Index.LINE)); | |
180 | assertEquals("getFieldName:MESSAGE", SyslogEventType.LABELS[5], fEventContent1.getFieldName(Index.MESSAGE)); | |
181 | assertNull(fEventContent1.getFieldValue(6)); | |
eadf9801 BH |
182 | } |
183 | ||
184 | @Test | |
185 | public void testGetFields() { | |
b742c196 | 186 | List<TextTraceEventContent> fields = fEventContent1.getFields(); |
32528869 | 187 | assertEquals(6, fields.size()); |
b742c196 AM |
188 | assertEquals("getFields:TIMESTAMP", SyslogEventType.LABELS[0], fields.get(Index.TIMESTAMP).getName()); |
189 | assertEquals("getFields:TIMESTAMP", "Jan 1 01:01:01", fields.get(Index.TIMESTAMP).getValue()); | |
190 | assertEquals("getFields:HOST", SyslogEventType.LABELS[1], fields.get(Index.HOST).getName()); | |
191 | assertEquals("getFields:HOST", "HostA", fields.get(Index.HOST).getValue()); | |
192 | assertEquals("getFields:LOGGER", SyslogEventType.LABELS[2], fields.get(Index.LOGGER).getName()); | |
193 | assertEquals("getFields:LOGGER", "LoggerA", fields.get(Index.LOGGER).getValue()); | |
32528869 BH |
194 | assertEquals("getFields:FILE", SyslogEventType.LABELS[3], fields.get(Index.FILE).getName()); |
195 | assertEquals("getFields:FILE", "SourceFileA", fields.get(Index.FILE).getValue()); | |
196 | assertEquals("getFields:LINE", SyslogEventType.LABELS[4], fields.get(Index.LINE).getName()); | |
197 | assertEquals("getFields:LINE", "0", fields.get(Index.LINE).getValue()); | |
198 | assertEquals("getFields:MESSAGE", SyslogEventType.LABELS[5], fields.get(Index.MESSAGE).getName()); | |
b742c196 | 199 | assertEquals("getFields:MESSAGE", "MessageA", fields.get(Index.MESSAGE).getValue()); |
eadf9801 BH |
200 | } |
201 | ||
202 | @Test | |
203 | public void testGetFieldWithName() { | |
204 | ITmfEventField field = fEventContent1.getField("Timestamp"); | |
205 | assertEquals("getFieldName:TIMESTAMP", SyslogEventType.LABELS[0], field.getName()); | |
206 | assertEquals("getFieldName:TIMESTAMP", "Jan 1 01:01:01", field.getValue()); | |
207 | ||
208 | field = fEventContent1.getField(SyslogEventType.LABELS[1]); | |
209 | assertEquals("getFieldName:HOST", SyslogEventType.LABELS[1], field.getName()); | |
210 | assertEquals("getFieldName:HOST", "HostA", field.getValue()); | |
211 | ||
212 | field = fEventContent1.getField(SyslogEventType.LABELS[2]); | |
213 | assertEquals("getFieldName:LOGGER", SyslogEventType.LABELS[2], field.getName()); | |
214 | assertEquals("getFieldName:LOGGER", "LoggerA", field.getValue()); | |
215 | ||
216 | field = fEventContent1.getField(SyslogEventType.LABELS[3]); | |
32528869 BH |
217 | assertEquals("getFieldName:FILE", SyslogEventType.LABELS[3], field.getName()); |
218 | assertEquals("getFieldName:FILE", "SourceFileA", field.getValue()); | |
219 | ||
220 | field = fEventContent1.getField(SyslogEventType.LABELS[4]); | |
221 | assertEquals("getFieldName:LINE", SyslogEventType.LABELS[4], field.getName()); | |
222 | assertEquals("getFieldName:LINE", "0", field.getValue()); | |
223 | ||
224 | field = fEventContent1.getField(SyslogEventType.LABELS[5]); | |
225 | assertEquals("getFieldName:Message", SyslogEventType.LABELS[5], field.getName()); | |
eadf9801 BH |
226 | assertEquals("getgetFieldName:Message", "MessageA", field.getValue()); |
227 | ||
228 | field = fEventContent1.getField("BlaBla"); | |
229 | assertNull(field); | |
230 | } | |
231 | ||
eadf9801 BH |
232 | @Test |
233 | public void testGetFormattedValue() { | |
234 | assertEquals("CONTENT", fEventContent1.getFormattedValue()); | |
235 | } | |
236 | ||
237 | @Test | |
238 | public void testToString() { | |
32528869 | 239 | assertEquals("Timestamp=Jan 1 01:01:01, Host=HostA, Logger=LoggerA, File=SourceFileA, Line=0, Message=MessageA", fEventContent1.toString()); |
eadf9801 BH |
240 | } |
241 | ||
242 | @Test | |
243 | public void testGetSubField() { | |
244 | String[] names = { "Timestamp"}; | |
245 | ||
246 | ITmfEventField field = fEventContent1.getSubField(names); | |
247 | assertEquals("getSubField:TIMESTAMP", SyslogEventType.LABELS[0], field.getName()); | |
248 | assertEquals("getSubField:TIMESTAMP", "Jan 1 01:01:01", field.getValue()); | |
249 | ||
250 | String[] names2 = { "Timestamp", "subField" }; | |
251 | field = fEventContent1.getSubField(names2); | |
252 | assertNull(field); | |
253 | } | |
254 | ||
255 | @Test | |
256 | public void testGetFieldNames() { | |
32528869 | 257 | String[] labels = {"Timestamp", "Host", "Logger", "File", "Line", "Message"}; |
b742c196 AM |
258 | List<String> names = fEventContent1.getFieldNames(); |
259 | assertArrayEquals(labels, names.toArray(new String[names.size()])); | |
eadf9801 BH |
260 | } |
261 | ||
262 | } |