Merge branch 'master' of gitlab.com:stax-river/poker-analytics

feature/top10
Aurelien Hubert 7 years ago
commit 046bf035b8
  1. 133
      app/src/androidTest/java/net/pokeranalytics/android/FilterInstrumentedUnitTest.kt
  2. 8
      app/src/main/java/net/pokeranalytics/android/model/filter/FilterComponent.kt

@ -5,6 +5,7 @@ import io.realm.RealmResults
import net.pokeranalytics.android.model.filter.FilterManager import net.pokeranalytics.android.model.filter.FilterManager
import net.pokeranalytics.android.model.filter.SessionFilterable import net.pokeranalytics.android.model.filter.SessionFilterable
import net.pokeranalytics.android.model.realm.Bankroll import net.pokeranalytics.android.model.realm.Bankroll
import net.pokeranalytics.android.model.realm.Result
import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.model.realm.Session
import org.junit.Assert import org.junit.Assert
import org.junit.Test import org.junit.Test
@ -14,16 +15,26 @@ import java.util.*
@RunWith(AndroidJUnit4::class) @RunWith(AndroidJUnit4::class)
class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() { class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
// convenience extension
fun Session.Companion.testInstance(netResult: Double, isTournament: Boolean, startDate: Date, endDate: Int, bankroll:Bankroll? = null): Session {
val session: Session = Session.newInstance(super.mockRealm, isTournament, bankroll)
session.result?.netResult = netResult
session.startDate = startDate
val cal = Calendar.getInstance() // creates calendar
cal.time = startDate // sets calendar time/date
cal.add(Calendar.HOUR_OF_DAY, endDate) // adds one hour
session.endDate = cal.time // returns new date object, one hour in the future
return session
}
@Test @Test
fun testCashFilter() { fun testCashFilter() {
val realm = this.mockRealm val realm = this.mockRealm
realm.beginTransaction() realm.beginTransaction()
val s1 = realm.createObject(Session::class.java, "1") val s1 = Session.testInstance(100.0, false, Date(), 1)
val s2 = realm.createObject(Session::class.java, "2") val s2 = Session.testInstance(100.0, true, Date(), 1)
s1.type = Session.Type.CASH_GAME.ordinal
s2.type = Session.Type.TOURNAMENT.ordinal
realm.commitTransaction() realm.commitTransaction()
val sessions = FilterManager().filter( val sessions = FilterManager().filter(
@ -44,16 +55,14 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
val realm = this.mockRealm val realm = this.mockRealm
realm.beginTransaction() realm.beginTransaction()
val s1 = realm.createObject(Session::class.java, "1") val s1 = Session.testInstance(100.0, false, Date(), 1)
val s2 = realm.createObject(Session::class.java, "2") val s2 = Session.testInstance(100.0, true, Date(), 1)
s1.type = Session.Type.CASH_GAME.ordinal
s2.type = Session.Type.TOURNAMENT.ordinal
realm.commitTransaction() realm.commitTransaction()
val sessions = FilterManager().filter( val sessions = FilterManager().filter(
realm, realm,
Session::class.java, Session::class.java,
arrayListOf(SessionFilterable.CASH) arrayListOf(SessionFilterable.TOURNAMENT)
) as RealmResults<Session> ) as RealmResults<Session>
Assert.assertEquals(1, sessions.size) Assert.assertEquals(1, sessions.size)
@ -66,19 +75,15 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
fun testLiveFilter() { fun testLiveFilter() {
val realm = this.mockRealm val realm = this.mockRealm
realm.beginTransaction()
val s1 = realm.createObject(Session::class.java, "1") realm.beginTransaction()
val s2 = realm.createObject(Session::class.java, "2")
val b1 = realm.createObject(Bankroll::class.java, "1") val b1 = realm.createObject(Bankroll::class.java, "1")
val b2 = realm.createObject(Bankroll::class.java, "2") val b2 = realm.createObject(Bankroll::class.java, "2")
b1.live = true b1.live = true
b2.live = false b2.live = false
s1.bankroll = b1 val s1 = Session.testInstance(100.0, false, Date(), 1, b1)
s2.bankroll = b2 val s2 = Session.testInstance(100.0, true, Date(), 1, b2)
realm.commitTransaction() realm.commitTransaction()
val sessions = FilterManager().filter( val sessions = FilterManager().filter(
@ -98,18 +103,13 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
val realm = this.mockRealm val realm = this.mockRealm
realm.beginTransaction() realm.beginTransaction()
val s1 = realm.createObject(Session::class.java, "1")
val s2 = realm.createObject(Session::class.java, "2")
val b1 = realm.createObject(Bankroll::class.java, "1") val b1 = realm.createObject(Bankroll::class.java, "1")
val b2 = realm.createObject(Bankroll::class.java, "2") val b2 = realm.createObject(Bankroll::class.java, "2")
b1.live = false b1.live = false
b2.live = true b2.live = true
s1.bankroll = b1 val s1 = Session.testInstance(100.0, false, Date(), 1, b1)
s2.bankroll = b2 val s2 = Session.testInstance(100.0, true, Date(), 1, b2)
realm.commitTransaction() realm.commitTransaction()
val sessions = FilterManager().filter( val sessions = FilterManager().filter(
@ -128,26 +128,14 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
fun testStartedFomDateFilter() { fun testStartedFomDateFilter() {
val realm = this.mockRealm val realm = this.mockRealm
realm.beginTransaction()
val cal = Calendar.getInstance() // creates calendar val cal = Calendar.getInstance() // creates calendar
cal.time = Date() // sets calendar time/date cal.time = Date() // sets calendar time/date
realm.beginTransaction() val s1 = Session.testInstance(100.0, false, cal.time, 1)
val s1 = realm.createObject(Session::class.java, "1")
val s2 = realm.createObject(Session::class.java, "2")
s1.startDate = cal.time
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s1.endDate = cal.time // returns new date object, one hour in the future
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s2.startDate = cal.time
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s2.endDate = cal.time // returns new date object, one hour in the future
cal.add(Calendar.HOUR_OF_DAY, 2) // adds one hour
val s2 = Session.testInstance(100.0, true, cal.time, 1)
realm.commitTransaction() realm.commitTransaction()
var filter = SessionFilterable.STARTED_FROM_DATE var filter = SessionFilterable.STARTED_FROM_DATE
@ -161,7 +149,7 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
Assert.assertEquals(1, sessions.size) Assert.assertEquals(1, sessions.size)
sessions[0]?.run { sessions[0]?.run {
Assert.assertEquals("2", this.id) Assert.assertEquals(s2.id, this.id)
} }
} }
@ -169,25 +157,14 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
fun testStartedToDateFilter() { fun testStartedToDateFilter() {
val realm = this.mockRealm val realm = this.mockRealm
realm.beginTransaction()
val cal = Calendar.getInstance() // creates calendar val cal = Calendar.getInstance() // creates calendar
cal.time = Date() // sets calendar time/date cal.time = Date() // sets calendar time/date
realm.beginTransaction() val s1 = Session.testInstance(100.0, false, cal.time, 1)
val s1 = realm.createObject(Session::class.java, "1")
val s2 = realm.createObject(Session::class.java, "2")
s1.startDate = cal.time
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s1.endDate = cal.time // returns new date object, one hour in the future
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s2.startDate = cal.time
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s2.endDate = cal.time // returns new date object, one hour in the future
cal.add(Calendar.HOUR_OF_DAY, 2) // adds one hour
val s2 = Session.testInstance(100.0, true, cal.time, 1)
realm.commitTransaction() realm.commitTransaction()
@ -202,7 +179,7 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
Assert.assertEquals(1, sessions.size) Assert.assertEquals(1, sessions.size)
sessions[0]?.run { sessions[0]?.run {
Assert.assertEquals("1", this.id) Assert.assertEquals(s1.id, this.id)
} }
} }
@ -210,25 +187,14 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
fun testEndedFomDateFilter() { fun testEndedFomDateFilter() {
val realm = this.mockRealm val realm = this.mockRealm
realm.beginTransaction()
val cal = Calendar.getInstance() // creates calendar val cal = Calendar.getInstance() // creates calendar
cal.time = Date() // sets calendar time/date cal.time = Date() // sets calendar time/date
realm.beginTransaction() val s1 = Session.testInstance(100.0, false, cal.time, 1)
val s1 = realm.createObject(Session::class.java, "1")
val s2 = realm.createObject(Session::class.java, "2")
s1.startDate = cal.time
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s1.endDate = cal.time // returns new date object, one hour in the future
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s2.startDate = cal.time
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s2.endDate = cal.time // returns new date object, one hour in the future
cal.add(Calendar.HOUR_OF_DAY, 2) // adds one hour
val s2 = Session.testInstance(100.0, true, cal.time, 1)
realm.commitTransaction() realm.commitTransaction()
@ -243,7 +209,7 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
Assert.assertEquals(1, sessions.size) Assert.assertEquals(1, sessions.size)
sessions[0]?.run { sessions[0]?.run {
Assert.assertEquals("2", this.id) Assert.assertEquals(s2.id, this.id)
} }
} }
@ -251,28 +217,17 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
fun testEndedToDateFilter() { fun testEndedToDateFilter() {
val realm = this.mockRealm val realm = this.mockRealm
realm.beginTransaction()
val cal = Calendar.getInstance() // creates calendar val cal = Calendar.getInstance() // creates calendar
cal.time = Date() // sets calendar time/date cal.time = Date() // sets calendar time/date
realm.beginTransaction() val s1 = Session.testInstance(100.0, false, cal.time, 1)
val s1 = realm.createObject(Session::class.java, "1")
val s2 = realm.createObject(Session::class.java, "2")
s1.startDate = cal.time
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s1.endDate = cal.time // returns new date object, one hour in the future
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s2.startDate = cal.time
cal.add(Calendar.HOUR_OF_DAY, 1) // adds one hour
s2.endDate = cal.time // returns new date object, one hour in the future
cal.add(Calendar.HOUR_OF_DAY, 2) // adds one hour
val s2 = Session.testInstance(100.0, true, cal.time, 1)
realm.commitTransaction() realm.commitTransaction()
var filter = SessionFilterable.ENDED_TO_DATE var filter = SessionFilterable.ENDED_TO_DATE
filter.valueMap = mapOf("date" to s1.endDate) filter.valueMap = mapOf("date" to s1.endDate)
@ -284,7 +239,7 @@ class FilterInstrumentedUnitTest : RealmInstrumentedUnitTest() {
Assert.assertEquals(1, sessions.size) Assert.assertEquals(1, sessions.size)
sessions[0]?.run { sessions[0]?.run {
Assert.assertEquals("1", this.id) Assert.assertEquals(s1.id, this.id)
} }
} }
} }

@ -63,19 +63,19 @@ enum class SessionFilterable(var fieldName:String? = null) : Filterable {
} }
STARTED_FROM_DATE -> { STARTED_FROM_DATE -> {
val date : Date by valueMap val date : Date by valueMap
this.filter(realmQuery.greaterThanOrEqualTo(Field.START_DATE.fieldName, date)) realmQuery.greaterThanOrEqualTo(Field.START_DATE.fieldName, date)
} }
STARTED_TO_DATE -> { STARTED_TO_DATE -> {
val date : Date by valueMap val date : Date by valueMap
this.filter(realmQuery.lessThanOrEqualTo(Field.START_DATE.fieldName, date)) realmQuery.lessThanOrEqualTo(Field.START_DATE.fieldName, date)
} }
ENDED_FROM_DATE -> { ENDED_FROM_DATE -> {
val date : Date by valueMap val date : Date by valueMap
this.filter(realmQuery.greaterThanOrEqualTo(Field.END_DATE.fieldName, date)) realmQuery.greaterThanOrEqualTo(Field.END_DATE.fieldName, date)
} }
ENDED_TO_DATE -> { ENDED_TO_DATE -> {
val date : Date by valueMap val date : Date by valueMap
this.filter(realmQuery.lessThanOrEqualTo(Field.END_DATE.fieldName, date)) realmQuery.lessThanOrEqualTo(Field.END_DATE.fieldName, date)
} }
BLINDS -> { BLINDS -> {

Loading…
Cancel
Save