Fix column name in entitiy parsers

This CL fixes a bug in Entitiy Cursor generic reader which was
using field name instead of field's column name.

Bug: 35442740
Test: SimpleEntityReadWriteTest#renamedField
Change-Id: Id2fe4dc74e10cd298f1141b5895bb2ee00ac4b4f
diff --git a/room/compiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt b/room/compiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
index 88955e6..b2e0ecf 100644
--- a/room/compiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
+++ b/room/compiler/src/main/kotlin/com/android/support/room/writer/EntityCursorConverterWriter.kt
@@ -69,7 +69,7 @@
                         beginControlFlow("case $L:", hash).apply {
                             val fields = it.value
                             fields.forEach { field ->
-                                beginControlFlow("if ($S.equals($L))", field.name, colNameVar)
+                                beginControlFlow("if ($S.equals($L))", field.columnName, colNameVar)
                                 readField(field, cursorParam, colIndexVar, entityVar, scope)
                                 endControlFlow()
                             }
diff --git a/room/compiler/src/test/data/daoWriter/output/ComplexDao.java b/room/compiler/src/test/data/daoWriter/output/ComplexDao.java
index 63e9757..ee080c8 100644
--- a/room/compiler/src/test/data/daoWriter/output/ComplexDao.java
+++ b/room/compiler/src/test/data/daoWriter/output/ComplexDao.java
@@ -331,7 +331,7 @@
                     }
                 }
                 case 1358970165: {
-                    if ("age".equals(_columnName)) {
+                    if ("ageColumn".equals(_columnName)) {
                         _entity.age = cursor.getInt(_columnIndex);
                     }
                 }
diff --git a/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java b/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
index 673501b..7f5dec3 100644
--- a/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
+++ b/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/SimpleEntityReadWriteTest.java
@@ -209,4 +209,14 @@
         assertThat(mUserDao.findByBirthdayRange(new Date(theDate.getTime()),
                 new Date(theDate.getTime() + 1)).size(), is(0));
     }
+
+    @Test
+    public void renamedField() {
+        User user = TestUtil.createUser(3);
+        user.setCustomField("foo laaa");
+        mUserDao.insertOrReplace(user);
+        User loaded = mUserDao.load(3);
+        assertThat(loaded.getCustomField(), is("foo laaa"));
+        assertThat(loaded, is(user));
+    }
 }
diff --git a/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java b/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java
index 6a62b8a..3cd2e49 100644
--- a/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java
+++ b/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/test/TestUtil.java
@@ -45,6 +45,7 @@
         user.setName(UUID.randomUUID().toString());
         user.setLastName(UUID.randomUUID().toString());
         user.setAge((int) (10 + Math.random() * 50));
+        user.setCustomField(UUID.randomUUID().toString());
         return user;
     }
 }
diff --git a/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java b/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java
index 8a78922..44ba6a4 100644
--- a/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java
+++ b/room/integration-tests/testapp/src/androidTest/java/com/android/support/room/integration/testapp/vo/User.java
@@ -16,6 +16,7 @@
 
 package com.android.support.room.integration.testapp.vo;
 
+import com.android.support.room.ColumnInfo;
 import com.android.support.room.Entity;
 import com.android.support.room.PrimaryKey;
 import com.android.support.room.TypeConverters;
@@ -42,6 +43,9 @@
 
     private Date mBirthday;
 
+    @ColumnInfo(name = "custommm")
+    private String mCustomField;
+
     public int getId() {
         return mId;
     }
@@ -98,37 +102,34 @@
         mBirthday = birthday;
     }
 
+    public String getCustomField() {
+        return mCustomField;
+    }
+
+    public void setCustomField(String customField) {
+        mCustomField = customField;
+    }
+
     @Override
     public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
 
         User user = (User) o;
 
-        if (mId != user.mId) {
-            return false;
-        }
-        if (mAge != user.mAge) {
-            return false;
-        }
-        if (mAdmin != user.mAdmin) {
-            return false;
-        }
-        if (Float.compare(user.mWeight, mWeight) != 0) {
-            return false;
-        }
-        //noinspection SimplifiableIfStatement
-        if (mName != null ? !mName.equals(user.mName) : user.mName != null) {
-            return false;
-        }
+        if (mId != user.mId) return false;
+        if (mAge != user.mAge) return false;
+        if (mAdmin != user.mAdmin) return false;
+        if (Float.compare(user.mWeight, mWeight) != 0) return false;
+        if (mName != null ? !mName.equals(user.mName) : user.mName != null) return false;
         if (mLastName != null ? !mLastName.equals(user.mLastName) : user.mLastName != null) {
             return false;
         }
-        return mBirthday != null ? mBirthday.equals(user.mBirthday) : user.mBirthday == null;
+        if (mBirthday != null ? !mBirthday.equals(user.mBirthday) : user.mBirthday != null) {
+            return false;
+        }
+        return mCustomField != null ? mCustomField.equals(user.mCustomField)
+                : user.mCustomField == null;
     }
 
     @Override
@@ -140,6 +141,7 @@
         result = 31 * result + (mAdmin ? 1 : 0);
         result = 31 * result + (mWeight != +0.0f ? Float.floatToIntBits(mWeight) : 0);
         result = 31 * result + (mBirthday != null ? mBirthday.hashCode() : 0);
+        result = 31 * result + (mCustomField != null ? mCustomField.hashCode() : 0);
         return result;
     }
 
@@ -153,6 +155,7 @@
                 + ", mAdmin=" + mAdmin
                 + ", mWeight=" + mWeight
                 + ", mBirthday=" + mBirthday
+                + ", mCustom=" + mCustomField
                 + '}';
     }
 }