Skip to content

Commit

Permalink
Merge branch 'master' into hadia/NTV-476_Migrate_AccessTokenEnvelope
Browse files Browse the repository at this point in the history
  • Loading branch information
hadia authored Apr 6, 2022
2 parents 7feb621 + 0d366bd commit e46272b
Show file tree
Hide file tree
Showing 3 changed files with 141 additions and 33 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package com.kickstarter.services.apirequests

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

@Parcelize
class SignupBody private constructor(
private val name: String,
private val email: String,
private val newsletterOptIn: Boolean,
private val password: String,
private val passwordConfirmation: String,
private val sendNewsletters: Boolean
) : Parcelable {
fun name() = this.name
fun email() = this.email
fun password() = this.password
fun passwordConfirmation() = this.passwordConfirmation
fun newsletterOptIn() = this.newsletterOptIn
fun sendNewsletters() = this.sendNewsletters

@Parcelize
data class Builder(
private var name: String = "",
private var email: String = "",
private var password: String = "",
private var passwordConfirmation: String = "",
private var newsletterOptIn: Boolean = false,
private var sendNewsletters: Boolean = false
) : Parcelable {
fun name(name: String) = apply { this.name = name }
fun email(email: String) = apply { this.email = email }
fun password(password: String) = apply { this.password = password }
fun passwordConfirmation(passwordConfirmation: String) = apply { this.passwordConfirmation = passwordConfirmation }
fun newsletterOptIn(newsletterOptIn: Boolean) = apply { this.newsletterOptIn = newsletterOptIn }
fun sendNewsletters(sendNewsletters: Boolean) = apply { this.sendNewsletters = sendNewsletters }

fun build() = SignupBody(
name = name,
email = email,
password = password,
passwordConfirmation = passwordConfirmation,
newsletterOptIn = newsletterOptIn,
sendNewsletters = sendNewsletters
)
}

override fun equals(obj: Any?): Boolean {
var equals = super.equals(obj)
if (obj is SignupBody) {
equals = name == obj.name &&
email == obj.email &&
password == obj.password &&
passwordConfirmation == obj.passwordConfirmation &&
newsletterOptIn == obj.newsletterOptIn &&
sendNewsletters == obj.sendNewsletters
}
return equals
}

fun toBuilder() = Builder(
name = name,
email = email,
password = password,
passwordConfirmation = passwordConfirmation,
newsletterOptIn = newsletterOptIn,
sendNewsletters = sendNewsletters
)

companion object {
@JvmStatic
fun builder() = Builder()
}
}
67 changes: 67 additions & 0 deletions app/src/test/java/com/kickstarter/models/SignupBodyTest.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package com.kickstarter.models

import com.kickstarter.services.apirequests.SignupBody
import junit.framework.TestCase
import org.junit.Test

class SignupBodyTest : TestCase() {

@Test
fun testDefaultInit() {
val email = "[email protected]"
val name = "test"
val password = "123"

val signupBody = SignupBody.builder()
.email(email)
.name(name)
.passwordConfirmation(password)
.password(password)
.newsletterOptIn(false)
.sendNewsletters(true)
.build()

assertEquals(signupBody.email(), email)
assertEquals(signupBody.name(), name)
assertEquals(signupBody.password(), password)
assertEquals(signupBody.passwordConfirmation(), password)
assertFalse(signupBody.newsletterOptIn())
assertTrue(signupBody.sendNewsletters())
}

@Test
fun testSignupBody_equalFalse() {
val email = "[email protected]"
val name = "test"
val password = "123"

val signupBody = SignupBody.builder().build()
val signupBody2 = SignupBody.builder().password(password).build()
val signupBody3 = SignupBody.builder().name(name).build()
val signupBody4 = SignupBody.builder().email(email).build()

assertFalse(signupBody == signupBody2)
assertFalse(signupBody == signupBody3)
assertFalse(signupBody == signupBody4)

assertFalse(signupBody3 == signupBody2)
assertFalse(signupBody3 == signupBody4)
}

@Test
fun testSignupBody_equalTrue() {
val signupBody1 = SignupBody.builder().build()
val signupBody2 = SignupBody.builder().build()

assertEquals(signupBody1, signupBody2)
}

@Test
fun testSignupBodyToBuilder() {
val email = "test"
val signupBody = SignupBody.builder().build().toBuilder()
.email(email).build()

assertEquals(signupBody.email(), email)
}
}

0 comments on commit e46272b

Please sign in to comment.