|
3 | 3 |
|
4 | 4 | import org.testng.annotations.Test; |
5 | 5 |
|
6 | | -import static org.testng.Assert.assertEquals; |
7 | | -import static org.testng.Assert.assertTrue; |
8 | | -import static org.testng.Assert.assertNull; |
9 | | - |
10 | | -import java.io.*; |
| 6 | +import java.io.BufferedInputStream; |
| 7 | +import java.io.ByteArrayInputStream; |
| 8 | +import java.io.InputStream; |
11 | 9 | import java.util.ArrayList; |
12 | | -import java.util.HashSet; |
| 10 | +import java.util.Base64; |
13 | 11 | import java.util.List; |
14 | 12 | import java.util.Set; |
15 | 13 | import java.util.stream.Collectors; |
16 | 14 |
|
| 15 | +import static org.testng.Assert.assertEquals; |
| 16 | +import static org.testng.Assert.assertNull; |
| 17 | + |
17 | 18 | public class LargeCommunitiesTest { |
18 | 19 | @Test |
19 | 20 | public void testParseDump() |
@@ -57,4 +58,19 @@ public void testParseDump() |
57 | 58 | assertEquals(strings.size(), 1); |
58 | 59 | assertEquals(strings.iterator().next(), "200753:200:46524131"); |
59 | 60 | } |
| 61 | + |
| 62 | + @Test |
| 63 | + public void should_parse_large_community_with_zero_length() throws Exception { |
| 64 | + final String base64 = "X3+NoAAQAAQAAACRAADjuwAAMW4AAAABW840glvONP3/////////////////////AH0CADwYF4YQGBeGERgXlyEYF6mgGBerYBhAwAAYQMABGEDAAhhAwAMYQMAEGEDABRhybOsYcmz4GLYSyBi2EskAJkABAQBAAg4CAwAA47sAABsbAAB+BUADBFvONILACATjuwPo4CAAGJ73ew=="; |
| 65 | + final byte[] bytes = Base64.getDecoder().decode(base64); |
| 66 | + final BGPFileReader bgpFileReader = new BGPFileReader(new ByteArrayInputStream(bytes)); |
| 67 | + MRTRecord mrtRecord = null; |
| 68 | + MRTRecord tmp; |
| 69 | + while (!bgpFileReader.eof()) { |
| 70 | + tmp = bgpFileReader.readNext(); |
| 71 | + if (tmp != null) mrtRecord = tmp; |
| 72 | + } |
| 73 | + assertEquals(mrtRecord.getClass(), Advertisement.class); |
| 74 | + assertEquals(mrtRecord.toString(), "BGP4MP|1602194848|A|91.206.52.130|58299|158.247.123.0/24|58299 6939 32261|IGP|91.206.52.130|0|0|58299:1000|NAG||"); |
| 75 | + } |
60 | 76 | } |
0 commit comments