Skip to content

Commit cb221eb

Browse files
authored
Merge branch 'main' into rl.file.prop
2 parents 9e6faa7 + b61a095 commit cb221eb

File tree

20 files changed

+127
-117
lines changed

20 files changed

+127
-117
lines changed

firebase-dataconnect/connectors/src/androidTest/kotlin/com/google/firebase/dataconnect/connectors/demo/DateScalarIntegrationTest.kt

Lines changed: 40 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@ package com.google.firebase.dataconnect.connectors.demo
2020

2121
import com.google.firebase.dataconnect.DataConnectException
2222
import com.google.firebase.dataconnect.ExperimentalFirebaseDataConnect
23+
import com.google.firebase.dataconnect.LocalDate
2324
import com.google.firebase.dataconnect.connectors.demo.testutil.DemoConnectorIntegrationTestBase
2425
import com.google.firebase.dataconnect.generated.GeneratedMutation
2526
import com.google.firebase.dataconnect.generated.GeneratedQuery
26-
import com.google.firebase.dataconnect.testutil.dateFromYearMonthDayUTC
2727
import com.google.firebase.dataconnect.testutil.executeWithEmptyVariables
2828
import com.google.firebase.dataconnect.testutil.property.arbitrary.EdgeCases
2929
import com.google.firebase.dataconnect.testutil.property.arbitrary.dataConnect
3030
import com.google.firebase.dataconnect.testutil.property.arbitrary.dateTestData
31-
import com.google.firebase.dataconnect.testutil.property.arbitrary.toJavaUtilDate
3231
import io.kotest.assertions.assertSoftly
3332
import io.kotest.assertions.throwables.shouldThrow
3433
import io.kotest.assertions.withClue
@@ -47,7 +46,7 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
4746
@Test
4847
fun nonNullDate_insert_NormalCases() = runTest {
4948
checkAll(20, Arb.dataConnect.dateTestData()) {
50-
val key = connector.insertNonNullDate.execute(it.toJavaUtilDate()).data.key
49+
val key = connector.insertNonNullDate.execute(it.date).data.key
5150
assertNonNullDateByKeyEquals(key, it.string)
5251
}
5352
}
@@ -56,7 +55,7 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
5655
fun nonNullDate_insert_EdgeCases() = runTest {
5756
assertSoftly {
5857
EdgeCases.dates.all().forEach {
59-
val key = connector.insertNonNullDate.execute(it.toJavaUtilDate()).data.key
58+
val key = connector.insertNonNullDate.execute(it.date).data.key
6059
assertNonNullDateByKeyEquals(key, it.string)
6160
}
6261
}
@@ -70,14 +69,14 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
7069
// "2024-03-27" if it did the erroneous conversion to UTC before taking the YYYY-MM-DD.
7170
val date = "2024-03-26T19:48:00.144-07:00"
7271
val key = connector.insertNonNullDate.executeWithStringVariables(date).data.key
73-
assertNonNullDateByKeyEquals(key, dateFromYearMonthDayUTC(2024, 3, 26))
72+
assertNonNullDateByKeyEquals(key, LocalDate(2024, 3, 26))
7473
}
7574

7675
@Test
7776
fun nonNullDate_insert_ShouldIgnoreTime() = runTest {
7877
val date = "2024-03-26T19:48:00.144Z"
7978
val key = connector.insertNonNullDate.executeWithStringVariables(date).data.key
80-
assertNonNullDateByKeyEquals(key, dateFromYearMonthDayUTC(2024, 3, 26))
79+
assertNonNullDateByKeyEquals(key, LocalDate(2024, 3, 26))
8180
}
8281

8382
@Test
@@ -92,9 +91,9 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
9291
queryResult.data shouldBe
9392
GetNonNullDatesWithDefaultsByKeyQuery.Data(
9493
GetNonNullDatesWithDefaultsByKeyQuery.Data.NonNullDatesWithDefaults(
95-
valueWithVariableDefault = dateFromYearMonthDayUTC(6904, 11, 30),
96-
valueWithSchemaDefault = dateFromYearMonthDayUTC(2112, 1, 31),
97-
epoch = EdgeCases.dates.epoch.toJavaUtilDate(),
94+
valueWithVariableDefault = LocalDate(6904, 11, 30),
95+
valueWithSchemaDefault = LocalDate(2112, 1, 31),
96+
epoch = EdgeCases.dates.epoch.date,
9897
requestTime1 = expectedRequestTime,
9998
requestTime2 = expectedRequestTime,
10099
)
@@ -134,8 +133,8 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
134133
@Test
135134
fun nonNullDate_update_NormalCases() = runTest {
136135
checkAll(20, Arb.dataConnect.dateTestData(), Arb.dataConnect.dateTestData()) { date1, date2 ->
137-
val key = connector.insertNonNullDate.execute(date1.toJavaUtilDate()).data.key
138-
connector.updateNonNullDate.execute(key) { value = date2.toJavaUtilDate() }
136+
val key = connector.insertNonNullDate.execute(date1.date).data.key
137+
connector.updateNonNullDate.execute(key) { value = date2.date }
139138
assertNonNullDateByKeyEquals(key, date2.string)
140139
}
141140
}
@@ -151,8 +150,8 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
151150
assertSoftly {
152151
for ((date1, date2) in dates1.zip(dates2)) {
153152
withClue("date1=${date1.string} date2=${date2.string}") {
154-
val key = connector.insertNonNullDate.execute(date1.toJavaUtilDate()).data.key
155-
connector.updateNonNullDate.execute(key) { value = date2.toJavaUtilDate() }
153+
val key = connector.insertNonNullDate.execute(date1.date).data.key
154+
connector.updateNonNullDate.execute(key) { value = date2.date }
156155
assertNonNullDateByKeyEquals(key, date2.string)
157156
}
158157
}
@@ -162,15 +161,15 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
162161
@Test
163162
fun nonNullDate_update_DateVariableOmitted() = runTest {
164163
val date = Arb.dataConnect.dateTestData().next(rs)
165-
val key = connector.insertNonNullDate.execute(date.toJavaUtilDate()).data.key
164+
val key = connector.insertNonNullDate.execute(date.date).data.key
166165
connector.updateNonNullDate.execute(key) {}
167-
assertNonNullDateByKeyEquals(key, date.toJavaUtilDate())
166+
assertNonNullDateByKeyEquals(key, date.date)
168167
}
169168

170169
@Test
171170
fun nullableDate_insert_NormalCases() = runTest {
172171
checkAll(20, Arb.dataConnect.dateTestData()) {
173-
val key = connector.insertNullableDate.execute { value = it.toJavaUtilDate() }.data.key
172+
val key = connector.insertNullableDate.execute { value = it.date }.data.key
174173
assertNullableDateByKeyEquals(key, it.string)
175174
}
176175
}
@@ -180,7 +179,7 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
180179
val edgeCases = EdgeCases.dates.all() + listOf(null)
181180
assertSoftly {
182181
edgeCases.forEach {
183-
val key = connector.insertNullableDate.execute { value = it?.toJavaUtilDate() }.data.key
182+
val key = connector.insertNullableDate.execute { value = it?.date }.data.key
184183
if (it === null) {
185184
assertNullableDateByKeyHasNullInnerValue(key)
186185
} else {
@@ -204,14 +203,14 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
204203
// "2024-03-27" if it did the erroneous conversion to UTC before taking the YYYY-MM-DD.
205204
val date = "2024-03-26T19:48:00.144-07:00"
206205
val key = connector.insertNullableDate.executeWithStringVariables(date).data.key
207-
assertNullableDateByKeyEquals(key, dateFromYearMonthDayUTC(2024, 3, 26))
206+
assertNullableDateByKeyEquals(key, LocalDate(2024, 3, 26))
208207
}
209208

210209
@Test
211210
fun nullableDate_insert_ShouldIgnoreTime() = runTest {
212211
val date = "2024-03-26T19:48:00.144Z"
213212
val key = connector.insertNullableDate.executeWithStringVariables(date).data.key
214-
assertNullableDateByKeyEquals(key, dateFromYearMonthDayUTC(2024, 3, 26))
213+
assertNullableDateByKeyEquals(key, LocalDate(2024, 3, 26))
215214
}
216215

217216
@Test
@@ -242,9 +241,9 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
242241
queryResult.data shouldBe
243242
GetNullableDatesWithDefaultsByKeyQuery.Data(
244243
GetNullableDatesWithDefaultsByKeyQuery.Data.NullableDatesWithDefaults(
245-
valueWithVariableDefault = dateFromYearMonthDayUTC(8113, 2, 9),
246-
valueWithSchemaDefault = dateFromYearMonthDayUTC(1921, 12, 2),
247-
epoch = EdgeCases.dates.epoch.toJavaUtilDate(),
244+
valueWithVariableDefault = LocalDate(8113, 2, 9),
245+
valueWithSchemaDefault = LocalDate(1921, 12, 2),
246+
epoch = EdgeCases.dates.epoch.date,
248247
requestTime1 = expectedRequestTime,
249248
requestTime2 = expectedRequestTime,
250249
)
@@ -254,8 +253,8 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
254253
@Test
255254
fun nullableDate_update_NormalCases() = runTest {
256255
checkAll(20, Arb.dataConnect.dateTestData(), Arb.dataConnect.dateTestData()) { date1, date2 ->
257-
val key = connector.insertNullableDate.execute { value = date1.toJavaUtilDate() }.data.key
258-
connector.updateNullableDate.execute(key) { value = date2.toJavaUtilDate() }
256+
val key = connector.insertNullableDate.execute { value = date1.date }.data.key
257+
connector.updateNullableDate.execute(key) { value = date2.date }
259258
assertNullableDateByKeyEquals(key, date2.string)
260259
}
261260
}
@@ -271,8 +270,8 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
271270
assertSoftly {
272271
for ((date1, date2) in dates1.zip(dates2)) {
273272
withClue("date1=${date1.string} date2=${date2.string}") {
274-
val key = connector.insertNullableDate.execute { value = date1.toJavaUtilDate() }.data.key
275-
connector.updateNullableDate.execute(key) { value = date2.toJavaUtilDate() }
273+
val key = connector.insertNullableDate.execute { value = date1.date }.data.key
274+
connector.updateNullableDate.execute(key) { value = date2.date }
276275
assertNullableDateByKeyEquals(key, date2.string)
277276
}
278277
}
@@ -281,26 +280,26 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
281280

282281
@Test
283282
fun nullableDate_update_UpdateNonNullValueToNull() = runTest {
284-
val date = Arb.dataConnect.dateTestData().next(rs).toJavaUtilDate()
285-
val key = connector.insertNullableDate.execute { value = date }.data.key
283+
val date = Arb.dataConnect.dateTestData().next(rs)
284+
val key = connector.insertNullableDate.execute { value = date.date }.data.key
286285
connector.updateNullableDate.execute(key) { value = null }
287286
assertNullableDateByKeyHasNullInnerValue(key)
288287
}
289288

290289
@Test
291290
fun nullableDate_update_UpdateNullValueToNonNull() = runTest {
292-
val date = Arb.dataConnect.dateTestData().next(rs).toJavaUtilDate()
291+
val date = Arb.dataConnect.dateTestData().next(rs)
293292
val key = connector.insertNullableDate.execute { value = null }.data.key
294-
connector.updateNullableDate.execute(key) { value = date }
295-
assertNullableDateByKeyEquals(key, date)
293+
connector.updateNullableDate.execute(key) { value = date.date }
294+
assertNullableDateByKeyEquals(key, date.date)
296295
}
297296

298297
@Test
299298
fun nullableDate_update_DateVariableOmitted() = runTest {
300-
val date = Arb.dataConnect.dateTestData().next(rs).toJavaUtilDate()
301-
val key = connector.insertNullableDate.execute { value = date }.data.key
299+
val date = Arb.dataConnect.dateTestData().next(rs)
300+
val key = connector.insertNullableDate.execute { value = date.date }.data.key
302301
connector.updateNullableDate.execute(key) {}
303-
assertNullableDateByKeyEquals(key, date)
302+
assertNullableDateByKeyEquals(key, date.date)
304303
}
305304

306305
private suspend fun assertNonNullDateByKeyEquals(key: NonNullDateKey, expected: String) {
@@ -311,7 +310,7 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
311310
queryResult.data shouldBe GetDateByKeyQueryStringData(expected)
312311
}
313312

314-
private suspend fun assertNonNullDateByKeyEquals(key: NonNullDateKey, expected: java.util.Date) {
313+
private suspend fun assertNonNullDateByKeyEquals(key: NonNullDateKey, expected: LocalDate) {
315314
val queryResult = connector.getNonNullDateByKey.execute(key)
316315
queryResult.data shouldBe
317316
GetNonNullDateByKeyQuery.Data(GetNonNullDateByKeyQuery.Data.Value(expected))
@@ -334,19 +333,16 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
334333
queryResult.data shouldBe GetDateByKeyQueryStringData(expected)
335334
}
336335

337-
private suspend fun assertNullableDateByKeyEquals(
338-
key: NullableDateKey,
339-
expected: java.util.Date
340-
) {
336+
private suspend fun assertNullableDateByKeyEquals(key: NullableDateKey, expected: LocalDate) {
341337
val queryResult = connector.getNullableDateByKey.execute(key)
342338
queryResult.data shouldBe
343339
GetNullableDateByKeyQuery.Data(GetNullableDateByKeyQuery.Data.Value(expected))
344340
}
345341

346342
/**
347343
* A `Data` type that can be used in place of [GetNonNullDateByKeyQuery.Data] that types the value
348-
* as a [String] instead of a [java.util.Date], allowing verification of the data sent over the
349-
* wire without possible confounding from date deserialization.
344+
* as a [String] instead of a [LocalDate], allowing verification of the data sent over the wire
345+
* without possible confounding from date deserialization.
350346
*/
351347
@Serializable
352348
private data class GetDateByKeyQueryStringData(val value: DateStringValue?) {
@@ -357,14 +353,14 @@ class DateScalarIntegrationTest : DemoConnectorIntegrationTestBase() {
357353

358354
/**
359355
* A `Variables` type that can be used in place of [InsertNonNullDateMutation.Variables] that
360-
* types the value as a [String] instead of a [java.util.Date], allowing verification of the data
361-
* sent over the wire without possible confounding from date serialization.
356+
* types the value as a [String] instead of a [LocalDate], allowing verification of the data sent
357+
* over the wire without possible confounding from date serialization.
362358
*/
363359
@Serializable private data class InsertDateStringVariables(val value: String?)
364360

365361
/**
366362
* A `Variables` type that can be used in place of [InsertNonNullDateMutation.Variables] that
367-
* types the value as a [Int] instead of a [java.util.Date], allowing verification that the server
363+
* types the value as a [Int] instead of a [LocalDate], allowing verification that the server
368364
* fails with an expected error (rather than crashing, for example).
369365
*/
370366
@Serializable private data class InsertDateIntVariables(val value: Int)

firebase-dataconnect/connectors/src/androidTest/kotlin/com/google/firebase/dataconnect/connectors/demo/KeyVariablesIntegrationTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ package com.google.firebase.dataconnect.connectors.demo
1919
import com.google.firebase.dataconnect.connectors.demo.testutil.DemoConnectorIntegrationTestBase
2020
import com.google.firebase.dataconnect.testutil.property.arbitrary.dataConnect
2121
import com.google.firebase.dataconnect.testutil.property.arbitrary.dateTestData
22-
import com.google.firebase.dataconnect.testutil.property.arbitrary.toJavaUtilDate
2322
import com.google.firebase.dataconnect.testutil.randomTimestamp
2423
import com.google.firebase.dataconnect.testutil.withMicrosecondPrecision
2524
import io.kotest.matchers.shouldBe
@@ -86,7 +85,7 @@ class KeyVariablesIntegrationTest : DemoConnectorIntegrationTestBase() {
8685

8786
@Test
8887
fun primaryKeyIsDate() = runTest {
89-
val id = Arb.dataConnect.dateTestData().next(rs).toJavaUtilDate()
88+
val id = Arb.dataConnect.dateTestData().next(rs).date
9089
val value = Arb.dataConnect.string().next(rs)
9190

9291
val key = connector.insertPrimaryKeyIsDate.execute(foo = id, value = value).data.key

firebase-dataconnect/connectors/src/androidTest/kotlin/com/google/firebase/dataconnect/connectors/demo/ListVariablesAndDataIntegrationTest.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
package com.google.firebase.dataconnect.connectors.demo
1818

1919
import com.google.firebase.Timestamp
20+
import com.google.firebase.dataconnect.LocalDate
2021
import com.google.firebase.dataconnect.connectors.demo.testutil.DemoConnectorIntegrationTestBase
2122
import com.google.firebase.dataconnect.testutil.property.arbitrary.DataConnectArb
2223
import com.google.firebase.dataconnect.testutil.property.arbitrary.EdgeCases
2324
import com.google.firebase.dataconnect.testutil.property.arbitrary.dataConnect
24-
import com.google.firebase.dataconnect.testutil.property.arbitrary.dateTestData
25-
import com.google.firebase.dataconnect.testutil.property.arbitrary.toJavaUtilDate
25+
import com.google.firebase.dataconnect.testutil.property.arbitrary.localDate
2626
import com.google.firebase.dataconnect.testutil.withMicrosecondPrecision
2727
import io.kotest.common.ExperimentalKotest
2828
import io.kotest.matchers.shouldBe
@@ -37,7 +37,6 @@ import io.kotest.property.arbitrary.long
3737
import io.kotest.property.arbitrary.map
3838
import io.kotest.property.arbitrary.uuid
3939
import io.kotest.property.checkAll
40-
import java.util.Date
4140
import java.util.UUID
4241
import kotlin.time.Duration.Companion.seconds
4342
import kotlinx.coroutines.test.runTest
@@ -475,7 +474,7 @@ class ListVariablesAndDataIntegrationTest : DemoConnectorIntegrationTestBase() {
475474
val booleans: List<Boolean>,
476475
val uuids: List<UUID>,
477476
val int64s: List<Long>,
478-
val dates: List<Date>,
477+
val dates: List<LocalDate>,
479478
val timestamps: List<Timestamp>,
480479
) {
481480

@@ -524,7 +523,7 @@ class ListVariablesAndDataIntegrationTest : DemoConnectorIntegrationTestBase() {
524523
booleans = EdgeCases.booleans,
525524
uuids = EdgeCases.uuids,
526525
int64s = EdgeCases.int64s,
527-
dates = EdgeCases.dates.all().map { it.toJavaUtilDate() },
526+
dates = EdgeCases.dates.all().map { it.date },
528527
timestamps = EdgeCases.javaTime.instants.all.map { it.timestamp },
529528
)
530529
}
@@ -546,8 +545,7 @@ class ListVariablesAndDataIntegrationTest : DemoConnectorIntegrationTestBase() {
546545
booleans: Arb<List<Boolean>> = Arb.list(Arb.boolean(), 1..100),
547546
uuids: Arb<List<UUID>> = Arb.list(Arb.uuid(), 1..100),
548547
int64s: Arb<List<Long>> = Arb.list(Arb.long(), 1..100),
549-
dates: Arb<List<Date>> =
550-
Arb.list(Arb.dataConnect.dateTestData().map { it.toJavaUtilDate() }, 1..100),
548+
dates: Arb<List<LocalDate>> = Arb.list(Arb.dataConnect.localDate(), 1..100),
551549
timestamps: Arb<List<Timestamp>> =
552550
Arb.list(Arb.dataConnect.javaTime.instantTestCase().map { it.timestamp }, 1..100),
553551
): Arb<Lists> = arbitrary {

firebase-dataconnect/gradleplugin/plugin/src/main/resources/com/google/firebase/dataconnect/gradle/plugin/DataConnectExecutableVersions.json

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"defaultVersion": "1.6.1",
2+
"defaultVersion": "1.7.0",
33
"versions": [
44
{
55
"version": "1.3.4",
@@ -270,6 +270,24 @@
270270
"os": "linux",
271271
"size": 25223320,
272272
"sha512DigestHex": "5e8002a048b55a358d6d4a8c59c30ef8c3615461fd400bf4c8e86e84cc1b6482da604cb2635ec1639276c3b9c9f22a9c570f6729934e4fc77b09c8ccb6f3b986"
273+
},
274+
{
275+
"version": "1.7.0",
276+
"os": "windows",
277+
"size": 25783808,
278+
"sha512DigestHex": "9fc0bf918ea2c20bc8dcf26efd101e7a567a13bf7b0967c16f35989e3557d0055edce6522b23fb70361f26f3ad1abd93458af5b33d3fa3019333ca72680353a2"
279+
},
280+
{
281+
"version": "1.7.0",
282+
"os": "macos",
283+
"size": 25350912,
284+
"sha512DigestHex": "f887290a6083c3c88ee92f532c6fceb993a64714d5703ea7c389381222eab05998e8a25e0bee0770686433d5e7915fe6bfd58b3a0098d13ad0800c4e515fee0d"
285+
},
286+
{
287+
"version": "1.7.0",
288+
"os": "linux",
289+
"size": 25272472,
290+
"sha512DigestHex": "795c3f63a3c78b94204ae8c525227f3295a02cd90e553f52bde543029a91f68da0d17653cc6b4c863ed778104fd2baa97a729f80ab4bd54dd5dd4f5e15354b7a"
273291
}
274292
]
275293
}

firebase-dataconnect/scripts/compile_kotlin.sh

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@
1616

1717
set -euo pipefail
1818

19-
if [[ $# -gt 0 ]] ; then
20-
echo "ERROR: no command-line arguments are supported, but got $*" >&2
21-
exit 2
22-
fi
23-
2419
readonly PROJECT_ROOT_DIR="$(dirname "$0")/../.."
2520

2621
readonly TARGETS=(
@@ -43,6 +38,7 @@ readonly args=(
4338
"-p"
4439
"${PROJECT_ROOT_DIR}"
4540
"--configure-on-demand"
41+
"$@"
4642
"${TARGETS[@]}"
4743
)
4844

0 commit comments

Comments
 (0)