aboutsummaryrefslogtreecommitdiff
path: root/app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2018-09-27 18:03:53 -0400
committerGitHub <noreply@github.com>2018-09-27 18:03:53 -0400
commit7460935f32748b10f6b3fedf9e77a373a9010d05 (patch)
treeeeaa5c880679198ee1a9dff885a1c7fc6c84207e /app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt
parent5db95f245101b221ca5669c4e4b5e526d941d68f (diff)
downloadfrost-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.kt61
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