@@ -355,6 +355,25 @@ public function testSetManyWithContext(): void
355355 $ this ->assertSame ('ContextName ' , $ this ->settings ->get ('Example.siteName ' , 'environment:test ' ));
356356 }
357357
358+ public function testSetManyStoresDifferentClasses (): void
359+ {
360+ $ this ->settings ->setMany ([
361+ 'Example.siteName ' => 'BatchName ' ,
362+ 'Nada.siteName ' => 'NadaName ' ,
363+ ]);
364+
365+ $ this ->seeInDatabase ($ this ->table , [
366+ 'class ' => 'Tests\Support\Config\Example ' ,
367+ 'key ' => 'siteName ' ,
368+ 'value ' => 'BatchName ' ,
369+ ]);
370+ $ this ->seeInDatabase ($ this ->table , [
371+ 'class ' => 'Nada ' ,
372+ 'key ' => 'siteName ' ,
373+ 'value ' => 'NadaName ' ,
374+ ]);
375+ }
376+
358377 public function testForgetManyDeletesRows (): void
359378 {
360379 $ this ->settings ->setMany ([
@@ -383,6 +402,28 @@ public function testForgetManyDeletesRows(): void
383402 ]);
384403 }
385404
405+ public function testForgetManyDeletesDifferentClasses (): void
406+ {
407+ $ this ->settings ->setMany ([
408+ 'Example.siteName ' => 'BatchName ' ,
409+ 'Nada.siteName ' => 'NadaName ' ,
410+ ]);
411+
412+ $ this ->settings ->forgetMany ([
413+ 'Example.siteName ' ,
414+ 'Nada.siteName ' ,
415+ ]);
416+
417+ $ this ->dontSeeInDatabase ($ this ->table , [
418+ 'class ' => 'Tests\Support\Config\Example ' ,
419+ 'key ' => 'siteName ' ,
420+ ]);
421+ $ this ->dontSeeInDatabase ($ this ->table , [
422+ 'class ' => 'Nada ' ,
423+ 'key ' => 'siteName ' ,
424+ ]);
425+ }
426+
386427 /**
387428 * @see https://github.com/codeigniter4/settings/issues/20
388429 */
@@ -449,6 +490,38 @@ public function testDeferredSetManyPersistsAfterPersist(): void
449490 ]);
450491 }
451492
493+ public function testDeferredSetManyPersistsDifferentClassesAfterPersist (): void
494+ {
495+ $ deferredSettings = $ this ->createDeferredSettings ();
496+
497+ $ deferredSettings ->setMany ([
498+ 'Example.siteName ' => 'DeferredName ' ,
499+ 'Nada.siteName ' => 'DeferredNada ' ,
500+ ]);
501+
502+ $ this ->dontSeeInDatabase ($ this ->table , [
503+ 'class ' => 'Tests\Support\Config\Example ' ,
504+ 'key ' => 'siteName ' ,
505+ ]);
506+ $ this ->dontSeeInDatabase ($ this ->table , [
507+ 'class ' => 'Nada ' ,
508+ 'key ' => 'siteName ' ,
509+ ]);
510+
511+ $ this ->persistDeferredWrites ($ deferredSettings );
512+
513+ $ this ->seeInDatabase ($ this ->table , [
514+ 'class ' => 'Tests\Support\Config\Example ' ,
515+ 'key ' => 'siteName ' ,
516+ 'value ' => 'DeferredName ' ,
517+ ]);
518+ $ this ->seeInDatabase ($ this ->table , [
519+ 'class ' => 'Nada ' ,
520+ 'key ' => 'siteName ' ,
521+ 'value ' => 'DeferredNada ' ,
522+ ]);
523+ }
524+
452525 public function testDeferredForgetManyDeletesAfterPersist (): void
453526 {
454527 $ this ->settings ->setMany ([
@@ -484,6 +557,41 @@ public function testDeferredForgetManyDeletesAfterPersist(): void
484557 ]);
485558 }
486559
560+ public function testDeferredForgetManyDeletesDifferentClassesAfterPersist (): void
561+ {
562+ $ this ->settings ->setMany ([
563+ 'Example.siteName ' => 'BatchName ' ,
564+ 'Nada.siteName ' => 'NadaName ' ,
565+ ]);
566+
567+ $ deferredSettings = $ this ->createDeferredSettings ();
568+
569+ $ deferredSettings ->forgetMany ([
570+ 'Example.siteName ' ,
571+ 'Nada.siteName ' ,
572+ ]);
573+
574+ $ this ->seeInDatabase ($ this ->table , [
575+ 'class ' => 'Tests\Support\Config\Example ' ,
576+ 'key ' => 'siteName ' ,
577+ ]);
578+ $ this ->seeInDatabase ($ this ->table , [
579+ 'class ' => 'Nada ' ,
580+ 'key ' => 'siteName ' ,
581+ ]);
582+
583+ $ this ->persistDeferredWrites ($ deferredSettings );
584+
585+ $ this ->dontSeeInDatabase ($ this ->table , [
586+ 'class ' => 'Tests\Support\Config\Example ' ,
587+ 'key ' => 'siteName ' ,
588+ ]);
589+ $ this ->dontSeeInDatabase ($ this ->table , [
590+ 'class ' => 'Nada ' ,
591+ 'key ' => 'siteName ' ,
592+ ]);
593+ }
594+
487595 public function testDeferredWritesReducesDatabaseQueries (): void
488596 {
489597 // Create new settings instance with deferred writes enabled
0 commit comments