@@ -98,6 +98,52 @@ public function testDeleteBatch(): void
9898 $ this ->dontSeeInDatabase ('user ' , ['email ' => 'ahmadinejad@world.com ' , 'name ' => 'Ahmadinejad ' ]);
9999 }
100100
101+ public function testDeleteBatchConstraintsDate (): void
102+ {
103+ $ table = 'type_test ' ;
104+
105+ // Prepares test data.
106+ $ builder = $ this ->db ->table ($ table );
107+ $ builder ->truncate ();
108+
109+ for ($ i = 1 ; $ i < 4 ; $ i ++) {
110+ $ builder ->insert ([
111+ 'type_varchar ' => 'test ' . $ i ,
112+ 'type_char ' => 'char ' ,
113+ 'type_text ' => 'text ' ,
114+ 'type_smallint ' => 32767 ,
115+ 'type_integer ' => 2_147_483_647 ,
116+ 'type_bigint ' => 9_223_372_036_854_775_807 ,
117+ 'type_float ' => 10.1 ,
118+ 'type_numeric ' => 123.23 ,
119+ 'type_date ' => '2023-12-0 ' . $ i ,
120+ 'type_datetime ' => '2023-12-21 12:00:00 ' ,
121+ ]);
122+ }
123+
124+ $ data = [
125+ ['date ' => '2023-12-01 ' , 'unused ' => 'You can have fields you dont use ' ],
126+ ['date ' => '2023-12-02 ' , 'unused ' => 'You can have fields you dont use ' ],
127+ ];
128+ $ builder = $ this ->db ->table ($ table )
129+ ->setData ($ data , null , 'data ' )
130+ ->onConstraint (['type_date ' => 'date ' ]);
131+ $ builder ->deleteBatch ();
132+
133+ $ this ->dontSeeInDatabase (
134+ $ table ,
135+ ['type_date ' => '2023-12-01 ' , 'type_varchar ' => 'test1 ' ]
136+ );
137+ $ this ->dontSeeInDatabase (
138+ $ table ,
139+ ['type_date ' => '2023-12-02 ' , 'type_varchar ' => 'test2 ' ]
140+ );
141+ $ this ->seeInDatabase (
142+ $ table ,
143+ ['type_date ' => '2023-12-03 ' , 'type_varchar ' => 'test3 ' ]
144+ );
145+ }
146+
101147 public function testDeleteBatchWithQuery (): void
102148 {
103149 $ this ->forge = Database::forge ($ this ->DBGroup );
0 commit comments