Skip to content

Commit

Permalink
NTV-469: Migrate PushTokenBody.java to kotlin and deprecate Autoparcel (
Browse files Browse the repository at this point in the history
#1602)

* Migrate to kotlin, deprecate autoparcel, all parcelize

* Tests

* Kotlin linter

Co-authored-by: Hadia <hadiamohamed.iti@gmail.com>
  • Loading branch information
leighdouglas and hadia committed Apr 14, 2022
1 parent ad47957 commit 150c67e
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 28 deletions.

This file was deleted.

@@ -0,0 +1,45 @@
package com.kickstarter.services.apirequests

import android.os.Parcelable
import kotlinx.parcelize.Parcelize

@Parcelize
class PushTokenBody private constructor(
private val pushServer: String?,
private val token: String?
) : Parcelable {
fun pushServer() = this.pushServer
fun token() = this.token

@Parcelize
data class Builder(
private var pushServer: String? = null,
private var token: String? = null
) : Parcelable {
fun pushServer(pushServer: String?) = apply { this.pushServer = pushServer }
fun token(token: String?) = apply { this.token = token }
fun build() = PushTokenBody(
pushServer = pushServer,
token = token
)
}

fun toBuilder() = Builder(
pushServer = pushServer,
token = token
)

companion object {
@JvmStatic
fun builder() = Builder()
}

override fun equals(other: Any?): Boolean {
var equals = super.equals(other)
if (other is PushTokenBody) {
equals = pushServer() == other.pushServer() &&
token() == other.token()
}
return equals
}
}
@@ -0,0 +1,58 @@
package com.kickstarter.services.apirequests

import junit.framework.TestCase
import org.junit.Test

class PushTokenBodyTest : TestCase() {

@Test
fun testDefaultInit() {
val pushTokenBody = PushTokenBody.builder()
.pushServer("push_server")
.token("this_is_a_token")
.build()

assertEquals(pushTokenBody.pushServer(), "push_server")
assertEquals(pushTokenBody.token(), "this_is_a_token")
}

@Test
fun testEquals_whenFieldsDontMatch_returnFalse() {
val pushTokenBody1 = PushTokenBody.builder()
.pushServer("push_server")
.token("this_is_a_token")
.build()

val pushTokenBody2 = pushTokenBody1.toBuilder()
.pushServer("push_server2")
.build()

val pushTokenBody3 = pushTokenBody1.toBuilder().token("this_is_a_token2").build()

assertFalse(pushTokenBody1 == pushTokenBody2)
assertFalse(pushTokenBody1 == pushTokenBody3)
assertFalse(pushTokenBody2 == pushTokenBody3)
}

@Test
fun testEquals_whenFieldsMatch_returnTrue() {
val pushTokenBody1 = PushTokenBody.builder()
.pushServer("push_server")
.token("this_is_a_token")
.build()

val pushTokenBody2 = pushTokenBody1

assertTrue(pushTokenBody1 == pushTokenBody2)
}

@Test
fun testToBuilder() {
val pushTokenBody = PushTokenBody.builder()
.token("first_token")
.build().toBuilder().token("changed_token").build()

assertEquals(pushTokenBody.token(), "changed_token")
assertNull(pushTokenBody.pushServer())
}
}

0 comments on commit 150c67e

Please sign in to comment.