Skip to content

Commit

Permalink
NTV-476 :Migrate AccessTokenEnvelope.java to kotlin and deprecate Aut…
Browse files Browse the repository at this point in the history
…oparcel (#1592)

* Rename .java to .kt

* Migrate AccessTokenEnvelope.java to kotlin and deprecate Autoparcel
  • Loading branch information
hadia committed Apr 6, 2022
1 parent 0d366bd commit 2ba954b
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 50 deletions.

This file was deleted.

@@ -0,0 +1,46 @@
package com.kickstarter.services.apiresponses

import android.os.Parcelable
import com.kickstarter.models.User
import kotlinx.parcelize.Parcelize

@Parcelize
class AccessTokenEnvelope private constructor(
private val accessToken: String,
private val user: User
) : Parcelable {
fun accessToken() = this.accessToken
fun user() = this.user

@Parcelize
data class Builder(
private var accessToken: String = "",
private var user: User = User.builder().build()
) : Parcelable {
fun accessToken(accessToken: String) = apply { this.accessToken = accessToken }
fun user(user: User) = apply { this.user = user }
fun build() = AccessTokenEnvelope(
accessToken = accessToken,
user = user
)
}

override fun equals(obj: Any?): Boolean {
var equals = super.equals(obj)
if (obj is AccessTokenEnvelope) {
equals = accessToken() == obj.accessToken() &&
user() == obj.user()
}
return equals
}

fun toBuilder() = Builder(
accessToken = accessToken,
user = user
)

companion object {
@JvmStatic
fun builder() = Builder()
}
}
Expand Up @@ -3,9 +3,32 @@ package com.kickstarter.models
import com.kickstarter.mock.factories.UserFactory
import com.kickstarter.services.apiresponses.AccessTokenEnvelope
import junit.framework.TestCase
import org.junit.Test

class AccessTokenEnvelopeTest : TestCase() {

@Test
fun testDefaultInit() {
val accessToken = "test"
val user = UserFactory.canadianUser()
val loginWithFacebookBody = AccessTokenEnvelope.builder()
.accessToken(accessToken)
.user(user)
.build()

assertEquals(loginWithFacebookBody.accessToken(), accessToken)
assertEquals(loginWithFacebookBody.user(), user)
}

@Test
fun testAccessTokenEnvelopeToBuilder() {
val user = UserFactory.canadianUser()
val loginWithFacebookBody = AccessTokenEnvelope.builder().build().toBuilder()
.user(user).build()

assertEquals(loginWithFacebookBody.user(), user)
}

fun testEquals_whenSecondEnvelopNull_returnFalse() {
val envelopA = AccessTokenEnvelope.builder().user(UserFactory.user()).accessToken("SomeToken").build()
val envelopB: AccessTokenEnvelope? = null
Expand Down

0 comments on commit 2ba954b

Please sign in to comment.