@@ -19,6 +19,8 @@ import android.os.Build
1919import androidx.test.ext.junit.runners.AndroidJUnit4
2020import com.google.firebase.dataconnect.BuildConfig
2121import com.google.firebase.dataconnect.FirebaseDataConnect.CallerSdkType
22+ import com.google.firebase.dataconnect.core.DataConnectAppCheck.GetAppCheckTokenResult
23+ import com.google.firebase.dataconnect.core.DataConnectAuth.GetAuthTokenResult
2224import com.google.firebase.dataconnect.testutil.FirebaseAppUnitTestingRule
2325import com.google.firebase.dataconnect.testutil.property.arbitrary.appCheckTokenResult
2426import com.google.firebase.dataconnect.testutil.property.arbitrary.authTokenResult
@@ -31,9 +33,12 @@ import io.kotest.matchers.collections.shouldNotContain
3133import io.kotest.matchers.shouldBe
3234import io.kotest.matchers.types.shouldBeSameInstanceAs
3335import io.kotest.property.Arb
36+ import io.kotest.property.Exhaustive
3437import io.kotest.property.arbitrary.constant
3538import io.kotest.property.arbitrary.enum
3639import io.kotest.property.arbitrary.next
40+ import io.kotest.property.checkAll
41+ import io.kotest.property.exhaustive.of
3742import io.mockk.coEvery
3843import io.mockk.mockk
3944import kotlinx.coroutines.test.runTest
@@ -160,24 +165,33 @@ class DataConnectGrpcMetadataUnitTest {
160165
161166 @Test
162167 fun `should omit x-firebase-auth-token when the auth token is null` () = runTest {
163- val dataConnectAuth: DataConnectAuth = mockk()
164- coEvery { dataConnectAuth.getToken(any()) } returns null
165- val dataConnectGrpcMetadata =
166- Arb .dataConnect
167- .dataConnectGrpcMetadata(dataConnectAuth = Arb .constant(dataConnectAuth))
168- .next()
169- val requestId = Arb .dataConnect.requestId().next()
170- val callerSdkType = Arb .enum<CallerSdkType >().next()
168+ val getAuthTokenResults: Exhaustive <GetAuthTokenResult ?> =
169+ Exhaustive .of(
170+ null ,
171+ Arb .dataConnect.authTokenResult(accessToken = Arb .constant(null )).next(),
172+ )
171173
172- val metadata = dataConnectGrpcMetadata.get(requestId, callerSdkType)
174+ checkAll(getAuthTokenResults) { getAuthTokenResult ->
175+ val dataConnectAuth: DataConnectAuth = mockk()
176+ coEvery { dataConnectAuth.getToken(any()) } returns getAuthTokenResult
177+ val dataConnectGrpcMetadata =
178+ Arb .dataConnect
179+ .dataConnectGrpcMetadata(dataConnectAuth = Arb .constant(dataConnectAuth))
180+ .next()
181+ val requestId = Arb .dataConnect.requestId().next()
182+ val callerSdkType = Arb .enum<CallerSdkType >().next()
173183
174- metadata.asClue { it.keys() shouldNotContain " x-firebase-auth-token" }
184+ val metadata = dataConnectGrpcMetadata.get(requestId, callerSdkType)
185+
186+ metadata.asClue { it.keys() shouldNotContain " x-firebase-auth-token" }
187+ }
175188 }
176189
177190 @Test
178191 fun `should include x-firebase-auth-token when the auth token is not null` () = runTest {
179192 val dataConnectAuth: DataConnectAuth = mockk()
180- val authTokenResult = Arb .dataConnect.authTokenResult().next()
193+ val authTokenResult =
194+ Arb .dataConnect.authTokenResult(accessToken = Arb .dataConnect.accessToken()).next()
181195 coEvery { dataConnectAuth.getToken(any()) } returns authTokenResult
182196 val dataConnectGrpcMetadata =
183197 Arb .dataConnect
@@ -197,24 +211,33 @@ class DataConnectGrpcMetadataUnitTest {
197211
198212 @Test
199213 fun `should omit x-firebase-appcheck when the AppCheck token is null` () = runTest {
200- val dataConnectAppCheck: DataConnectAppCheck = mockk {
201- coEvery { getToken(any()) } returns null
202- }
203- val dataConnectGrpcMetadata =
204- Arb .dataConnect
205- .dataConnectGrpcMetadata(dataConnectAppCheck = Arb .constant(dataConnectAppCheck))
206- .next()
207- val requestId = Arb .dataConnect.requestId().next()
208- val callerSdkType = Arb .enum<CallerSdkType >().next()
214+ val getAppCheckTokenResults: Exhaustive <GetAppCheckTokenResult ?> =
215+ Exhaustive .of(
216+ null ,
217+ Arb .dataConnect.appCheckTokenResult(accessToken = Arb .constant(null )).next(),
218+ )
209219
210- val metadata = dataConnectGrpcMetadata.get(requestId, callerSdkType)
220+ checkAll(getAppCheckTokenResults) { getAppCheckTokenResult ->
221+ val dataConnectAppCheck: DataConnectAppCheck = mockk {
222+ coEvery { getToken(any()) } returns getAppCheckTokenResult
223+ }
224+ val dataConnectGrpcMetadata =
225+ Arb .dataConnect
226+ .dataConnectGrpcMetadata(dataConnectAppCheck = Arb .constant(dataConnectAppCheck))
227+ .next()
228+ val requestId = Arb .dataConnect.requestId().next()
229+ val callerSdkType = Arb .enum<CallerSdkType >().next()
211230
212- metadata.asClue { it.keys() shouldNotContain " x-firebase-appcheck" }
231+ val metadata = dataConnectGrpcMetadata.get(requestId, callerSdkType)
232+
233+ metadata.asClue { it.keys() shouldNotContain " x-firebase-appcheck" }
234+ }
213235 }
214236
215237 @Test
216238 fun `should include x-firebase-appcheck when the AppCheck token is not null` () = runTest {
217- val appCheckTokenResult = Arb .dataConnect.appCheckTokenResult().next()
239+ val appCheckTokenResult =
240+ Arb .dataConnect.appCheckTokenResult(accessToken = Arb .dataConnect.accessToken()).next()
218241 val dataConnectAppCheck: DataConnectAppCheck = mockk {
219242 coEvery { getToken(any()) } returns appCheckTokenResult
220243 }
0 commit comments