@@ -194,6 +194,102 @@ public function createConfigDataProvider(): array
194
194
];
195
195
}
196
196
197
+ /**
198
+ * @param array $options
199
+ * @param array $expectedResult
200
+ * @dataProvider updateConfigDataProvider
201
+ */
202
+ public function testUpdateConfig (array $ options , array $ expectedResult )
203
+ {
204
+ $ valueMap = [
205
+ [ 'lock/config/prefix ' , null , 'saved_prefix ' ],
206
+ [ 'lock/provider ' , 'db ' , 'db ' ]
207
+ ];
208
+ $ this ->deploymentConfigMock
209
+ ->expects ($ this ->any ())
210
+ ->method ('get ' )
211
+ ->willReturnMap ($ valueMap );
212
+ $ data = $ this ->lockConfigOptionsList ->createConfig ($ options , $ this ->deploymentConfigMock );
213
+ $ this ->assertInstanceOf (ConfigData::class, $ data );
214
+ $ this ->assertTrue ($ data ->isOverrideWhenSave ());
215
+ $ this ->assertSame ($ expectedResult , $ data ->getData ());
216
+ }
217
+
218
+ /**
219
+ * @return array
220
+ * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
221
+ */
222
+ public function updateConfigDataProvider (): array
223
+ {
224
+ return [
225
+ 'Check existent value for lock-db-prefix is not erased with no parameter specified ' => [
226
+ 'options ' => [],
227
+ 'expectedResult ' => [
228
+ 'lock ' => [
229
+ 'provider ' => LockBackendFactory::LOCK_DB ,
230
+ 'config ' => [
231
+ 'prefix ' => 'saved_prefix ' ,
232
+ ],
233
+ ],
234
+ ],
235
+ ],
236
+ 'Check lock-db-prefix options overrides existing value when parameter is specified ' => [
237
+ 'options ' => [
238
+ LockConfigOptionsList::INPUT_KEY_LOCK_PROVIDER => LockBackendFactory::LOCK_DB ,
239
+ LockConfigOptionsList::INPUT_KEY_LOCK_DB_PREFIX => 'new_prefix '
240
+ ],
241
+ 'expectedResult ' => [
242
+ 'lock ' => [
243
+ 'provider ' => LockBackendFactory::LOCK_DB ,
244
+ 'config ' => [
245
+ 'prefix ' => 'new_prefix ' ,
246
+ ],
247
+ ],
248
+ ],
249
+ ],
250
+ 'Check lock-db-prefix options overrides existing value when only this parameter is specified ' => [
251
+ 'options ' => [
252
+ LockConfigOptionsList::INPUT_KEY_LOCK_DB_PREFIX => 'new_prefix '
253
+ ],
254
+ 'expectedResult ' => [
255
+ 'lock ' => [
256
+ 'provider ' => LockBackendFactory::LOCK_DB ,
257
+ 'config ' => [
258
+ 'prefix ' => 'new_prefix ' ,
259
+ ],
260
+ ],
261
+ ],
262
+ ],
263
+ 'Check that lock-db-prefix value is not erased when when only lock-provider is specified as db ' => [
264
+ 'options ' => [
265
+ LockConfigOptionsList::INPUT_KEY_LOCK_PROVIDER => LockBackendFactory::LOCK_DB ,
266
+ ],
267
+ 'expectedResult ' => [
268
+ 'lock ' => [
269
+ 'provider ' => LockBackendFactory::LOCK_DB ,
270
+ 'config ' => [
271
+ 'prefix ' => 'saved_prefix ' ,
272
+ ],
273
+ ],
274
+ ],
275
+ ],
276
+ 'Check specific db lock prefix empty options overrides existing value ' => [
277
+ 'options ' => [
278
+ LockConfigOptionsList::INPUT_KEY_LOCK_PROVIDER => LockBackendFactory::LOCK_DB ,
279
+ LockConfigOptionsList::INPUT_KEY_LOCK_DB_PREFIX => ''
280
+ ],
281
+ 'expectedResult ' => [
282
+ 'lock ' => [
283
+ 'provider ' => LockBackendFactory::LOCK_DB ,
284
+ 'config ' => [
285
+ 'prefix ' => '' ,
286
+ ],
287
+ ],
288
+ ],
289
+ ],
290
+ ];
291
+ }
292
+
197
293
/**
198
294
* @param array $options
199
295
* @param array $expectedResult
0 commit comments