2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.apex.plugins.event.protocol.xml;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertFalse;
25 import static org.junit.Assert.assertNull;
26 import static org.junit.Assert.assertTrue;
28 import java.io.ByteArrayInputStream;
29 import java.io.IOException;
30 import java.io.InputStream;
32 import org.junit.Test;
33 import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.consumer.HeaderDelimitedTextBlockReader;
34 import org.onap.policy.apex.service.engine.event.impl.filecarrierplugin.consumer.TextBlock;
37 * @author Liam Fallon (liam.fallon@ericsson.com)
39 public class TestXMLTaggedEventConsumer {
41 public void testGarbageTextLine() throws IOException {
42 final InputStream xmlInputStream = new ByteArrayInputStream("hello there".getBytes());
44 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
45 xmlTaggedReader.init(xmlInputStream);
47 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
48 assertNull(textBlock.getText());
49 assertTrue(textBlock.isEndOfText());
53 public void testPartialEventLine() throws IOException {
54 final InputStream xmlInputStream =
55 new ByteArrayInputStream("1469781869268</TestTimestamp></MainTag>".getBytes());
57 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
58 xmlTaggedReader.init(xmlInputStream);
60 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
61 assertNull(textBlock.getText());
62 assertTrue(textBlock.isEndOfText());
66 public void testFullEventLine() throws IOException {
67 final InputStream xmlInputStream = new ByteArrayInputStream(
68 "<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag>".getBytes());
70 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
71 xmlTaggedReader.init(xmlInputStream);
73 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
74 assertEquals(textBlock.getText(), "<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag>");
75 assertTrue(textBlock.isEndOfText());
79 public void testFullEventGarbageBeforeLine() throws IOException {
80 final InputStream xmlInputStream = new ByteArrayInputStream(
81 "Garbage<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag>".getBytes());
83 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
84 xmlTaggedReader.init(xmlInputStream);
86 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
87 assertTrue(textBlock.isEndOfText());
91 public void testFullEventGarbageBeforeAfterLine() throws IOException {
92 final InputStream xmlInputStream = new ByteArrayInputStream(
93 "Garbage<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag>Rubbish".getBytes());
95 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
96 xmlTaggedReader.init(xmlInputStream);
98 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
99 assertTrue(textBlock.isEndOfText());
103 public void testFullEventGarbageAfterLine() throws IOException {
104 final InputStream xmlInputStream = new ByteArrayInputStream(
105 "<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag>Rubbish".getBytes());
107 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
108 xmlTaggedReader.init(xmlInputStream);
110 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
111 assertEquals(textBlock.getText(),
112 "<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag>Rubbish");
113 assertTrue(textBlock.isEndOfText());
117 public void testGarbageTextMultiLine() throws IOException {
118 final InputStream xmlInputStream = new ByteArrayInputStream("hello\nthere".getBytes());
120 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
121 xmlTaggedReader.init(xmlInputStream);
123 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
124 assertTrue(textBlock.isEndOfText());
128 public void testPartialEventMultiLine() throws IOException {
129 final InputStream xmlInputStream =
130 new ByteArrayInputStream("1469781869268\n</TestTimestamp>\n</MainTag>".getBytes());
132 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
133 xmlTaggedReader.init(xmlInputStream);
135 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
136 assertTrue(textBlock.isEndOfText());
140 public void testFullEventMultiLine() throws IOException {
141 final InputStream xmlInputStream = new ByteArrayInputStream(
142 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\n\n".getBytes());
144 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
145 xmlTaggedReader.init(xmlInputStream);
147 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
148 assertEquals(textBlock.getText(),
149 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>");
150 assertTrue(textBlock.isEndOfText());
154 public void testFullEventGarbageBeforeMultiLine() throws IOException {
155 final InputStream xmlInputStream = new ByteArrayInputStream(
156 "Garbage\n<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\n\n".getBytes());
158 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
159 xmlTaggedReader.init(xmlInputStream);
161 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
162 assertEquals(textBlock.getText(),
163 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>");
164 assertTrue(textBlock.isEndOfText());
168 public void testFullEventGarbageBeforeAfterMultiLine() throws IOException {
169 final InputStream xmlInputStream = new ByteArrayInputStream(
170 "Garbage\n<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRubbish\n\n"
173 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
174 xmlTaggedReader.init(xmlInputStream);
176 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
177 assertEquals(textBlock.getText(),
178 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRubbish");
179 assertTrue(textBlock.isEndOfText());
183 public void testFullEventGarbageAfterMultiLine() throws IOException {
184 final InputStream xmlInputStream = new ByteArrayInputStream(
185 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRubbish".getBytes());
187 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
188 xmlTaggedReader.init(xmlInputStream);
190 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
191 assertEquals(textBlock.getText(),
192 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRubbish");
193 assertTrue(textBlock.isEndOfText());
197 public void testPartialEventsLine() throws IOException {
198 final InputStream xmlInputStream = new ByteArrayInputStream(
199 "1469781869268</TestTimestamp></MainTag><?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp>"
202 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
203 xmlTaggedReader.init(xmlInputStream);
205 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
206 assertTrue(textBlock.isEndOfText());
210 public void testFullEventsGarbageBeforeLine() throws IOException {
211 final InputStream xmlInputStream = new ByteArrayInputStream(
212 "Garbage<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag><?xml><MainTag><TestTimestamp>"
215 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
216 xmlTaggedReader.init(xmlInputStream);
218 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
219 assertTrue(textBlock.isEndOfText());
223 public void testFullEventsGarbageBeforeAfterLine() throws IOException {
224 final InputStream xmlInputStream = new ByteArrayInputStream(
225 "Garbage<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag>Rubbish<?xml><MainTag><TestTimestamp>\nRefuse"
228 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
229 xmlTaggedReader.init(xmlInputStream);
231 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
232 assertTrue(textBlock.isEndOfText());
236 public void testFullEventsGarbageAfterLine() throws IOException {
237 final InputStream xmlInputStream = new ByteArrayInputStream(
238 "<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag>Rubbish<?xml><MainTag><TestTimestamp>Refuse"
241 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
242 xmlTaggedReader.init(xmlInputStream);
244 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
245 assertEquals(textBlock.getText(),
246 "<?xml><MainTag><TestTimestamp>1469781869268</TestTimestamp></MainTag>Rubbish<?xml><MainTag><TestTimestamp>Refuse");
247 assertTrue(textBlock.isEndOfText());
251 public void testPartialEventsMultiLine() throws IOException {
252 final InputStream xmlInputStream = new ByteArrayInputStream(
253 "1469781869268\n</TestTimestamp>\n</MainTag>\n<?xml>\n<MainTag>\n<TestTimestamp>".getBytes());
255 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
256 xmlTaggedReader.init(xmlInputStream);
258 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
259 assertEquals(textBlock.getText(), "<?xml>\n<MainTag>\n<TestTimestamp>");
260 assertTrue(textBlock.isEndOfText());
264 public void testFullEventsMultiLine() throws IOException {
265 final InputStream xmlInputStream = new ByteArrayInputStream(
266 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\n<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\n"
269 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
270 xmlTaggedReader.init(xmlInputStream);
272 TextBlock textBlock = xmlTaggedReader.readTextBlock();
273 assertEquals(textBlock.getText(),
274 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>");
275 assertFalse(textBlock.isEndOfText());
277 textBlock = xmlTaggedReader.readTextBlock();
278 assertEquals(textBlock.getText(),
279 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>");
280 assertTrue(textBlock.isEndOfText());
284 public void testFullEventsGarbageBeforeMultiLine() throws IOException {
285 final InputStream xmlInputStream = new ByteArrayInputStream(
286 "Garbage\n<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\n\n<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\n"
289 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
290 xmlTaggedReader.init(xmlInputStream);
292 TextBlock textBlock = xmlTaggedReader.readTextBlock();
293 assertEquals(textBlock.getText(),
294 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>");
295 assertFalse(textBlock.isEndOfText());
297 textBlock = xmlTaggedReader.readTextBlock();
298 assertEquals(textBlock.getText(),
299 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>");
300 assertTrue(textBlock.isEndOfText());
304 public void testFullEventsGarbageBeforeAfterMultiLine() throws IOException {
305 final InputStream xmlInputStream = new ByteArrayInputStream(
306 "Garbage\n<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRubbish\n<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRefuse\n"
309 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
310 xmlTaggedReader.init(xmlInputStream);
312 TextBlock textBlock = xmlTaggedReader.readTextBlock();
313 assertEquals(textBlock.getText(),
314 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRubbish");
315 assertFalse(textBlock.isEndOfText());
317 textBlock = xmlTaggedReader.readTextBlock();
318 assertEquals(textBlock.getText(),
319 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRefuse");
320 assertTrue(textBlock.isEndOfText());
324 public void testFullEventsGarbageAfterMultiLine() throws IOException {
325 final InputStream xmlInputStream = new ByteArrayInputStream(
326 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRubbish".getBytes());
328 final HeaderDelimitedTextBlockReader xmlTaggedReader = new HeaderDelimitedTextBlockReader("<?xml");
329 xmlTaggedReader.init(xmlInputStream);
331 final TextBlock textBlock = xmlTaggedReader.readTextBlock();
332 assertEquals(textBlock.getText(),
333 "<?xml>\n<MainTag>\n<TestTimestamp>1469781869268</TestTimestamp>\n</MainTag>\nRubbish");
334 assertTrue(textBlock.isEndOfText());