blob: 3307c72e68f25236cd67acca0bcf2300f0e26936 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
package com.pitchedapps.frost.facebook.parsers
import com.pitchedapps.frost.internal.COOKIE
import com.pitchedapps.frost.internal.assertComponentsNotEmpty
import com.pitchedapps.frost.internal.assertDescending
import com.pitchedapps.frost.internal.authDependent
import org.junit.BeforeClass
import org.junit.Test
import kotlin.test.assertNotNull
import kotlin.test.assertTrue
import kotlin.test.fail
/**
* Created by Allan Wang on 24/12/17.
*/
class FbParseTest {
companion object {
@BeforeClass
@JvmStatic
fun before() {
authDependent()
}
}
private inline fun <reified T : Any> FrostParser<T>.test(action: T.() -> Unit = {}) =
parse(COOKIE).test(url, action)
private inline fun <reified T : Any> ParseResponse<T>?.test(url: String, action: T.() -> Unit = {}) {
val response = this
?: fail("${T::class.simpleName} parser returned null for $url")
println(response)
response.data.action()
}
@Test
fun message() = MessageParser.test {
threads.forEach {
it.assertComponentsNotEmpty()
assertTrue(it.id > FALLBACK_TIME_MOD, "id may not be properly matched")
assertNotNull(it.img, "img may not be properly matched")
}
threads.map(FrostThread::time).assertDescending("thread time values")
}
@Test
fun messageUser() = MessageParser.queryUser(COOKIE, "allan").test("allan query")
@Test
fun search() = SearchParser.test()
@Test
fun notif() = NotifParser.test {
notifs.forEach {
it.assertComponentsNotEmpty()
assertTrue(it.id > FALLBACK_TIME_MOD, "id may not be properly matched")
assertNotNull(it.img, "img may not be properly matched")
}
notifs.map(FrostNotif::time).assertDescending("notif time values")
}
}
|