parent
dd20a75060
commit
0adf9c7449
@ -0,0 +1,27 @@ |
|||||||
|
package net.pokeranalytics.android.filter |
||||||
|
|
||||||
|
import net.pokeranalytics.android.RealmInstrumentedUnitTest |
||||||
|
import net.pokeranalytics.android.model.realm.Bankroll |
||||||
|
import net.pokeranalytics.android.model.realm.Session |
||||||
|
import java.util.* |
||||||
|
|
||||||
|
open class BaseFilterInstrumentedUnitTest : RealmInstrumentedUnitTest() { |
||||||
|
|
||||||
|
// convenience extension |
||||||
|
fun Session.Companion.testInstance( |
||||||
|
netResult: Double, |
||||||
|
isTournament: Boolean, |
||||||
|
startDate: Date, |
||||||
|
endDate: Int = 1, |
||||||
|
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 |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,268 @@ |
|||||||
|
package net.pokeranalytics.android.filter |
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4 |
||||||
|
import io.realm.RealmResults |
||||||
|
import net.pokeranalytics.android.model.filter.DateFilterable |
||||||
|
import net.pokeranalytics.android.model.filter.FilterManager |
||||||
|
import net.pokeranalytics.android.model.realm.Session |
||||||
|
import org.junit.Assert |
||||||
|
import org.junit.Test |
||||||
|
import org.junit.runner.RunWith |
||||||
|
import java.util.* |
||||||
|
|
||||||
|
@RunWith(AndroidJUnit4::class) |
||||||
|
class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { |
||||||
|
|
||||||
|
@Test |
||||||
|
fun testDayOfWeekFilter() { |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
realm.beginTransaction() |
||||||
|
|
||||||
|
val cal = Calendar.getInstance() // creates calendar |
||||||
|
cal.time = Date() // sets calendar time/date |
||||||
|
val s1 = Session.testInstance(100.0, false, cal.time) |
||||||
|
cal.add(Calendar.DAY_OF_MONTH, 1) // adds one hour |
||||||
|
val s2 = Session.testInstance(100.0, true, cal.time) |
||||||
|
realm.commitTransaction() |
||||||
|
|
||||||
|
var filter = DateFilterable.DAY_OF_WEEK |
||||||
|
cal.time = s1.startDate |
||||||
|
filter.valueMap = mapOf("dayOfWeek" to cal.get(Calendar.DAY_OF_WEEK)) |
||||||
|
|
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(filter) |
||||||
|
) as RealmResults<Session> |
||||||
|
|
||||||
|
Assert.assertEquals(1, sessions.size) |
||||||
|
sessions[0]?.run { |
||||||
|
Assert.assertEquals(s1.id, this.id) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
fun testMonthFilter() { |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
realm.beginTransaction() |
||||||
|
val cal = Calendar.getInstance() |
||||||
|
cal.time = Date() |
||||||
|
val s1 = Session.testInstance(100.0, false, cal.time) |
||||||
|
cal.add(Calendar.MONTH, 1) |
||||||
|
val s2 = Session.testInstance(100.0, true, cal.time) |
||||||
|
realm.commitTransaction() |
||||||
|
|
||||||
|
var filter = DateFilterable.MONTH |
||||||
|
cal.time = s1.startDate |
||||||
|
filter.valueMap = mapOf("month" to cal.get(Calendar.MONTH)) |
||||||
|
|
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(filter) |
||||||
|
) as RealmResults<Session> |
||||||
|
|
||||||
|
Assert.assertEquals(1, sessions.size) |
||||||
|
sessions[0]?.run { |
||||||
|
Assert.assertEquals(s1.id, this.id) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
fun testYearFilter() { |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
realm.beginTransaction() |
||||||
|
val cal = Calendar.getInstance() |
||||||
|
cal.time = Date() |
||||||
|
val s1 = Session.testInstance(100.0, false, cal.time) |
||||||
|
cal.add(Calendar.YEAR, 1) |
||||||
|
val s2 = Session.testInstance(100.0, true, cal.time) |
||||||
|
realm.commitTransaction() |
||||||
|
|
||||||
|
var filter = DateFilterable.YEAR |
||||||
|
cal.time = s1.startDate |
||||||
|
filter.valueMap = mapOf("year" to cal.get(Calendar.YEAR)) |
||||||
|
|
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(filter) |
||||||
|
) as RealmResults<Session> |
||||||
|
|
||||||
|
Assert.assertEquals(1, sessions.size) |
||||||
|
sessions[0]?.run { |
||||||
|
Assert.assertEquals(s1.id, this.id) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Test |
||||||
|
fun testWeekEndFilter() { |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
realm.beginTransaction() |
||||||
|
val cal = Calendar.getInstance() |
||||||
|
cal.time = Date() |
||||||
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY) |
||||||
|
val s1 = Session.testInstance(100.0, false, cal.time) |
||||||
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY) |
||||||
|
val s2 = Session.testInstance(100.0, true, cal.time) |
||||||
|
realm.commitTransaction() |
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(DateFilterable.WEEK_END) |
||||||
|
) as RealmResults<Session> |
||||||
|
|
||||||
|
Assert.assertEquals(1, sessions.size) |
||||||
|
sessions[0]?.run { |
||||||
|
Assert.assertEquals(s1.id, this.id) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
fun testWeekDayFilter() { |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
realm.beginTransaction() |
||||||
|
val cal = Calendar.getInstance() |
||||||
|
cal.time = Date() |
||||||
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY) |
||||||
|
val s1 = Session.testInstance(100.0, false, cal.time) |
||||||
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY) |
||||||
|
val s2 = Session.testInstance(100.0, true, cal.time) |
||||||
|
realm.commitTransaction() |
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(DateFilterable.WEEK_DAY) |
||||||
|
) as RealmResults<Session> |
||||||
|
|
||||||
|
Assert.assertEquals(1, sessions.size) |
||||||
|
sessions[0]?.run { |
||||||
|
Assert.assertEquals(s1.id, this.id) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
fun testStartedFomDateFilter() { |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
realm.beginTransaction() |
||||||
|
|
||||||
|
val cal = Calendar.getInstance() // creates calendar |
||||||
|
cal.time = Date() // sets calendar time/date |
||||||
|
val s1 = Session.testInstance(100.0, false, cal.time, 1) |
||||||
|
|
||||||
|
cal.add(Calendar.HOUR_OF_DAY, 2) // adds one hour |
||||||
|
val s2 = Session.testInstance(100.0, true, cal.time, 1) |
||||||
|
realm.commitTransaction() |
||||||
|
|
||||||
|
var filter = DateFilterable.STARTED_FROM_DATE |
||||||
|
filter.valueMap = mapOf("date" to s2.startDate) |
||||||
|
|
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(filter) |
||||||
|
) as RealmResults<Session> |
||||||
|
|
||||||
|
Assert.assertEquals(1, sessions.size) |
||||||
|
sessions[0]?.run { |
||||||
|
Assert.assertEquals(s2.id, this.id) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
fun testStartedToDateFilter() { |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
realm.beginTransaction() |
||||||
|
|
||||||
|
val cal = Calendar.getInstance() // creates calendar |
||||||
|
cal.time = Date() // sets calendar time/date |
||||||
|
val s1 = Session.testInstance(100.0, false, cal.time, 1) |
||||||
|
|
||||||
|
cal.add(Calendar.HOUR_OF_DAY, 2) // adds one hour |
||||||
|
val s2 = Session.testInstance(100.0, true, cal.time, 1) |
||||||
|
|
||||||
|
realm.commitTransaction() |
||||||
|
|
||||||
|
var filter = DateFilterable.STARTED_TO_DATE |
||||||
|
filter.valueMap = mapOf("date" to s1.startDate) |
||||||
|
|
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(filter) |
||||||
|
) as RealmResults<Session> |
||||||
|
|
||||||
|
Assert.assertEquals(1, sessions.size) |
||||||
|
sessions[0]?.run { |
||||||
|
Assert.assertEquals(s1.id, this.id) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
fun testEndedFomDateFilter() { |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
realm.beginTransaction() |
||||||
|
|
||||||
|
val cal = Calendar.getInstance() // creates calendar |
||||||
|
cal.time = Date() // sets calendar time/date |
||||||
|
val s1 = Session.testInstance(100.0, false, cal.time, 1) |
||||||
|
|
||||||
|
cal.add(Calendar.HOUR_OF_DAY, 2) // adds one hour |
||||||
|
val s2 = Session.testInstance(100.0, true, cal.time, 1) |
||||||
|
|
||||||
|
realm.commitTransaction() |
||||||
|
|
||||||
|
var filter = DateFilterable.ENDED_FROM_DATE |
||||||
|
filter.valueMap = mapOf("date" to s2.endDate) |
||||||
|
|
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(filter) |
||||||
|
) as RealmResults<Session> |
||||||
|
|
||||||
|
Assert.assertEquals(1, sessions.size) |
||||||
|
sessions[0]?.run { |
||||||
|
Assert.assertEquals(s2.id, this.id) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
fun testEndedToDateFilter() { |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
realm.beginTransaction() |
||||||
|
|
||||||
|
val cal = Calendar.getInstance() // creates calendar |
||||||
|
cal.time = Date() // sets calendar time/date |
||||||
|
val s1 = Session.testInstance(100.0, false, cal.time, 1) |
||||||
|
|
||||||
|
cal.add(Calendar.HOUR_OF_DAY, 2) // adds one hour |
||||||
|
val s2 = Session.testInstance(100.0, true, cal.time, 1) |
||||||
|
realm.commitTransaction() |
||||||
|
|
||||||
|
|
||||||
|
var filter = DateFilterable.ENDED_TO_DATE |
||||||
|
filter.valueMap = mapOf("date" to s1.endDate) |
||||||
|
|
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(filter) |
||||||
|
) as RealmResults<Session> |
||||||
|
|
||||||
|
Assert.assertEquals(1, sessions.size) |
||||||
|
sessions[0]?.run { |
||||||
|
Assert.assertEquals(s1.id, this.id) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,56 @@ |
|||||||
|
package net.pokeranalytics.android.filter |
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4 |
||||||
|
import io.realm.RealmResults |
||||||
|
import net.pokeranalytics.android.exceptions.FilterValueMapException |
||||||
|
import net.pokeranalytics.android.model.filter.DateFilterable |
||||||
|
import net.pokeranalytics.android.model.filter.FilterManager |
||||||
|
import net.pokeranalytics.android.model.filter.SessionFilterable |
||||||
|
import net.pokeranalytics.android.model.realm.Session |
||||||
|
import org.junit.Test |
||||||
|
import org.junit.runner.RunWith |
||||||
|
import java.util.* |
||||||
|
|
||||||
|
@RunWith(AndroidJUnit4::class) |
||||||
|
class ExceptionFilterInstrumentedTest: BaseFilterInstrumentedUnitTest() { |
||||||
|
|
||||||
|
@Test(expected = FilterValueMapException::class) |
||||||
|
fun testFilterException() { |
||||||
|
val realm = this.mockRealm |
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(SessionFilterable.BLINDS) |
||||||
|
) as RealmResults<Session> |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = FilterValueMapException::class) |
||||||
|
fun testValueKeyFilterException() { |
||||||
|
var filter = DateFilterable.STARTED_FROM_DATE |
||||||
|
filter.valueMap = mapOf("bob" to Date()) |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(filter) |
||||||
|
) as RealmResults<Session> |
||||||
|
} |
||||||
|
|
||||||
|
@Test(expected = FilterValueMapException::class) |
||||||
|
fun testSubValueKeyFilterException() { |
||||||
|
var filter = SessionFilterable.BLINDS |
||||||
|
filter.valueMap = mapOf("map" to arrayOf(mapOf( |
||||||
|
"bob" to 0.5, |
||||||
|
"bb" to 1.0, |
||||||
|
"code" to null |
||||||
|
))) |
||||||
|
|
||||||
|
val realm = this.mockRealm |
||||||
|
val sessions = FilterManager().filter( |
||||||
|
realm, |
||||||
|
Session::class.java, |
||||||
|
arrayListOf(filter) |
||||||
|
) as RealmResults<Session> |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue