@@ -2225,7 +2225,7 @@ class VardaUpdaterIntegrationTest : PureJdbiTest(resetDbBeforeEach = true) {
2225
2225
lahdejarjestelma =
2226
2226
null , // This will be set to new.sourceSystem
2227
2227
alkamis_pvm = old.beforeEvakaRange.start,
2228
- paattymis_pvm = old.beforeEvakaRange.end ,
2228
+ paattymis_pvm = null ,
2229
2229
hakemus_pvm = old.applicationDate,
2230
2230
tuntimaara_viikossa = 35.0 ,
2231
2231
kokopaivainen_vaka_kytkin = true ,
@@ -2243,7 +2243,7 @@ class VardaUpdaterIntegrationTest : PureJdbiTest(resetDbBeforeEach = true) {
2243
2243
lahdejarjestelma =
2244
2244
old.sourceSystem, // This will be kept
2245
2245
alkamis_pvm = old.beforeEvakaRange.start,
2246
- paattymis_pvm = old.beforeEvakaRange.end ,
2246
+ paattymis_pvm = null ,
2247
2247
toimipaikka_oid = old.unitOid,
2248
2248
)
2249
2249
),
@@ -2394,6 +2394,217 @@ class VardaUpdaterIntegrationTest : PureJdbiTest(resetDbBeforeEach = true) {
2394
2394
)
2395
2395
}
2396
2396
2397
+ @Test
2398
+ fun `write to varda - maksutieto from other source system is deleted if it would end before 2019-09-01` () {
2399
+ val henkiloUrl = URI .create(" henkilo" )
2400
+ val lapsiUrl = URI .create(" lapsi" )
2401
+
2402
+ val old =
2403
+ object {
2404
+ val sourceSystem = " oldSourceSystem"
2405
+ val organizerOid = " oldOrganizerOid"
2406
+ val unitOid = " oldUnitOid"
2407
+
2408
+ val start = LocalDate .of(2018 , 1 , 1 )
2409
+ val applicationDate = start.minusMonths(4 )
2410
+
2411
+ val varhaiskasvatusPaatosToEndUrl = URI .create(" varhaiskasvatuspaatos_to_end" )
2412
+ val varhaiskasvatusSuhdeToEndUrl = URI .create(" varhaiskasvatussuhde_to_end" )
2413
+ val maksutietoToDeleteUrl = URI .create(" maksutieto_to_end" )
2414
+ }
2415
+ val new =
2416
+ object {
2417
+ val sourceSystem = " sourceSystem"
2418
+ val organizerOid = " organizerOid"
2419
+ val unitOid = " unitOid"
2420
+
2421
+ // This is after 2019-01-01 but before 2019-09-01
2422
+ // => other data is set to end, maksutieto is deleted
2423
+ val range = FiniteDateRange (LocalDate .of(2019 , 6 , 1 ), LocalDate .of(2019 , 12 , 31 ))
2424
+
2425
+ val applicationDate = range.start.minusDays(22 )
2426
+ }
2427
+
2428
+ val vardaHenkilo =
2429
+ VardaUpdater .VardaHenkiloNode (
2430
+ henkilo =
2431
+ VardaReadClient .HenkiloResponse (
2432
+ url = henkiloUrl,
2433
+ henkilo_oid = " henkilo_oid_1" ,
2434
+ lapsi = listOf (lapsiUrl),
2435
+ ),
2436
+ lapset =
2437
+ listOf (
2438
+ VardaUpdater .VardaLapsiNode (
2439
+ lapsi =
2440
+ VardaReadClient .LapsiResponse (
2441
+ url = lapsiUrl,
2442
+ lahdejarjestelma = old.sourceSystem,
2443
+ vakatoimija_oid = old.organizerOid,
2444
+ oma_organisaatio_oid = null ,
2445
+ paos_organisaatio_oid = null ,
2446
+ paos_kytkin = false ,
2447
+ ),
2448
+ varhaiskasvatuspaatokset =
2449
+ listOf (
2450
+ VardaUpdater .VardaVarhaiskasvatuspaatosNode (
2451
+ varhaiskasvatuspaatos =
2452
+ VardaReadClient .VarhaiskasvatuspaatosResponse (
2453
+ url = old.varhaiskasvatusPaatosToEndUrl,
2454
+ lahdejarjestelma = old.sourceSystem,
2455
+ alkamis_pvm = old.start,
2456
+ paattymis_pvm = null ,
2457
+ hakemus_pvm = old.applicationDate,
2458
+ tuntimaara_viikossa = 35.0 ,
2459
+ kokopaivainen_vaka_kytkin = true ,
2460
+ tilapainen_vaka_kytkin = false ,
2461
+ paivittainen_vaka_kytkin = true ,
2462
+ vuorohoito_kytkin = false ,
2463
+ jarjestamismuoto_koodi = " jm01" ,
2464
+ ),
2465
+ varhaiskasvatussuhteet =
2466
+ listOf (
2467
+ VardaReadClient .VarhaiskasvatussuhdeResponse (
2468
+ url = old.varhaiskasvatusSuhdeToEndUrl,
2469
+ varhaiskasvatuspaatos =
2470
+ old.varhaiskasvatusPaatosToEndUrl,
2471
+ lahdejarjestelma = old.sourceSystem,
2472
+ alkamis_pvm = old.start,
2473
+ paattymis_pvm = null ,
2474
+ toimipaikka_oid = old.unitOid,
2475
+ )
2476
+ ),
2477
+ )
2478
+ ),
2479
+ maksutiedot =
2480
+ listOf (
2481
+ VardaReadClient .MaksutietoResponse (
2482
+ url = old.maksutietoToDeleteUrl,
2483
+ lapsi = lapsiUrl,
2484
+ lahdejarjestelma = old.sourceSystem,
2485
+ alkamis_pvm = old.start,
2486
+ paattymis_pvm = null ,
2487
+ perheen_koko = 2 ,
2488
+ maksun_peruste_koodi = " MP03" ,
2489
+ asiakasmaksu = 10.0 ,
2490
+ palveluseteli_arvo = 0.0 ,
2491
+ huoltajat =
2492
+ listOf (
2493
+ Huoltaja (
2494
+ henkilotunnus = null ,
2495
+ henkilo_oid = " huoltaja_oid_1" ,
2496
+ etunimet = " Test" ,
2497
+ sukunimi = " Person" ,
2498
+ )
2499
+ ),
2500
+ )
2501
+ ),
2502
+ )
2503
+ ),
2504
+ )
2505
+
2506
+ val evakaHenkilo =
2507
+ VardaUpdater .EvakaHenkiloNode (
2508
+ henkilo =
2509
+ Henkilo (
2510
+ etunimet = " Test" ,
2511
+ sukunimi = " Person" ,
2512
+ henkilo_oid = null ,
2513
+ henkilotunnus = " 030320A904N" ,
2514
+ ),
2515
+ lapset =
2516
+ listOf (
2517
+ VardaUpdater .EvakaLapsiNode (
2518
+ lapsi =
2519
+ Lapsi (
2520
+ vakatoimija_oid = new.organizerOid,
2521
+ oma_organisaatio_oid = null ,
2522
+ paos_organisaatio_oid = null ,
2523
+ ),
2524
+ varhaiskasvatuspaatokset =
2525
+ listOf (
2526
+ varhaiskasvatuspaatos(
2527
+ new.unitOid,
2528
+ new.range,
2529
+ hakemus_pvm = new.applicationDate,
2530
+ )
2531
+ ),
2532
+ maksutiedot = listOf (maksutieto(new.range)),
2533
+ )
2534
+ ),
2535
+ )
2536
+
2537
+ val client = DryRunClient ()
2538
+ val updater =
2539
+ VardaUpdater (DateRange (new.range.start, null ), new.organizerOid, new.sourceSystem)
2540
+
2541
+ updater.diffAndUpdate(client, vardaHenkilo, evakaHenkilo)
2542
+
2543
+ val dayBeforeEvaka = new.range.start.minusDays(1 )
2544
+ assertEquals(
2545
+ listOf (
2546
+ " Delete" to old.maksutietoToDeleteUrl,
2547
+ " SetPaattymisPvm" to
2548
+ (old.varhaiskasvatusSuhdeToEndUrl to
2549
+ VardaWriteClient .SetPaattymisPvmRequest (old.sourceSystem, dayBeforeEvaka)),
2550
+ " SetPaattymisPvm" to
2551
+ (old.varhaiskasvatusPaatosToEndUrl to
2552
+ VardaWriteClient .SetPaattymisPvmRequest (old.sourceSystem, dayBeforeEvaka)),
2553
+ " Create" to
2554
+ VardaWriteClient .CreateLapsiRequest (
2555
+ lahdejarjestelma = new.sourceSystem,
2556
+ henkilo = URI .create(" henkilo" ),
2557
+ vakatoimija_oid = new.organizerOid,
2558
+ oma_organisaatio_oid = null ,
2559
+ paos_organisaatio_oid = null ,
2560
+ ),
2561
+ " Create" to
2562
+ VardaWriteClient .CreateVarhaiskasvatuspaatosRequest (
2563
+ lapsi = URI .create(" lapsi_0" ),
2564
+ hakemus_pvm = new.applicationDate,
2565
+ alkamis_pvm = new.range.start,
2566
+ paattymis_pvm = new.range.end,
2567
+ tuntimaara_viikossa = 35.0 ,
2568
+ kokopaivainen_vaka_kytkin = true ,
2569
+ tilapainen_vaka_kytkin = false ,
2570
+ paivittainen_vaka_kytkin = true ,
2571
+ vuorohoito_kytkin = false ,
2572
+ jarjestamismuoto_koodi = " jm01" ,
2573
+ lahdejarjestelma = new.sourceSystem,
2574
+ ),
2575
+ " Create" to
2576
+ VardaWriteClient .CreateVarhaiskasvatussuhdeRequest (
2577
+ lahdejarjestelma = new.sourceSystem,
2578
+ varhaiskasvatuspaatos = URI .create(" varhaiskasvatuspaatos_0" ),
2579
+ toimipaikka_oid = new.unitOid,
2580
+ alkamis_pvm = new.range.start,
2581
+ paattymis_pvm = new.range.end,
2582
+ ),
2583
+ " Create" to
2584
+ VardaWriteClient .CreateMaksutietoRequest (
2585
+ lahdejarjestelma = new.sourceSystem,
2586
+ huoltajat =
2587
+ listOf (
2588
+ Huoltaja (
2589
+ henkilotunnus = " 070644-937X" ,
2590
+ henkilo_oid = null ,
2591
+ etunimet = " Test" ,
2592
+ sukunimi = " Person" ,
2593
+ )
2594
+ ),
2595
+ lapsi = URI .create(" lapsi_0" ),
2596
+ alkamis_pvm = new.range.start,
2597
+ paattymis_pvm = new.range.end,
2598
+ maksun_peruste_koodi = " MP03" ,
2599
+ palveluseteli_arvo = 0.0 ,
2600
+ asiakasmaksu = 0.0 ,
2601
+ perheen_koko = 2 ,
2602
+ ),
2603
+ ),
2604
+ client.operations,
2605
+ )
2606
+ }
2607
+
2397
2608
@Test
2398
2609
fun `write to varda - data created with different source system is not deleted` () {
2399
2610
val otherSourceSystem = " otherSourceSystem"
0 commit comments