@ -8,6 +8,7 @@ import net.pokeranalytics.android.model.realm.FilterCondition
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterElementRow
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterSectionRow
import net.pokeranalytics.android.util.extensions.startOfDay
import org.junit.Assert
import org.junit.Test
import org.junit.runner.RunWith
@ -150,6 +151,223 @@ class DateFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() {
}
}
@Test
fun testTodayFilter ( ) {
val realm = this . mockRealm
realm . beginTransaction ( )
val s1 = Session . testInstance ( 100.0 , false )
val cal = Calendar . getInstance ( )
cal . time = Date ( )
cal . add ( Calendar . HOUR _OF _DAY , - 72 )
Session . testInstance ( 100.0 , false , cal . time )
realm . commitTransaction ( )
Assert . assertTrue ( realm . where ( Session :: class . java ) . findAll ( ) . count ( ) == 2 )
val sessions = Filter . queryOn < Session > ( realm , arrayListOf ( QueryCondition . TODAY ) )
Assert . assertEquals ( 1 , sessions . size )
sessions [ 0 ] ?. run {
Assert . assertEquals ( s1 . id , this . id )
}
}
@Test
fun testTodayNoonFilter ( ) {
val realm = this . mockRealm
realm . beginTransaction ( )
val cal = Calendar . getInstance ( )
cal . time = Date ( ) . startOfDay ( )
val s1 = Session . testInstance ( 100.0 , false , cal . time )
cal . add ( Calendar . HOUR _OF _DAY , - 72 )
Session . testInstance ( 100.0 , false , cal . time )
realm . commitTransaction ( )
Assert . assertTrue ( realm . where ( Session :: class . java ) . findAll ( ) . count ( ) == 2 )
val sessions = Filter . queryOn < Session > ( realm , arrayListOf ( QueryCondition . TODAY ) )
Assert . assertEquals ( 1 , sessions . size )
sessions [ 0 ] ?. run {
Assert . assertEquals ( s1 . id , this . id )
}
}
@Test
fun testYesterdayFilter ( ) {
val realm = this . mockRealm
realm . beginTransaction ( )
val cal = Calendar . getInstance ( )
cal . time = Date ( )
cal . add ( Calendar . HOUR _OF _DAY , - 24 )
val s1 = Session . testInstance ( 100.0 , false , cal . time )
Session . testInstance ( 100.0 , false )
cal . add ( Calendar . HOUR _OF _DAY , - 72 )
Session . testInstance ( 100.0 , false , cal . time )
realm . commitTransaction ( )
Assert . assertTrue ( realm . where ( Session :: class . java ) . findAll ( ) . count ( ) == 3 )
val sessions = Filter . queryOn < Session > ( realm , arrayListOf ( QueryCondition . YESTERDAY ) )
Assert . assertEquals ( 1 , sessions . size )
sessions [ 0 ] ?. run {
Assert . assertEquals ( s1 . id , this . id )
}
}
@Test
fun testYesterdayNoonFilter ( ) {
val realm = this . mockRealm
realm . beginTransaction ( )
val cal = Calendar . getInstance ( )
cal . time = Date ( )
cal . add ( Calendar . HOUR _OF _DAY , - 24 )
val s1 = Session . testInstance ( 100.0 , false , cal . time . startOfDay ( ) )
Session . testInstance ( 100.0 , false )
cal . add ( Calendar . HOUR _OF _DAY , - 72 )
Session . testInstance ( 100.0 , false , cal . time )
realm . commitTransaction ( )
Assert . assertTrue ( realm . where ( Session :: class . java ) . findAll ( ) . count ( ) == 3 )
val sessions = Filter . queryOn < Session > ( realm , arrayListOf ( QueryCondition . YESTERDAY ) )
Assert . assertEquals ( 1 , sessions . size )
sessions [ 0 ] ?. run {
Assert . assertEquals ( s1 . id , this . id )
}
}
@Test
fun testTodayAndYesterdayFilter ( ) {
val realm = this . mockRealm
realm . beginTransaction ( )
val cal = Calendar . getInstance ( )
cal . time = Date ( )
cal . add ( Calendar . HOUR _OF _DAY , - 24 )
val s1 = Session . testInstance ( 100.0 , false , cal . time )
val s2 = Session . testInstance ( 100.0 , false )
cal . add ( Calendar . HOUR _OF _DAY , - 72 )
Session . testInstance ( 100.0 , false , cal . time )
realm . commitTransaction ( )
Assert . assertTrue ( realm . where ( Session :: class . java ) . findAll ( ) . count ( ) == 3 )
val sessions = Filter . queryOn < Session > ( realm , arrayListOf ( QueryCondition . TODAY _AND _YESTERDAY ) )
Assert . assertEquals ( 2 , sessions . size )
Assert . assertTrue ( sessions . containsAll ( arrayListOf ( s1 , s2 ) ) )
}
@Test
fun testThisYear ( ) {
val realm = this . mockRealm
realm . beginTransaction ( )
val s1 = Session . testInstance ( 100.0 , false )
val cal = Calendar . getInstance ( )
cal . time = Date ( )
cal . add ( Calendar . HOUR _OF _DAY , - 24 )
val s2 = Session . testInstance ( 100.0 , false , cal . time )
cal . add ( Calendar . HOUR _OF _DAY , - 72 )
val s3 = Session . testInstance ( 100.0 , false , cal . time )
cal . add ( Calendar . YEAR , - 4 )
Session . testInstance ( 100.0 , false , cal . time )
cal . add ( Calendar . YEAR , - 1 )
Session . testInstance ( 100.0 , false , cal . time )
realm . commitTransaction ( )
Assert . assertTrue ( realm . where ( Session :: class . java ) . findAll ( ) . count ( ) == 5 )
val sessions = Filter . queryOn < Session > ( realm , arrayListOf ( QueryCondition . THIS _YEAR ) )
Assert . assertEquals ( 3 , sessions . size )
Assert . assertTrue ( sessions . containsAll ( arrayListOf ( s1 , s2 , s3 ) ) )
}
@Test
fun testThisMonth ( ) {
val realm = this . mockRealm
realm . beginTransaction ( )
val s1 = Session . testInstance ( 100.0 , false )
val cal = Calendar . getInstance ( )
cal . time = Date ( )
cal . set ( Calendar . DAY _OF _MONTH , 1 )
cal . time = cal . time . startOfDay ( )
val s2 = Session . testInstance ( 100.0 , false , cal . time )
cal . add ( Calendar . HOUR _OF _DAY , - 1 )
Session . testInstance ( 100.0 , false , cal . time )
cal . add ( Calendar . MONTH , - 1 )
Session . testInstance ( 100.0 , false , cal . time )
cal . add ( Calendar . YEAR , - 1 )
Session . testInstance ( 100.0 , false , cal . time )
realm . commitTransaction ( )
Assert . assertTrue ( realm . where ( Session :: class . java ) . findAll ( ) . count ( ) == 5 )
val sessions = Filter . queryOn < Session > ( realm , arrayListOf ( QueryCondition . THIS _MONTH ) )
Assert . assertEquals ( 2 , sessions . size )
Assert . assertTrue ( sessions . containsAll ( arrayListOf ( s1 , s2 ) ) )
}
@Test
fun testThisWeek ( ) {
val realm = this . mockRealm
realm . beginTransaction ( )
val s1 = Session . testInstance ( 100.0 , false )
val cal = Calendar . getInstance ( )
cal . time = Date ( )
cal . set ( Calendar . DAY _OF _WEEK _IN _MONTH , 1 )
cal . time = cal . time . startOfDay ( )
cal . add ( Calendar . HOUR _OF _DAY , - 1 )
Session . testInstance ( 100.0 , false , cal . time )
realm . commitTransaction ( )
Assert . assertTrue ( realm . where ( Session :: class . java ) . findAll ( ) . count ( ) == 2 )
val sessions = Filter . queryOn < Session > ( realm , arrayListOf ( QueryCondition . THIS _WEEK ) )
Assert . assertEquals ( 1 , sessions . size )
Assert . assertTrue ( sessions . containsAll ( arrayListOf ( s1 ) ) )
}
@Test
fun testStartedFomDateFilter ( ) {