1 /*******************************************************************************
2 * Copyright (c) 2014 Ericsson
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
10 * Bernd Hufmann - Initial API and implementation
11 *******************************************************************************/
12 package org
.eclipse
.linuxtools
.tmf
.core
.tests
.trace
.text
;
14 import static org
.junit
.Assert
.assertArrayEquals
;
15 import static org
.junit
.Assert
.assertEquals
;
16 import static org
.junit
.Assert
.assertNotEquals
;
17 import static org
.junit
.Assert
.assertNotNull
;
18 import static org
.junit
.Assert
.assertNull
;
19 import static org
.junit
.Assert
.assertTrue
;
21 import java
.util
.List
;
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
;
30 * Test suite for the {@link TextTraceEventContent} class.
32 @SuppressWarnings({ "javadoc", "nls" })
33 public class TextTraceEventContentTest
{
35 // ------------------------------------------------------------------------
37 // ------------------------------------------------------------------------
39 private TextTraceEventContent fEventContent1
;
40 private TextTraceEventContent fEventContent1Clone
;
41 private TextTraceEventContent fEventContent2
;
42 private TextTraceEventContent fEventContent2Clone
;
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");
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");
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
);
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
);
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());
83 // ------------------------------------------------------------------------
85 // ------------------------------------------------------------------------
88 public void testEventTypeInstance() {
89 SyslogEventType eventType
= SyslogEventType
.INSTANCE
;
90 assertEquals("getTypeId", "Syslog", eventType
.getName());
91 assertNotNull ("instance", eventType
);
92 assertTrue (eventType
.getFieldNames().contains("Timestamp"));
93 assertTrue (eventType
.getFieldNames().contains("Host"));
94 assertTrue (eventType
.getFieldNames().contains("Logger"));
95 assertTrue (eventType
.getFieldNames().contains("Message"));
98 // ------------------------------------------------------------------------
100 // ------------------------------------------------------------------------
103 public void testEquals() {
104 assertEquals("equals", fEventContent1
, fEventContent1
);
105 assertEquals("equals", fEventContent2
, fEventContent2
);
107 assertTrue("equals", !fEventContent1
.equals(fEventContent2
));
108 assertTrue("equals", !fEventContent2
.equals(fEventContent1
));
110 assertEquals("equals", fEventContent1
, fEventContent1Clone
);
111 assertEquals("equals", fEventContent2
, fEventContent2Clone
);
115 public void testEqualsNull() {
116 assertTrue("equals", !fEventContent1
.equals(null));
117 assertTrue("equals", !fEventContent2
.equals(null));
120 // ------------------------------------------------------------------------
122 // ------------------------------------------------------------------------
125 public void testHashCode() {
127 assertEquals("hashCode", fEventContent1
.hashCode(), fEventContent1Clone
.hashCode());
128 assertEquals("hashCode", fEventContent2
.hashCode(), fEventContent2Clone
.hashCode());
130 assertNotEquals("hashCode", fEventContent1
.hashCode(), fEventContent2
.hashCode());
131 assertNotEquals("hashCode", fEventContent2
.hashCode(), fEventContent1
.hashCode());
134 // ------------------------------------------------------------------------
136 // ------------------------------------------------------------------------
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));
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"));
157 public void testGetFieldNameWithIndex() {
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));
167 public void testGetFields() {
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());
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());
186 field
= fEventContent1
.getField(SyslogEventType
.LABELS
[1]);
187 assertEquals("getFieldName:HOST", SyslogEventType
.LABELS
[1], field
.getName());
188 assertEquals("getFieldName:HOST", "HostA", field
.getValue());
190 field
= fEventContent1
.getField(SyslogEventType
.LABELS
[2]);
191 assertEquals("getFieldName:LOGGER", SyslogEventType
.LABELS
[2], field
.getName());
192 assertEquals("getFieldName:LOGGER", "LoggerA", field
.getValue());
194 field
= fEventContent1
.getField(SyslogEventType
.LABELS
[3]);
195 assertEquals("getFieldName:Message", SyslogEventType
.LABELS
[3], field
.getName());
196 assertEquals("getgetFieldName:Message", "MessageA", field
.getValue());
198 field
= fEventContent1
.getField("BlaBla");
203 public void testGetFormattedValue() {
204 assertEquals("CONTENT", fEventContent1
.getFormattedValue());
208 public void testToString() {
209 assertEquals("Timestamp=Jan 1 01:01:01, Host=HostA, Logger=LoggerA, Message=MessageA", fEventContent1
.toString());
213 public void testGetSubField() {
214 String
[] names
= { "Timestamp"};
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());
220 String
[] names2
= { "Timestamp", "subField" };
221 field
= fEventContent1
.getSubField(names2
);
226 public void testGetFieldNames() {
227 String
[] labels
= {"Timestamp", "Host", "Logger", "Message"};
228 List
<String
> names
= fEventContent1
.getFieldNames();
229 assertArrayEquals(labels
, names
.toArray(new String
[names
.size()]));