@@ -30,16 +30,17 @@ import dev.androidx.ci.generated.ftl.FileReference
3030import dev.androidx.ci.generated.ftl.ShardingOption
3131import dev.androidx.ci.generated.ftl.TestMatrix
3232import dev.androidx.ci.generated.ftl.UniformSharding
33+ import dev.androidx.ci.testRunner.dto.TestRun
3334import dev.androidx.ci.testRunner.vo.ApkInfo
3435import dev.androidx.ci.testRunner.vo.DeviceSetup
3536import dev.androidx.ci.testRunner.vo.UploadedApk
3637import kotlinx.coroutines.runBlocking
3738import org.junit.Test
3839
3940internal class TestMatrixStoreTest {
40- val firebaseTestLabApi = FakeFirebaseTestLabApi ()
41- val datastoreApi = FakeDatastore ()
42- val toolsResultApi = FakeToolsResultApi ()
41+ private val firebaseTestLabApi = FakeFirebaseTestLabApi ()
42+ private val datastoreApi = FakeDatastore ()
43+ private val toolsResultApi = FakeToolsResultApi ()
4344 private val store = TestMatrixStore (
4445 firebaseProjectId = " p1" ,
4546 firebaseTestLabApi = firebaseTestLabApi,
@@ -329,6 +330,28 @@ internal class TestMatrixStoreTest {
329330 ).containsExactly(" /sdcard/Android/data/$testPackageName /cache/androidx_screenshots" )
330331 }
331332 }
333+
334+ @Test
335+ fun createUniqueResultGcsPath () = runBlocking {
336+ val testRunId = TestRun .createId(
337+ datastoreApi = datastoreApi,
338+ environment = envMatrix1,
339+ clientInfo = ClientInfo (name = " test" ),
340+ sharding = ShardingOption (),
341+ appApk = createFakeApk(" app.pak" ).apkInfo,
342+ testApk = createFakeApk(" test.apk" ).apkInfo,
343+ deviceSetup = DeviceSetup ()
344+ )
345+
346+ val resultGcsPath1 = store.createUniqueResultGcsPath(testRunId)
347+ val resultGcsPath2 = store.createUniqueResultGcsPath(testRunId)
348+
349+ assertThat(
350+ resultGcsPath1
351+ ).isNotEqualTo(
352+ resultGcsPath2
353+ )
354+ }
332355 private fun createFakeApk (name : String ) = UploadedApk (
333356 gcsPath = GcsPath (" gs://foo/bar/$name " ),
334357 apkInfo = ApkInfo (
0 commit comments