1616import java .util .HashMap ;
1717import java .util .Map ;
1818
19+ import org .junit .After ;
20+ import org .junit .Before ;
1921import org .junit .Rule ;
2022import org .junit .Test ;
2123import org .junit .rules .ExpectedException ;
2729public class ReaderTest {
2830 private final ObjectMapper om = new ObjectMapper ();
2931
32+ private Reader testReader ;
33+
34+ @ Before
35+ public void setupReader () {
36+ testReader = null ;
37+ }
38+
39+ @ After
40+ public void teardownReader () throws IOException {
41+ if (testReader != null ) {
42+ testReader .close ();
43+ }
44+ }
45+
3046 @ Test
3147 public void test () throws IOException , URISyntaxException {
3248 for (long recordSize : new long [] { 24 , 28 , 32 }) {
@@ -56,8 +72,8 @@ public void testNoIpV4SearchTreeFile() throws IOException,
5672 "/maxmind-db/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb" )
5773 .toURI ();
5874
59- Reader reader = new Reader (new File (file ));
60- this .testNoIpV4SearchTree (reader );
75+ testReader = new Reader (new File (file ));
76+ this .testNoIpV4SearchTree (testReader );
6177 }
6278
6379 @ Test
@@ -66,8 +82,8 @@ public void testNoIpV4SearchTreeURL() throws IOException,
6682 InputStream stream = ReaderTest .class .getResource (
6783 "/maxmind-db/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb" )
6884 .openStream ();
69- Reader reader = new Reader (stream );
70- this .testNoIpV4SearchTree (reader );
85+ testReader = new Reader (stream );
86+ this .testNoIpV4SearchTree (testReader );
7187 }
7288
7389 private void testNoIpV4SearchTree (Reader reader ) throws IOException ,
@@ -84,8 +100,8 @@ public void testDecodingTypesFile() throws URISyntaxException, IOException {
84100 URI file = ReaderTest .class .getResource (
85101 "/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb" ).toURI ();
86102
87- Reader reader = new Reader (new File (file ));
88- this .testDecodingTypes (reader );
103+ testReader = new Reader (new File (file ));
104+ this .testDecodingTypes (testReader );
89105 }
90106
91107 @ Test
@@ -94,8 +110,8 @@ public void testDecodingTypesURL() throws URISyntaxException, IOException {
94110 "/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb" )
95111 .openStream ();
96112
97- Reader reader = new Reader (stream );
98- this .testDecodingTypes (reader );
113+ testReader = new Reader (stream );
114+ this .testDecodingTypes (testReader );
99115 }
100116
101117 private void testDecodingTypes (Reader reader ) throws URISyntaxException ,
@@ -147,8 +163,8 @@ public void testZerosFile() throws URISyntaxException, IOException {
147163 URI file = ReaderTest .class .getResource (
148164 "/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb" ).toURI ();
149165
150- Reader reader = new Reader (new File (file ));
151- this .testZeros (reader );
166+ testReader = new Reader (new File (file ));
167+ this .testZeros (testReader );
152168 }
153169
154170 @ Test
@@ -157,8 +173,8 @@ public void testZerosURL() throws URISyntaxException, IOException {
157173 "/maxmind-db/test-data/MaxMind-DB-test-decoder.mmdb" )
158174 .openStream ();
159175
160- Reader reader = new Reader (stream );
161- this .testZeros (reader );
176+ testReader = new Reader (stream );
177+ this .testZeros (testReader );
162178 }
163179
164180 private void testZeros (Reader reader ) throws URISyntaxException ,
@@ -196,8 +212,8 @@ public void testBrokenDatabaseFile() throws URISyntaxException, IOException {
196212 "/maxmind-db/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb" )
197213 .toURI ();
198214
199- Reader reader = new Reader (new File (file ));
200- this .testBrokenDatabase (reader );
215+ testReader = new Reader (new File (file ));
216+ this .testBrokenDatabase (testReader );
201217 }
202218
203219 @ Test
@@ -207,8 +223,8 @@ public void testBrokenDatabaseURL() throws URISyntaxException, IOException {
207223 "/maxmind-db/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb" )
208224 .openStream ();
209225
210- Reader reader = new Reader (stream );
211- this .testBrokenDatabase (reader );
226+ testReader = new Reader (stream );
227+ this .testBrokenDatabase (testReader );
212228 }
213229
214230 private void testBrokenDatabase (Reader reader ) throws URISyntaxException ,
@@ -229,8 +245,8 @@ public void testBrokenSearchTreePointerFile() throws URISyntaxException,
229245 "/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb" )
230246 .toURI ();
231247
232- Reader reader = new Reader (new File (file ));
233- this .testBrokenSearchTreePointer (reader );
248+ testReader = new Reader (new File (file ));
249+ this .testBrokenSearchTreePointer (testReader );
234250 }
235251
236252 @ Test
@@ -241,8 +257,8 @@ public void testBrokenSearchTreePointerURL() throws URISyntaxException,
241257 "/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb" )
242258 .openStream ();
243259
244- Reader reader = new Reader (stream );
245- this .testBrokenSearchTreePointer (reader );
260+ testReader = new Reader (stream );
261+ this .testBrokenSearchTreePointer (testReader );
246262 }
247263
248264 private void testBrokenSearchTreePointer (Reader reader )
@@ -263,8 +279,8 @@ public void testBrokenDataPointerFile() throws IOException,
263279 "/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb" )
264280 .toURI ();
265281
266- Reader reader = new Reader (new File (file ));
267- this .testBrokenDataPointer (reader );
282+ testReader = new Reader (new File (file ));
283+ this .testBrokenDataPointer (testReader );
268284 }
269285
270286 @ Test
@@ -275,8 +291,8 @@ public void testBrokenDataPointerURL() throws IOException,
275291 "/maxmind-db/test-data/MaxMind-DB-test-broken-pointers-24.mmdb" )
276292 .openStream ();
277293
278- Reader reader = new Reader (stream );
279- this .testBrokenDataPointer (reader );
294+ testReader = new Reader (stream );
295+ this .testBrokenDataPointer (testReader );
280296 }
281297
282298 private void testBrokenDataPointer (Reader reader ) throws IOException ,
0 commit comments