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 | *******************************************************************************/ | |
12 | package org.eclipse.linuxtools.tmf.core.tests.trace.text; | |
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 | ||
eadf9801 BH |
23 | import org.eclipse.linuxtools.tmf.core.event.ITmfEventField; |
24 | import org.eclipse.linuxtools.tmf.core.trace.text.TextTraceEventContent; | |
25 | import org.eclipse.linuxtools.tmf.tests.stubs.trace.text.SyslogEventType; | |
26 | import org.eclipse.linuxtools.tmf.tests.stubs.trace.text.SyslogEventType.Index; | |
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"); | |
50 | fEventContent1.setFieldValue(Index.MESSAGE, "MessageA"); | |
51 | ||
b742c196 AM |
52 | fEventContent1Clone = new TextTraceEventContent(SyslogEventType.LABELS); |
53 | fEventContent1Clone.setValue("CONTENT"); | |
54 | fEventContent1Clone.setFieldValue(Index.TIMESTAMP, "Jan 1 01:01:01"); | |
55 | fEventContent1Clone.setFieldValue(Index.HOST, "HostA"); | |
56 | fEventContent1Clone.setFieldValue(Index.LOGGER, "LoggerA"); | |
57 | fEventContent1Clone.setFieldValue(Index.MESSAGE, "MessageA"); | |
58 | ||
eadf9801 BH |
59 | fEventContent2 = new TextTraceEventContent(SyslogEventType.LABELS); |
60 | fEventContent2.setFieldValue(SyslogEventType.LABELS[0], "Jan 1 02:02:02"); | |
61 | fEventContent2.setFieldValue(SyslogEventType.LABELS[1], "HostB"); | |
62 | fEventContent2.setFieldValue(SyslogEventType.LABELS[2], "LoggerB"); | |
63 | StringBuffer buffer = new StringBuffer(); | |
64 | buffer.append("Message B"); | |
65 | fEventContent2.setFieldValue(SyslogEventType.LABELS[3], buffer); | |
b742c196 AM |
66 | |
67 | fEventContent2Clone = new TextTraceEventContent(SyslogEventType.LABELS); | |
68 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[0], "Jan 1 02:02:02"); | |
69 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[1], "HostB"); | |
70 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[2], "LoggerB"); | |
71 | buffer = new StringBuffer(); | |
72 | buffer.append("Message B"); | |
73 | fEventContent2Clone.setFieldValue(SyslogEventType.LABELS[3], buffer); | |
eadf9801 BH |
74 | } |
75 | ||
76 | public void testConstructorConstructor() { | |
77 | assertEquals("getField:TIMESTAMP", "Jan 1 01:01:01", fEventContent1.getFieldValue(Index.TIMESTAMP)); | |
78 | assertEquals("getField:HOST", "HostA", fEventContent1.getFieldValue(Index.HOST)); | |
79 | assertEquals("getField:LOGGER", "LoggerA", fEventContent1.getFieldValue(Index.LOGGER)); | |
80 | assertEquals("getField:MESSAGE", "MessageA", fEventContent1.getFieldValue(Index.MESSAGE).toString()); | |
81 | } | |
82 | ||
83 | // ------------------------------------------------------------------------ | |
84 | // Event Type | |
85 | // ------------------------------------------------------------------------ | |
86 | ||
87 | @Test | |
88 | public void testEventTypeInstance() { | |
89 | SyslogEventType eventType = SyslogEventType.INSTANCE; | |
90 | assertEquals("getTypeId", "Syslog", eventType.getName()); | |
91 | assertNotNull ("instance", eventType); | |
b742c196 AM |
92 | assertTrue (eventType.getFieldNames().contains("Timestamp")); |
93 | assertTrue (eventType.getFieldNames().contains("Host")); | |
94 | assertTrue (eventType.getFieldNames().contains("Logger")); | |
95 | assertTrue (eventType.getFieldNames().contains("Message")); | |
eadf9801 BH |
96 | } |
97 | ||
98 | // ------------------------------------------------------------------------ | |
99 | // equals | |
100 | // ------------------------------------------------------------------------ | |
101 | ||
102 | @Test | |
b742c196 AM |
103 | public void testEquals() { |
104 | assertEquals("equals", fEventContent1, fEventContent1); | |
105 | assertEquals("equals", fEventContent2, fEventContent2); | |
eadf9801 | 106 | |
b742c196 AM |
107 | assertTrue("equals", !fEventContent1.equals(fEventContent2)); |
108 | assertTrue("equals", !fEventContent2.equals(fEventContent1)); | |
109 | ||
110 | assertEquals("equals", fEventContent1, fEventContent1Clone); | |
111 | assertEquals("equals", fEventContent2, fEventContent2Clone); | |
eadf9801 BH |
112 | } |
113 | ||
114 | @Test | |
115 | public void testEqualsNull() { | |
116 | assertTrue("equals", !fEventContent1.equals(null)); | |
117 | assertTrue("equals", !fEventContent2.equals(null)); | |
118 | } | |
119 | ||
120 | // ------------------------------------------------------------------------ | |
121 | // hashCode | |
122 | // ------------------------------------------------------------------------ | |
b742c196 | 123 | |
eadf9801 BH |
124 | @Test |
125 | public void testHashCode() { | |
eadf9801 | 126 | |
b742c196 AM |
127 | assertEquals("hashCode", fEventContent1.hashCode(), fEventContent1Clone.hashCode()); |
128 | assertEquals("hashCode", fEventContent2.hashCode(), fEventContent2Clone.hashCode()); | |
eadf9801 | 129 | |
b742c196 AM |
130 | assertNotEquals("hashCode", fEventContent1.hashCode(), fEventContent2.hashCode()); |
131 | assertNotEquals("hashCode", fEventContent2.hashCode(), fEventContent1.hashCode()); | |
eadf9801 BH |
132 | } |
133 | ||
134 | // ------------------------------------------------------------------------ | |
135 | // Event Content | |
136 | // ------------------------------------------------------------------------ | |
137 | ||
138 | @Test | |
139 | public void testGetFieldValueWithIndex() { | |
140 | assertEquals("getFieldValue:TIMESTAMP", "Jan 1 01:01:01", fEventContent1.getFieldValue(Index.TIMESTAMP)); | |
141 | assertEquals("getFieldValue:HOST", "HostA", fEventContent1.getFieldValue(Index.HOST)); | |
142 | assertEquals("getFieldValue:LOGGER", "LoggerA", fEventContent1.getFieldValue(Index.LOGGER)); | |
143 | assertEquals("getFieldValue:MESSAGE", "MessageA", fEventContent1.getFieldValue(Index.MESSAGE)); | |
144 | assertNull(fEventContent1.getFieldValue(4)); | |
145 | } | |
146 | ||
147 | @Test | |
148 | public void testGetFieldValueWithName() { | |
149 | assertEquals("getFieldValue:TIMESTAMP", "Jan 1 01:01:01", fEventContent1.getFieldValue("Timestamp")); | |
150 | assertEquals("getFieldValue:HOST", "HostA", fEventContent1.getFieldValue("Host")); | |
151 | assertEquals("getFieldValue:LOGGER", "LoggerA", fEventContent1.getFieldValue("Logger")); | |
152 | assertEquals("getFieldValue:MESSAGE", "MessageA", fEventContent1.getFieldValue("Message")); | |
153 | assertNull(fEventContent1.getFieldValue("BlaBla")); | |
154 | } | |
155 | ||
156 | @Test | |
157 | public void testGetFieldNameWithIndex() { | |
158 | ||
159 | assertEquals("getFieldName:TIMESTAMP", SyslogEventType.LABELS[0], fEventContent1.getFieldName(Index.TIMESTAMP)); | |
160 | assertEquals("getFieldName:HOST", SyslogEventType.LABELS[1], fEventContent1.getFieldName(Index.HOST)); | |
161 | assertEquals("getFieldName:LOGGER", SyslogEventType.LABELS[2], fEventContent1.getFieldName(Index.LOGGER)); | |
162 | assertEquals("getFieldName:MESSAGE", SyslogEventType.LABELS[3], fEventContent1.getFieldName(Index.MESSAGE)); | |
163 | assertNull(fEventContent1.getFieldValue(4)); | |
164 | } | |
165 | ||
166 | @Test | |
167 | public void testGetFields() { | |
b742c196 AM |
168 | List<TextTraceEventContent> fields = fEventContent1.getFields(); |
169 | assertEquals(4, fields.size()); | |
170 | assertEquals("getFields:TIMESTAMP", SyslogEventType.LABELS[0], fields.get(Index.TIMESTAMP).getName()); | |
171 | assertEquals("getFields:TIMESTAMP", "Jan 1 01:01:01", fields.get(Index.TIMESTAMP).getValue()); | |
172 | assertEquals("getFields:HOST", SyslogEventType.LABELS[1], fields.get(Index.HOST).getName()); | |
173 | assertEquals("getFields:HOST", "HostA", fields.get(Index.HOST).getValue()); | |
174 | assertEquals("getFields:LOGGER", SyslogEventType.LABELS[2], fields.get(Index.LOGGER).getName()); | |
175 | assertEquals("getFields:LOGGER", "LoggerA", fields.get(Index.LOGGER).getValue()); | |
176 | assertEquals("getFields:MESSAGE", SyslogEventType.LABELS[3], fields.get(Index.MESSAGE).getName()); | |
177 | assertEquals("getFields:MESSAGE", "MessageA", fields.get(Index.MESSAGE).getValue()); | |
eadf9801 BH |
178 | } |
179 | ||
180 | @Test | |
181 | public void testGetFieldWithName() { | |
182 | ITmfEventField field = fEventContent1.getField("Timestamp"); | |
183 | assertEquals("getFieldName:TIMESTAMP", SyslogEventType.LABELS[0], field.getName()); | |
184 | assertEquals("getFieldName:TIMESTAMP", "Jan 1 01:01:01", field.getValue()); | |
185 | ||
186 | field = fEventContent1.getField(SyslogEventType.LABELS[1]); | |
187 | assertEquals("getFieldName:HOST", SyslogEventType.LABELS[1], field.getName()); | |
188 | assertEquals("getFieldName:HOST", "HostA", field.getValue()); | |
189 | ||
190 | field = fEventContent1.getField(SyslogEventType.LABELS[2]); | |
191 | assertEquals("getFieldName:LOGGER", SyslogEventType.LABELS[2], field.getName()); | |
192 | assertEquals("getFieldName:LOGGER", "LoggerA", field.getValue()); | |
193 | ||
194 | field = fEventContent1.getField(SyslogEventType.LABELS[3]); | |
195 | assertEquals("getFieldName:Message", SyslogEventType.LABELS[3], field.getName()); | |
196 | assertEquals("getgetFieldName:Message", "MessageA", field.getValue()); | |
197 | ||
198 | field = fEventContent1.getField("BlaBla"); | |
199 | assertNull(field); | |
200 | } | |
201 | ||
eadf9801 BH |
202 | @Test |
203 | public void testGetFormattedValue() { | |
204 | assertEquals("CONTENT", fEventContent1.getFormattedValue()); | |
205 | } | |
206 | ||
207 | @Test | |
208 | public void testToString() { | |
209 | assertEquals("Timestamp=Jan 1 01:01:01, Host=HostA, Logger=LoggerA, Message=MessageA", fEventContent1.toString()); | |
210 | } | |
211 | ||
212 | @Test | |
213 | public void testGetSubField() { | |
214 | String[] names = { "Timestamp"}; | |
215 | ||
216 | ITmfEventField field = fEventContent1.getSubField(names); | |
217 | assertEquals("getSubField:TIMESTAMP", SyslogEventType.LABELS[0], field.getName()); | |
218 | assertEquals("getSubField:TIMESTAMP", "Jan 1 01:01:01", field.getValue()); | |
219 | ||
220 | String[] names2 = { "Timestamp", "subField" }; | |
221 | field = fEventContent1.getSubField(names2); | |
222 | assertNull(field); | |
223 | } | |
224 | ||
225 | @Test | |
226 | public void testGetFieldNames() { | |
227 | String[] labels = {"Timestamp", "Host", "Logger", "Message"}; | |
b742c196 AM |
228 | List<String> names = fEventContent1.getFieldNames(); |
229 | assertArrayEquals(labels, names.toArray(new String[names.size()])); | |
eadf9801 BH |
230 | } |
231 | ||
232 | } |