-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathFirebaseAuthTest.kt
57 lines (51 loc) · 2.14 KB
/
FirebaseAuthTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import android.net.Uri
import com.google.firebase.auth.FirebaseUser
import kotlinx.coroutines.tasks.await
import kotlinx.coroutines.test.runTest
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotEquals
import org.junit.Test
import java.util.UUID
internal class FirebaseAuthTest : FirebaseTest() {
@Test
fun testCreateUserWithEmailAndPassword() =
runTest {
val email = "test+${UUID.randomUUID()}@test.com"
val createResult = auth.createUserWithEmailAndPassword(email, "test123").await()
assertNotEquals(null, createResult.user?.uid)
// assertEquals(null, createResult.user?.displayName)
// assertEquals(null, createResult.user?.phoneNumber)
assertEquals(false, createResult.user?.isAnonymous)
assertEquals(email, createResult.user?.email)
assertNotEquals("", createResult.user!!.email)
val signInResult = auth.signInWithEmailAndPassword(email, "test123").await()
assertEquals(createResult.user?.uid, signInResult.user?.uid)
}
@Test
fun testUpdateProfile() =
runTest {
val user = createUser()
user
?.updateProfile(
com.google.firebase.auth.UserProfileChangeRequest
.Builder()
.setDisplayName("testDisplayName")
.setPhotoUri(Uri.parse("https://picsum.photos/100"))
.build()
)?.await()
assertEquals("testDisplayName", auth.currentUser?.displayName)
assertEquals("https://picsum.photos/100", auth.currentUser?.photoUrl)
}
@Test
fun testSignInAnonymously() =
runTest {
val signInResult = auth.signInAnonymously().await()
assertNotEquals("", signInResult.user!!.email)
assertEquals(true, signInResult.user?.isAnonymous)
}
private suspend fun createUser(email: String = "test+${UUID.randomUUID()}@test.com"): FirebaseUser? =
auth
.createUserWithEmailAndPassword(email, "test123")
.await()
.user
}