66import java .io .File ;
77import java .io .IOException ;
88import java .net .InetAddress ;
9+ import java .net .URI ;
10+ import java .net .URISyntaxException ;
911import java .util .HashMap ;
1012import java .util .Map ;
1113
@@ -18,24 +20,31 @@ public class ReaderTest {
1820 private final ObjectMapper om = new ObjectMapper ();
1921
2022 @ Test
21- public void test () throws InvalidDatabaseException , IOException {
23+ public void test () throws InvalidDatabaseException , IOException ,
24+ URISyntaxException {
2225 for (long recordSize : new long [] { 24 , 28 , 32 }) {
2326 for (int ipVersion : new int [] { 4 , 6 }) {
24- String fileName = "test-data/Test-IPv" + ipVersion + "-"
25- + recordSize + ".mmdb" ;
26- MaxMindDbReader reader = new MaxMindDbReader (new File (fileName ));
27- this .testMetadata (reader , ipVersion , recordSize );
27+ URI file = ReaderTest .class .getResource (
28+ "/maxmind-db/test-data/MaxMind-DB-test-ipv" + ipVersion
29+ + "-" + recordSize + ".mmdb" ).toURI ();
30+ MaxMindDbReader reader = new MaxMindDbReader (new File (file ));
31+ try {
32+ this .testMetadata (reader , ipVersion , recordSize );
33+ } finally {
34+ reader .close ();
35+ }
2836
2937 if (ipVersion == 4 ) {
30- this .testIpV4 (reader , fileName );
38+ this .testIpV4 (reader , file );
3139 } else {
32- this .testIpV6 (reader , fileName );
40+ this .testIpV6 (reader , file );
3341 }
3442 }
3543 }
3644 }
3745
38- private void testMetadata (MaxMindDbReader reader , int ipVersion , long recordSize ) {
46+ private void testMetadata (MaxMindDbReader reader , int ipVersion ,
47+ long recordSize ) {
3948
4049 Metadata metadata = reader .getMetadata ();
4150
@@ -54,7 +63,7 @@ private void testMetadata(MaxMindDbReader reader, int ipVersion, long recordSize
5463 assertEquals (recordSize , metadata .recordSize );
5564 }
5665
57- private void testIpV4 (MaxMindDbReader reader , String fileName )
66+ private void testIpV4 (MaxMindDbReader reader , URI file )
5867 throws InvalidDatabaseException , IOException {
5968
6069 for (int i = 0 ; i <= 5 ; i ++) {
@@ -63,8 +72,7 @@ private void testIpV4(MaxMindDbReader reader, String fileName)
6372 data .put ("ip" , address );
6473
6574 assertEquals ("found expected data record for " + address + " in "
66- + fileName , data ,
67- reader .get (InetAddress .getByName (address )));
75+ + file , data , reader .get (InetAddress .getByName (address )));
6876 }
6977
7078 Map <String , String > pairs = new HashMap <String , String >();
@@ -80,8 +88,7 @@ private void testIpV4(MaxMindDbReader reader, String fileName)
8088 data .put ("ip" , pairs .get (address ));
8189
8290 assertEquals ("found expected data record for " + address + " in "
83- + fileName , data ,
84- reader .get (InetAddress .getByName (address )));
91+ + file , data , reader .get (InetAddress .getByName (address )));
8592 }
8693
8794 for (String ip : new String [] { "1.1.1.33" , "255.254.253.123" }) {
@@ -90,7 +97,7 @@ private void testIpV4(MaxMindDbReader reader, String fileName)
9097 }
9198
9299 // XXX - logic could be combined with above
93- private void testIpV6 (MaxMindDbReader reader , String fileName )
100+ private void testIpV6 (MaxMindDbReader reader , URI file )
94101 throws InvalidDatabaseException , IOException {
95102 String [] subnets = new String [] { "::1:ffff:ffff" , "::2:0:0" ,
96103 "::2:0:40" , "::2:0:50" , "::2:0:58" };
@@ -100,8 +107,7 @@ private void testIpV6(MaxMindDbReader reader, String fileName)
100107 data .put ("ip" , address );
101108
102109 assertEquals ("found expected data record for " + address + " in "
103- + fileName , data ,
104- reader .get (InetAddress .getByName (address )));
110+ + file , data , reader .get (InetAddress .getByName (address )));
105111 }
106112
107113 Map <String , String > pairs = new HashMap <String , String >();
@@ -119,8 +125,7 @@ private void testIpV6(MaxMindDbReader reader, String fileName)
119125 data .put ("ip" , pairs .get (address ));
120126
121127 assertEquals ("found expected data record for " + address + " in "
122- + fileName , data ,
123- reader .get (InetAddress .getByName (address )));
128+ + file , data , reader .get (InetAddress .getByName (address )));
124129 }
125130
126131 for (String ip : new String [] { "1.1.1.33" , "255.254.253.123" , "89fa::" }) {
0 commit comments