@@ -20,15 +20,14 @@ package com.google.firebase.dataconnect.connectors.demo
2020
2121import com.google.firebase.dataconnect.DataConnectException
2222import com.google.firebase.dataconnect.ExperimentalFirebaseDataConnect
23+ import com.google.firebase.dataconnect.LocalDate
2324import com.google.firebase.dataconnect.connectors.demo.testutil.DemoConnectorIntegrationTestBase
2425import com.google.firebase.dataconnect.generated.GeneratedMutation
2526import com.google.firebase.dataconnect.generated.GeneratedQuery
26- import com.google.firebase.dataconnect.testutil.dateFromYearMonthDayUTC
2727import com.google.firebase.dataconnect.testutil.executeWithEmptyVariables
2828import com.google.firebase.dataconnect.testutil.property.arbitrary.EdgeCases
2929import com.google.firebase.dataconnect.testutil.property.arbitrary.dataConnect
3030import com.google.firebase.dataconnect.testutil.property.arbitrary.dateTestData
31- import com.google.firebase.dataconnect.testutil.property.arbitrary.toJavaUtilDate
3231import io.kotest.assertions.assertSoftly
3332import io.kotest.assertions.throwables.shouldThrow
3433import 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 )
0 commit comments