code cleanup

feature/top10
Laurent 7 years ago
parent 25d2fdac15
commit 78c9ec2c51
  1. 56
      app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/CustomFieldFilterInstrumentedUnitTest.kt
  2. 3
      app/src/main/java/net/pokeranalytics/android/model/filter/Query.kt
  3. 1
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt
  4. 16
      app/src/main/java/net/pokeranalytics/android/model/realm/Filter.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<Session>(realm, Query(QueryCondition.CustomFieldNumberQuery(cf1.id, 100.0)))
val condition = QueryCondition.CustomFieldNumberQuery(cf1Id, 100.0)
val sessions = Filter.queryOn<Session>(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)
}
}
}

@ -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()

@ -668,6 +668,7 @@ sealed class QueryCondition : FilterElementRow {
realmQuery: RealmQuery<T>,
otherQueryCondition: QueryCondition? = null
): RealmQuery<T> {
val fieldName = FilterHelper.fieldNameForQueryType<T>(this::class.java)
if (BuildConfig.DEBUG) {
fieldName ?: throw PokerAnalyticsException.QueryValueMapUnknown

@ -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 <reified T : Filterable> queryOn(realm: Realm, query: Query, sortField: String? = null): RealmResults<T> {
val realmQuery = realm.where<T>()
val rootQuery = realm.where<T>()
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

Loading…
Cancel
Save