From 78c9ec2c516fde73cc1152c231986380a2c91440 Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 5 Jun 2019 18:35:11 +0200 Subject: [PATCH] code cleanup --- .../CustomFieldFilterInstrumentedUnitTest.kt | 56 ++++++++++--------- .../android/model/filter/Query.kt | 3 +- .../android/model/filter/QueryCondition.kt | 1 + .../android/model/realm/Filter.kt | 16 ++++-- 4 files changed, 43 insertions(+), 33 deletions(-) diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt index f3880227..f3acfcbc 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt @@ -51,35 +51,41 @@ class CustomFieldFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { @Test fun testCustomFieldAmountFilter() { - val realm = this.mockRealm - realm.beginTransaction() - - val cf1 = CustomField() - cf1.id = "1234" - cf1.type = CustomField.Type.AMOUNT.ordinal - - - val cfe1 = CustomFieldEntry() - cfe1.id = "999" - cf1.entries.add(cfe1) - cfe1.numericValue = 30.0 - - val cfe2 = CustomFieldEntry() - cfe2.id = "888" - cf1.entries.add(cfe2) - cfe2.numericValue = 100.0 + val cf1Id = "1234" + var s2Id = "" - val s1 = Session.testInstance(100.0, false, Date(), 1) - s1.customFieldEntries.add(cfe1) - val s2 = Session.testInstance(100.0, true, Date(), 1) - s2.customFieldEntries.add(cfe2) - realm.commitTransaction() + val realm = this.mockRealm + realm.executeTransaction { + + val cf1 = CustomField() + cf1.id = cf1Id + cf1.type = CustomField.Type.AMOUNT.ordinal + + val cfe1 = CustomFieldEntry() + cfe1.id = "999" + cf1.entries.add(cfe1) + cfe1.numericValue = 30.0 + + val cfe2 = CustomFieldEntry() + cfe2.id = "888" + cf1.entries.add(cfe2) + cfe2.numericValue = 100.0 + + val s1 = Session.testInstance(100.0, false, Date(), 1) + s1.customFieldEntries.add(cfe1) + val s2 = Session.testInstance(100.0, true, Date(), 1) + s2.customFieldEntries.add(cfe2) + s2Id = s2.id + } - val sessions = Filter.queryOn(realm, Query(QueryCondition.CustomFieldNumberQuery(cf1.id, 100.0))) + val condition = QueryCondition.CustomFieldNumberQuery(cf1Id, 100.0) + val sessions = Filter.queryOn(realm, Query(condition)) Assert.assertEquals(1, sessions.size) - sessions[0]?.run { - Assert.assertEquals(s2.id, (this).id) + sessions.first()?.run { + Assert.assertEquals(s2Id, this.id) } + } + } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt b/app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt index ef2f0b2b..e5caffa0 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt @@ -2,7 +2,6 @@ package net.pokeranalytics.android.model.filter import android.content.Context import io.realm.RealmQuery -import io.realm.kotlin.where import net.pokeranalytics.android.R import net.pokeranalytics.android.util.NULL_TEXT @@ -77,7 +76,7 @@ class Query { } } - //println("<<<<<< ${realmQuery}") + println("<<<<<< ${realmQuery.description}") val queryLast = this.conditions.filter { it is QueryCondition.Last }.firstOrNull() diff --git a/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt b/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt index 9a13f72a..2907fd06 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt @@ -668,6 +668,7 @@ sealed class QueryCondition : FilterElementRow { realmQuery: RealmQuery, otherQueryCondition: QueryCondition? = null ): RealmQuery { + val fieldName = FilterHelper.fieldNameForQueryType(this::class.java) if (BuildConfig.DEBUG) { fieldName ?: throw PokerAnalyticsException.QueryValueMapUnknown diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt index 3f1e481b..3b1c1c16 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt @@ -1,7 +1,10 @@ package net.pokeranalytics.android.model.realm import android.content.Context -import io.realm.* +import io.realm.Realm +import io.realm.RealmList +import io.realm.RealmObject +import io.realm.RealmResults import io.realm.annotations.PrimaryKey import io.realm.kotlin.where import net.pokeranalytics.android.R @@ -41,13 +44,14 @@ open class Filter : RealmObject(), RowRepresentable, Identifiable, Deletable, Co } inline fun queryOn(realm: Realm, query: Query, sortField: String? = null): RealmResults { - val realmQuery = realm.where() + val rootQuery = realm.where() + var realmQuery = query.queryWith(rootQuery) sortField?.let { - return query.queryWith(realmQuery).sort(it).findAll() - } ?: run { - return query.queryWith(realmQuery).findAll() + realmQuery = realmQuery.sort(it) } - } + val desc = realmQuery.description + return realmQuery.findAll() + } } @PrimaryKey