Skip to content

Commit 8bdef04

Browse files
committed
Adds hasParcel method
1 parent a7c04e3 commit 8bdef04

3 files changed

Lines changed: 41 additions & 1 deletion

File tree

WordPress/src/androidTest/java/org/wordpress/android/editor/savedinstance/SavedInstanceDatabaseTest.kt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import android.content.Context
44
import dagger.hilt.android.testing.HiltAndroidRule
55
import dagger.hilt.android.testing.HiltAndroidTest
66
import org.junit.Assert.assertEquals
7+
import org.junit.Assert.assertFalse
8+
import org.junit.Assert.assertTrue
79
import org.junit.Before
810
import org.junit.Rule
911
import org.junit.Test
@@ -23,6 +25,7 @@ class SavedInstanceDatabaseTest {
2325
fun setUp() {
2426
hiltRule.inject()
2527
db = SavedInstanceDatabase.getDatabase(context)!!
28+
db.reset(db.writableDatabase)
2629
}
2730

2831
@Test
@@ -33,4 +36,31 @@ class SavedInstanceDatabaseTest {
3336
val result = db.getParcel(parcelId, TestParcelable.CREATOR)
3437
assertEquals(parcelData, result)
3538
}
39+
40+
@Test
41+
fun testHasParcel() {
42+
val parcelId = "testParcelId"
43+
val parcelData = TestParcelable("testData")
44+
db.addParcel(parcelId, parcelData)
45+
val result = db.hasParcel(parcelId)
46+
assertTrue(result)
47+
}
48+
49+
@Test
50+
fun testHasNoParcel() {
51+
val parcelId1 = "testParcelId1"
52+
val parcelId2 = "testParcelId2"
53+
val parcelData = TestParcelable("testData")
54+
db.addParcel(parcelId1, parcelData)
55+
val result = db.hasParcel(parcelId2)
56+
assertFalse(result)
57+
}
58+
59+
@Test
60+
fun testNullParcel() {
61+
val parcelId = "testParcelId"
62+
db.addParcel(parcelId, null)
63+
val result = db.hasParcel(parcelId)
64+
assertFalse(result)
65+
}
3666
}

libs/editor/src/main/java/org/wordpress/android/editor/savedinstance/SavedInstanceDatabase.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class SavedInstanceDatabase(context: Context?) : SQLiteOpenHelper(context, DB_NA
3535
dropTable(db)
3636
}
3737

38-
private fun reset(db: SQLiteDatabase) {
38+
fun reset(db: SQLiteDatabase) {
3939
db.beginTransaction()
4040
try {
4141
dropAllTables(db)
@@ -56,6 +56,10 @@ class SavedInstanceDatabase(context: Context?) : SQLiteOpenHelper(context, DB_NA
5656
return SavedParcelTable.getParcel(readableDatabase, parcelId, creator)
5757
}
5858

59+
fun hasParcel(parcelId: String): Boolean {
60+
return SavedParcelTable.hasParcel(readableDatabase, parcelId)
61+
}
62+
5963
companion object {
6064
private const val DB_NAME = "wpsavedinstance.db"
6165
private const val DB_VERSION = 1

libs/editor/src/main/java/org/wordpress/android/editor/savedinstance/SavedParcelTable.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,10 @@ object SavedParcelTable {
5353
SqlUtils.closeCursor(c)
5454
}
5555
}
56+
57+
fun hasParcel(readableDb: SQLiteDatabase?, parcelId: String): Boolean {
58+
val db = readableDb ?: return false
59+
val c = SqlUtils.intForQuery(db, "SELECT COUNT(*) FROM $SAVED_PARCEL_TABLE WHERE $PARCEL_ID ='$parcelId'", null)
60+
return c > 0
61+
}
5662
}

0 commit comments

Comments
 (0)