1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.ccsds.utils.lexical;
18
19 import java.net.MalformedURLException;
20
21 import org.hamcrest.CoreMatchers;
22 import org.hamcrest.MatcherAssert;
23 import org.junit.jupiter.api.Assertions;
24 import org.junit.jupiter.api.Test;
25 import org.orekit.data.DataSource;
26 import org.orekit.errors.OrekitException;
27 import org.orekit.errors.OrekitMessages;
28 import org.orekit.files.ccsds.ndm.ParserBuilder;
29 import org.orekit.files.ccsds.ndm.odm.ocm.OcmParser;
30
31 public class XmlLexicalAnalyzerTest {
32
33 @Test
34 public void testNullBinary() {
35 XmlLexicalAnalyzer la = new XmlLexicalAnalyzer(new DataSource("empty", (DataSource.StreamOpener) () -> null));
36 try {
37 la.accept(new ParserBuilder().buildOcmParser());
38 Assertions.fail("an exception should have been thrown");
39 } catch (OrekitException oe) {
40 Assertions.assertEquals(OrekitMessages.UNABLE_TO_FIND_FILE, oe.getSpecifier());
41 Assertions.assertEquals("empty", oe.getParts()[0]);
42 }
43 }
44
45 @Test
46 public void testNullCharacter() {
47 XmlLexicalAnalyzer la = new XmlLexicalAnalyzer(new DataSource("empty", (DataSource.ReaderOpener) () -> null));
48 try {
49 la.accept(new ParserBuilder().buildOcmParser());
50 Assertions.fail("an exception should have been thrown");
51 } catch (OrekitException oe) {
52 Assertions.assertEquals(OrekitMessages.UNABLE_TO_FIND_FILE, oe.getSpecifier());
53 Assertions.assertEquals("empty", oe.getParts()[0]);
54 }
55 }
56
57
58
59
60
61 @Test
62 public void testExternalResourcesAreIgnored() {
63
64 XmlLexicalAnalyzer la = new XmlLexicalAnalyzer(new DataSource(
65 "entity",
66 () -> this.getClass().getResourceAsStream("/ccsds/ndm/NDM-opm-entity.xml")));
67 OcmParser parser = new ParserBuilder().buildOcmParser();
68
69
70 try {
71 la.accept(parser);
72
73 Assertions.fail("Expected Exception");
74 } catch (OrekitException e) {
75
76
77 MatcherAssert.assertThat(e.getCause(),
78 CoreMatchers.instanceOf(MalformedURLException.class));
79 }
80 }
81
82 }