Merge "Verifying that the issue in b/158325668 has been fixed in the latest version of Room. Added some tests to not regress." into androidx-master-dev
diff --git a/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt b/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
index 1f1d6cb..756af79 100644
--- a/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
+++ b/room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
@@ -39,6 +39,7 @@
@RunWith(Parameterized::class)
class DaoProcessorTest(val enableVerification: Boolean) {
+
companion object {
const val DAO_PREFIX = """
package foo.bar;
@@ -349,6 +350,40 @@
.withWarningCount(0)
}
+ @Test
+ fun testDeleteQueryWithVoidReturn() {
+ singleDao(
+ """
+ @Dao interface MyDao {
+ @Query("DELETE FROM User")
+ abstract void deleteAllIds();
+ }
+ """
+ ) { dao, _ ->
+ assertThat(dao.queryMethods.size, `is`(1))
+ val method = dao.queryMethods.first()
+ assertThat(method.name, `is`("deleteAllIds"))
+ }.compilesWithoutError()
+ }
+
+ @Test
+ fun testSelectQueryWithVoidReturn() {
+ singleDao(
+ """
+ @Dao interface MyDao {
+ @Query("SELECT * FROM User")
+ abstract void getAllIds();
+ }
+ """
+ ) { dao, _ ->
+ assertThat(dao.queryMethods.size, `is`(1))
+ val method = dao.queryMethods.first()
+ assertThat(method.name, `is`("getAllIds"))
+ }.failsToCompile().withErrorContaining(
+ "Not sure how to convert a Cursor to this method's return type (void)"
+ )
+ }
+
fun singleDao(
vararg inputs: String,
classpathFiles: Set<File> = emptySet(),
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/UserDao.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/UserDao.java
index 92a810a..fcb0a14 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/UserDao.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/UserDao.java
@@ -105,6 +105,9 @@
@Delete
public abstract int deleteAll(User[] users);
+ @Delete
+ public abstract void deleteUser(User[] users);
+
@Query("delete from user")
public abstract int deleteEverything();
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/SimpleEntityReadWriteTest.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/SimpleEntityReadWriteTest.java
index 2a0d33e..d95285a 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/SimpleEntityReadWriteTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/SimpleEntityReadWriteTest.java
@@ -295,6 +295,17 @@
}
@Test
+ public void deleteUser() {
+ User[] users = TestUtil.createUsersArray(3, 5, 7, 9);
+ mUserDao.insertAll(users);
+ assertThat(mUserDao.loadByIds(3, 5, 7, 9), is(users));
+ // Using the void return value version of delete
+ mUserDao.deleteUser(new User[]{users[0], users[3],
+ TestUtil.createUser(9)});
+ assertThat(mUserDao.loadByIds(3, 5, 7, 9), is(new User[]{users[1], users[2]}));
+ }
+
+ @Test
public void deleteEverything() {
User user = TestUtil.createUser(3);
mUserDao.insert(user);