diff options
Diffstat (limited to 'app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt')
-rw-r--r-- | app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt b/app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt new file mode 100644 index 00000000..3307c72e --- /dev/null +++ b/app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt @@ -0,0 +1,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") + } +}
\ No newline at end of file |