package com.jttools.datacontrol.remote import org.junit.Assert.assertEquals import org.junit.Assert.assertNull import org.junit.Test import java.util.Base64 class FirebaseConfigTest { private val expected = FirebaseConfig("AIzaTest", "1:123:android:abc", "mon-projet") @Test fun `bloc firebaseConfig de la console`() { val js = """ const firebaseConfig = { apiKey: "AIzaTest", authDomain: "mon-projet.firebaseapp.com", projectId: "mon-projet", appId: "1:123:android:abc" }; """.trimIndent() assertEquals(expected, FirebaseConfig.parse(js)) } @Test fun `json`() { assertEquals( expected, FirebaseConfig.parse("""{"apiKey":"AIzaTest","appId":"1:123:android:abc","projectId":"mon-projet"}""") ) } @Test fun `chaine fc1 de FamilyControl`() { val b64 = Base64.getEncoder().encodeToString( """{"apiKey":"AIzaTest","appId":"1:123:android:abc","projectId":"mon-projet"}""".toByteArray() ) assertEquals(expected, FirebaseConfig.parse("fc1:$b64")) assertEquals(expected, FirebaseConfig.parse(" fc1:${b64.chunked(20).joinToString("\n")} ")) } @Test fun `champ manquant ou illisible`() { assertNull(FirebaseConfig.parse("""{"apiKey":"AIzaTest","projectId":"mon-projet"}""")) assertNull(FirebaseConfig.parse("fc1:!!!")) assertNull(FirebaseConfig.parse("")) } }