diff options
author | Allan Wang <me@allanwang.ca> | 2018-09-27 18:03:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-27 18:03:53 -0400 |
commit | 7460935f32748b10f6b3fedf9e77a373a9010d05 (patch) | |
tree | eeaa5c880679198ee1a9dff885a1c7fc6c84207e /app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt | |
parent | 5db95f245101b221ca5669c4e4b5e526d941d68f (diff) | |
download | frost-7460935f32748b10f6b3fedf9e77a373a9010d05.tar.gz frost-7460935f32748b10f6b3fedf9e77a373a9010d05.tar.bz2 frost-7460935f32748b10f6b3fedf9e77a373a9010d05.zip |
Move parsers to facebook folder (#1109)
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 |