Cleanup: tests also should close cursors.

This commit is contained in:
Dennis Guse
2021-12-28 23:17:52 +01:00
parent bb290e2ee4
commit aff4bce3fe
@@ -192,6 +192,19 @@ public class CustomContentProviderUtilsTest {
assertEquals(name, track.getName()); assertEquals(name, track.getName());
} }
private void assertCount(int trackCount, int trackPointCount, int markerCount) {
ContentResolver contentResolver = context.getContentResolver();
try (Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID)) {
assertEquals(trackCount, tracksCursor.getCount());
}
try (Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID)) {
assertEquals(trackPointCount, tracksPointsCursor.getCount());
}
try (Cursor markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID)) {
assertEquals(markerCount, markerCursor.getCount());
}
}
/** /**
* Tests the method {@link ContentProviderUtils#deleteAllTracks(Context)} * Tests the method {@link ContentProviderUtils#deleteAllTracks(Context)}
*/ */
@@ -204,24 +217,13 @@ public class CustomContentProviderUtilsTest {
Marker marker = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); Marker marker = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId));
contentProviderUtils.insertMarker(marker); contentProviderUtils.insertMarker(marker);
ContentResolver contentResolver = context.getContentResolver(); assertCount(1, 10, 1);
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID);
assertEquals(1, tracksCursor.getCount());
Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID);
assertEquals(10, tracksPointsCursor.getCount());
Cursor markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID);
assertEquals(1, markerCursor.getCount());
// Delete all.
contentProviderUtils.deleteAllTracks(context);
// Check whether all have been deleted.
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID);
assertEquals(0, tracksCursor.getCount());
tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID);
assertEquals(0, tracksPointsCursor.getCount());
markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID);
assertEquals(0, markerCursor.getCount());
//TODO Close all cursors // when
contentProviderUtils.deleteAllTracks(context);
// then
assertCount(0, 0, 0);
} }
/** /**
@@ -237,28 +239,18 @@ public class CustomContentProviderUtilsTest {
Marker marker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint); Marker marker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint);
contentProviderUtils.insertMarker(marker); contentProviderUtils.insertMarker(marker);
ContentResolver contentResolver = context.getContentResolver(); assertCount(1, 10, 1);
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID);
assertEquals(1, tracksCursor.getCount());
Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID);
assertEquals(10, tracksPointsCursor.getCount());
Cursor markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID);
assertEquals(1, markerCursor.getCount());
// Check marker has photo and it's in the external storage.
assertTrue(marker.hasPhoto()); assertTrue(marker.hasPhoto());
File dir = FileUtils.getPhotoDir(context, trackId); File dir = FileUtils.getPhotoDir(context, trackId);
assertTrue(dir.isDirectory()); assertTrue(dir.isDirectory());
assertEquals(1, dir.list().length); assertEquals(1, dir.list().length);
assertTrue(dir.exists()); assertTrue(dir.exists());
// Delete all.
// when
contentProviderUtils.deleteAllTracks(context); contentProviderUtils.deleteAllTracks(context);
// Check whether all have been deleted.
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID); // then
assertEquals(0, tracksCursor.getCount()); assertCount(0, 0, 0);
tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID);
assertEquals(0, tracksPointsCursor.getCount());
markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID);
assertEquals(0, markerCursor.getCount());
assertFalse(dir.exists()); assertFalse(dir.exists());
} }
@@ -281,22 +273,13 @@ public class CustomContentProviderUtilsTest {
Marker marker = new Marker(trackId1, contentProviderUtils.getLastValidTrackPoint(trackId2)); Marker marker = new Marker(trackId1, contentProviderUtils.getLastValidTrackPoint(trackId2));
contentProviderUtils.insertMarker(marker); contentProviderUtils.insertMarker(marker);
ContentResolver contentResolver = context.getContentResolver(); assertCount(3, 30, 1);
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID);
assertEquals(3, tracksCursor.getCount()); // when
Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID);
assertEquals(30, tracksPointsCursor.getCount());
Cursor markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID);
assertEquals(1, markerCursor.getCount());
// Delete one track.
contentProviderUtils.deleteTrack(context, trackId1); contentProviderUtils.deleteTrack(context, trackId1);
// Check whether all data of a track has been deleted.
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID); // then
assertEquals(2, tracksCursor.getCount()); assertCount(2, 20, 0);
tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID);
assertEquals(20, tracksPointsCursor.getCount());
markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID);
assertEquals(0, markerCursor.getCount());
} }
/** /**
@@ -326,13 +309,7 @@ public class CustomContentProviderUtilsTest {
File dir2 = FileUtils.getPhotoDir(context, trackId2); File dir2 = FileUtils.getPhotoDir(context, trackId2);
// Check. // Check.
ContentResolver contentResolver = context.getContentResolver(); assertCount(3, 30, 2);
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID);
assertEquals(3, tracksCursor.getCount());
Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID);
assertEquals(30, tracksPointsCursor.getCount());
Cursor markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID);
assertEquals(2, markerCursor.getCount());
assertTrue(marker1.hasPhoto()); assertTrue(marker1.hasPhoto());
assertTrue(dir1.isDirectory()); assertTrue(dir1.isDirectory());
assertEquals(1, dir1.list().length); assertEquals(1, dir1.list().length);
@@ -340,15 +317,12 @@ public class CustomContentProviderUtilsTest {
assertTrue(dir2.isDirectory()); assertTrue(dir2.isDirectory());
assertEquals(1, dir2.list().length); assertEquals(1, dir2.list().length);
assertTrue(dir2.exists()); assertTrue(dir2.exists());
// Delete one track.
// when
contentProviderUtils.deleteTrack(context, trackId1); contentProviderUtils.deleteTrack(context, trackId1);
// Check whether all data of a track has been deleted.
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID); // then
assertEquals(2, tracksCursor.getCount()); assertCount(2, 20, 1);
tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI_BY_ID, null, null, null, TrackPointsColumns._ID);
assertEquals(20, tracksPointsCursor.getCount());
markerCursor = contentResolver.query(MarkerColumns.CONTENT_URI, null, null, null, MarkerColumns._ID);
assertEquals(1, markerCursor.getCount());
assertFalse(dir1.exists()); assertFalse(dir1.exists());
assertTrue(dir2.exists()); assertTrue(dir2.exists());
} }