Twidere-App-Android-Twitter.../twidere/src/androidTest/kotlin/org/mariotaku/twidere/extension/model/FiltersDataExtensionsTest.kt

57 lines
1.8 KiB
Kotlin

package org.mariotaku.twidere.extension.model
import androidx.test.ext.junit.runners.AndroidJUnit4
import android.util.Xml
import org.junit.Assert
import org.junit.Test
import org.junit.runner.RunWith
import org.mariotaku.twidere.model.FiltersData
import org.mariotaku.twidere.model.UserKey
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
/**
* Created by mariotaku on 2016/12/29.
*/
@RunWith(AndroidJUnit4::class)
class FiltersDataExtensionsTest {
@Test
fun testXmlSerialization() {
val filters = FiltersData().apply {
users = listOf(userItem(UserKey("123456", "twitter.com"), "name", "screen_name"))
links = listOf(baseItem("twitter.com"))
keywords = listOf(baseItem("Keyword"))
sources = listOf(baseItem("Spam Client"))
}
val serializer = Xml.newSerializer()
val baos = ByteArrayOutputStream()
serializer.setOutput(baos, "UTF-8")
filters.serialize(serializer)
val parser = Xml.newPullParser()
parser.setInput(ByteArrayInputStream(baos.toByteArray()), "UTF-8")
val newFilters = FiltersData()
newFilters.parse(parser)
Assert.assertEquals(filters.users, newFilters.users)
Assert.assertEquals(filters.keywords, newFilters.keywords)
Assert.assertEquals(filters.sources, newFilters.sources)
Assert.assertEquals(filters.links, newFilters.links)
}
private fun baseItem(value: String): FiltersData.BaseItem {
return FiltersData.BaseItem().apply {
this.value = value
}
}
private fun userItem(key: UserKey, name: String, screenName: String): FiltersData.UserItem {
return FiltersData.UserItem().apply {
this.userKey = key
this.name = name
this.screenName = screenName
}
}
}