Skip to content

Instantly share code, notes, and snippets.

@MikeFot
Created November 15, 2018 17:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MikeFot/374491dbcc9b9551254799f808cbb0b0 to your computer and use it in GitHub Desktop.
Save MikeFot/374491dbcc9b9551254799f808cbb0b0 to your computer and use it in GitHub Desktop.
import com.google.gson.Gson
abstract class BaseJsonTest {
val serializer = Serializer()
inner class Serializer {
private val gson = Gson()
fun <T> deserialize(payload: String, clazz: Class<T>) = gson.fromJson(payload, clazz)!!
fun <T> serialize(item: T, clazz: Class<T>) = gson.toJson(item, clazz)!!
}
abstract fun shouldSerialize()
abstract fun getPayload(): String
inline fun <reified T> serialize(item: T) = serializer.serialize(item, T::class.java)
inline fun <reified T> deserialize(payload: String) =
serializer.deserialize(payload, T::class.java)
inline fun <reified T> deserialize() = deserialize<T>(getPayload())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment