@@ -89,6 +89,214 @@ class NekkuIntegrationTest : FullApplicationTest(resetDbBeforeEach = true) {
89
89
}
90
90
}
91
91
92
+ @Test
93
+ fun `Nekku customer sync with multiple customer types adds every type to database` () {
94
+ val client =
95
+ TestNekkuClient (
96
+ customers =
97
+ listOf (
98
+ NekkuApiCustomer (
99
+ " 2501K6089" ,
100
+ " Ahvenojan päiväkoti" ,
101
+ " Varhaiskasvatus" ,
102
+ listOf (
103
+ CustomerApiType (
104
+ listOf (
105
+ NekkuCustomerApiWeekday .MONDAY ,
106
+ NekkuCustomerApiWeekday .TUESDAY ,
107
+ NekkuCustomerApiWeekday .WEDNESDAY ,
108
+ NekkuCustomerApiWeekday .THURSDAY ,
109
+ NekkuCustomerApiWeekday .FRIDAY ,
110
+ ),
111
+ " 100-lasta" ,
112
+ ),
113
+ CustomerApiType (
114
+ listOf (
115
+ NekkuCustomerApiWeekday .SATURDAY ,
116
+ NekkuCustomerApiWeekday .SUNDAY ,
117
+ NekkuCustomerApiWeekday .WEEKDAYHOLIDAY ,
118
+ ),
119
+ " Palvelu-Ovelle-viikonloppu" ,
120
+ ),
121
+ ),
122
+ ),
123
+ NekkuApiCustomer (
124
+ " 2501K0000" ,
125
+ " Ylikylän päiväkoti" ,
126
+ " Varhaiskasvatus" ,
127
+ listOf (
128
+ CustomerApiType (
129
+ listOf (
130
+ NekkuCustomerApiWeekday .MONDAY ,
131
+ NekkuCustomerApiWeekday .TUESDAY ,
132
+ NekkuCustomerApiWeekday .WEDNESDAY ,
133
+ NekkuCustomerApiWeekday .THURSDAY ,
134
+ NekkuCustomerApiWeekday .FRIDAY ,
135
+ ),
136
+ " 100-lasta" ,
137
+ ),
138
+ CustomerApiType (
139
+ listOf (
140
+ NekkuCustomerApiWeekday .SATURDAY ,
141
+ NekkuCustomerApiWeekday .SUNDAY ,
142
+ NekkuCustomerApiWeekday .WEEKDAYHOLIDAY ,
143
+ ),
144
+ " Palvelu-Ovelle-viikonloppu" ,
145
+ ),
146
+ ),
147
+ ),
148
+ )
149
+ )
150
+ fetchAndUpdateNekkuCustomers(client, db, asyncJobRunner, now)
151
+ db.transaction { tx ->
152
+ val customers = tx.getNekkuCustomers()
153
+ assertEquals(
154
+ listOf (
155
+ NekkuCustomer (
156
+ number = " 2501K0000" ,
157
+ name = " Ylikylän päiväkoti" ,
158
+ group = " Varhaiskasvatus" ,
159
+ listOf (
160
+ CustomerType (
161
+ listOf (
162
+ NekkuCustomerWeekday .MONDAY ,
163
+ NekkuCustomerWeekday .TUESDAY ,
164
+ NekkuCustomerWeekday .WEDNESDAY ,
165
+ NekkuCustomerWeekday .THURSDAY ,
166
+ NekkuCustomerWeekday .FRIDAY ,
167
+ ),
168
+ " 100-lasta" ,
169
+ ),
170
+ CustomerType (
171
+ listOf (
172
+ NekkuCustomerWeekday .SATURDAY ,
173
+ NekkuCustomerWeekday .SUNDAY ,
174
+ NekkuCustomerWeekday .WEEKDAYHOLIDAY ,
175
+ ),
176
+ " Palvelu-Ovelle-viikonloppu" ,
177
+ ),
178
+ ),
179
+ ),
180
+ NekkuCustomer (
181
+ number = " 2501K6089" ,
182
+ name = " Ahvenojan päiväkoti" ,
183
+ group = " Varhaiskasvatus" ,
184
+ listOf (
185
+ CustomerType (
186
+ listOf (
187
+ NekkuCustomerWeekday .MONDAY ,
188
+ NekkuCustomerWeekday .TUESDAY ,
189
+ NekkuCustomerWeekday .WEDNESDAY ,
190
+ NekkuCustomerWeekday .THURSDAY ,
191
+ NekkuCustomerWeekday .FRIDAY ,
192
+ ),
193
+ " 100-lasta" ,
194
+ ),
195
+ CustomerType (
196
+ listOf (
197
+ NekkuCustomerWeekday .SATURDAY ,
198
+ NekkuCustomerWeekday .SUNDAY ,
199
+ NekkuCustomerWeekday .WEEKDAYHOLIDAY ,
200
+ ),
201
+ " Palvelu-Ovelle-viikonloppu" ,
202
+ ),
203
+ ),
204
+ ),
205
+ ),
206
+ customers,
207
+ )
208
+ }
209
+ }
210
+
211
+ @Test
212
+ fun `Nekku customer sync with different customer types and same weekdays does sync` () {
213
+ val client =
214
+ TestNekkuClient (
215
+ customers =
216
+ listOf (
217
+ NekkuApiCustomer (
218
+ " 2501K6089" ,
219
+ " Ahvenojan päiväkoti" ,
220
+ " Varhaiskasvatus" ,
221
+ listOf (
222
+ CustomerApiType (
223
+ listOf (
224
+ NekkuCustomerApiWeekday .MONDAY ,
225
+ NekkuCustomerApiWeekday .TUESDAY ,
226
+ NekkuCustomerApiWeekday .WEDNESDAY ,
227
+ NekkuCustomerApiWeekday .THURSDAY ,
228
+ NekkuCustomerApiWeekday .FRIDAY ,
229
+ ),
230
+ " 100-lasta" ,
231
+ ),
232
+ CustomerApiType (
233
+ listOf (
234
+ NekkuCustomerApiWeekday .MONDAY ,
235
+ NekkuCustomerApiWeekday .TUESDAY ,
236
+ NekkuCustomerApiWeekday .WEDNESDAY ,
237
+ NekkuCustomerApiWeekday .THURSDAY ,
238
+ NekkuCustomerApiWeekday .FRIDAY ,
239
+ ),
240
+ " palvelu-ovelle-arki" ,
241
+ ),
242
+ CustomerApiType (
243
+ listOf (
244
+ NekkuCustomerApiWeekday .SATURDAY ,
245
+ NekkuCustomerApiWeekday .SUNDAY ,
246
+ NekkuCustomerApiWeekday .WEEKDAYHOLIDAY ,
247
+ ),
248
+ " Palvelu-Ovelle-viikonloppu" ,
249
+ ),
250
+ ),
251
+ )
252
+ )
253
+ )
254
+ fetchAndUpdateNekkuCustomers(client, db, asyncJobRunner, now)
255
+ db.transaction { tx ->
256
+ val customers = tx.getNekkuCustomers()
257
+ assertEquals(
258
+ listOf (
259
+ NekkuCustomer (
260
+ number = " 2501K6089" ,
261
+ name = " Ahvenojan päiväkoti" ,
262
+ group = " Varhaiskasvatus" ,
263
+ listOf (
264
+ CustomerType (
265
+ listOf (
266
+ NekkuCustomerWeekday .MONDAY ,
267
+ NekkuCustomerWeekday .TUESDAY ,
268
+ NekkuCustomerWeekday .WEDNESDAY ,
269
+ NekkuCustomerWeekday .THURSDAY ,
270
+ NekkuCustomerWeekday .FRIDAY ,
271
+ ),
272
+ " 100-lasta" ,
273
+ ),
274
+ CustomerType (
275
+ listOf (
276
+ NekkuCustomerWeekday .MONDAY ,
277
+ NekkuCustomerWeekday .TUESDAY ,
278
+ NekkuCustomerWeekday .WEDNESDAY ,
279
+ NekkuCustomerWeekday .THURSDAY ,
280
+ NekkuCustomerWeekday .FRIDAY ,
281
+ ),
282
+ " palvelu-ovelle-arki" ,
283
+ ),
284
+ CustomerType (
285
+ listOf (
286
+ NekkuCustomerWeekday .SATURDAY ,
287
+ NekkuCustomerWeekday .SUNDAY ,
288
+ NekkuCustomerWeekday .WEEKDAYHOLIDAY ,
289
+ ),
290
+ " Palvelu-Ovelle-viikonloppu" ,
291
+ ),
292
+ ),
293
+ )
294
+ ),
295
+ customers,
296
+ )
297
+ }
298
+ }
299
+
92
300
@Test
93
301
fun `Nekku customer lists only 'Varhaiskasvatus'-data` () {
94
302
val client =
0 commit comments