import androidx.test.runner.AndroidJUnit4
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
const val TEST_STRING = “This is a string”
const val TEST_LONG = 12345678L
// @RunWith is required only if you use a mix of JUnit3 and JUnit4.
@RunWith(AndroidJUnit4::class)
class LogHistoryAndroidUnitTest {
private lateinit var logHistory: LogHistory
@Before
fun createLogHistory() {
logHistory = LogHistory(TEST_STRING, TEST_LONG)
}
@Test
fun logHistory_ParcelableWriteRead() {
val parcel = Parcel.obtain()
logHistory.apply {
// 写数据
writeToParcel(parcel, describeContents())
}
// 完成写入后,置包裹以进行读取。
parcel.setDataPosition(0)
// 读取数据
val createdFromParcel: LogHistory = LogHistory.CREATOR.createFromParcel(parcel)
// 验证数据的正确性
Assert.assertTrue(“error TEST_STRING”, createdFromParcel.strValue == TEST_STRING)
Assert.assertTrue(“error TEST_LONG”, createdFromParcel.longValue == TEST_LONG)
}
}
class LogHistory(val strValue: String = “”, val longValue: Long = 0L) : Parcelable {
constructor(source: Parcel) : this(source.readString() ?: “”, source.readLong())
companion object {
val CREATOR: Creator = object : Creator {
override fun createFromParcel(source: Parcel?): LogHistory = LogHistory(source!!)
override fun newArray(size: Int): Array = Array(size) { LogH