|
24 | 24 | import androidx.test.core.app.ApplicationProvider; |
25 | 25 | import androidx.test.ext.junit.runners.AndroidJUnit4; |
26 | 26 |
|
| 27 | +import net.zetetic.database.sqlcipher.SQLiteDatabase; |
27 | 28 | import net.zetetic.database.sqlcipher.SupportOpenHelperFactory; |
28 | 29 |
|
29 | 30 | import org.junit.After; |
30 | 31 | import org.junit.Before; |
| 32 | +import org.junit.Ignore; |
31 | 33 | import org.junit.Test; |
32 | 34 | import org.junit.runner.RunWith; |
33 | 35 |
|
| 36 | +import java.io.File; |
34 | 37 | import java.nio.charset.StandardCharsets; |
35 | 38 | import java.util.List; |
| 39 | +import java.util.UUID; |
36 | 40 |
|
37 | 41 | @RunWith(AndroidJUnit4.class) |
38 | 42 | public class SupportAPIRoomTest { |
39 | 43 |
|
40 | 44 | private AppDatabase db; |
41 | 45 | private UserDao userDao; |
| 46 | + private File databaseFile; |
42 | 47 |
|
43 | 48 | @Before |
44 | 49 | public void before(){ |
45 | 50 | Context context = ApplicationProvider.getApplicationContext(); |
46 | 51 | System.loadLibrary("sqlcipher"); |
| 52 | + databaseFile = context.getDatabasePath("users.db"); |
47 | 53 | SupportOpenHelperFactory factory = new SupportOpenHelperFactory("user".getBytes(StandardCharsets.UTF_8)); |
48 | | - db = Room.databaseBuilder(context, AppDatabase.class, "users.db") |
| 54 | + db = Room.databaseBuilder(context, AppDatabase.class, databaseFile.getAbsolutePath()) |
49 | 55 | .openHelperFactory(factory).build(); |
50 | 56 | db.clearAllTables(); |
51 | 57 | userDao = db.userDao(); |
@@ -92,10 +98,22 @@ public void shouldQueryDataByParametersViaDao(){ |
92 | 98 | assertThat(foundUser.lastName, is(user.lastName)); |
93 | 99 | } |
94 | 100 |
|
| 101 | + @Test |
| 102 | + public void shouldSupportChangingPasswordWithRoom(){ |
| 103 | + userDao.insert(new User("foo", "bar")); |
| 104 | + SQLiteDatabase database = (SQLiteDatabase)db.getOpenHelper().getWritableDatabase(); |
| 105 | + database.changePassword(UUID.randomUUID().toString()); |
| 106 | + List<User> users = userDao.getAll(); |
| 107 | + assertThat(users.size(), is(1)); |
| 108 | + } |
| 109 | + |
95 | 110 | @After |
96 | 111 | public void after(){ |
97 | 112 | if(db != null){ |
98 | 113 | db.close(); |
| 114 | + if(databaseFile != null){ |
| 115 | + databaseFile.delete(); |
| 116 | + } |
99 | 117 | } |
100 | 118 | } |
101 | 119 |
|
|
0 commit comments