@@ -19,7 +19,12 @@ package com.google.firebase.dataconnect.testutil
19
19
import androidx.test.ext.junit.runners.AndroidJUnit4
20
20
import com.google.firebase.dataconnect.ConnectorConfig
21
21
import com.google.firebase.util.nextAlphanumericString
22
+ import io.kotest.property.Arb
22
23
import io.kotest.property.RandomSource
24
+ import io.kotest.property.arbitrary.Codepoint
25
+ import io.kotest.property.arbitrary.alphanumeric
26
+ import io.kotest.property.arbitrary.arbitrary
27
+ import io.kotest.property.arbitrary.string
23
28
import kotlin.random.Random
24
29
import org.junit.Rule
25
30
import org.junit.rules.TestName
@@ -40,6 +45,31 @@ abstract class DataConnectIntegrationTestBase {
40
45
41
46
val rs: RandomSource by randomSeedTestRule.rs
42
47
48
+ /* *
49
+ * Generates and returns a string containing random alphanumeric characters, including the name of
50
+ * the currently-running test as returned from [testName].
51
+ *
52
+ * @param string The [Arb] to use to generate the random string; if not specified, then an [Arb]
53
+ * that generates strings of 20 alphanumeric characters is used.
54
+ * @param prefix A prefix to include in the returned string; if null (the default) then no prefix
55
+ * will be included.
56
+ * @return a string containing random characters and incorporating the other information
57
+ * identified above.
58
+ */
59
+ fun Arb.Companion.alphanumericString (
60
+ string : Arb <String > = Arb .string(20, Codepoint .alphanumeric()),
61
+ prefix : String? = null,
62
+ ): Arb <String > = arbitrary {
63
+ buildString {
64
+ if (prefix != null ) {
65
+ append(prefix)
66
+ }
67
+ append(testName)
68
+ append(" _" )
69
+ append(string.bind())
70
+ }
71
+ }
72
+
43
73
companion object {
44
74
val testConnectorConfig: ConnectorConfig
45
75
get() =
0 commit comments