@@ -162,17 +162,28 @@ public function testToCamelCase(): void
162162 $ this ->assertEquals ('ひらがなHepimiz ' , $ inflector ->toCamelCase ('ひらがな_hepimiz ' ));
163163 }
164164
165- public function testToSnakeCase (): void
165+ public function dataToSnakeCase (): array
166+ {
167+ return [
168+ [['input ' => 'userName ' ], 'user_name ' ],
169+ [['input ' => 'travelSGuide ' ], 'travel_s_guide ' ],
170+ [['input ' => 'ひらがなHepimiz ' ], 'ひらがな_hepimiz ' ],
171+ [['input ' => 'Let \'s say "Hello, World!" yii 3 😂 ' ], 'let_s_say_hello_world_yii_3 ' ],
172+ [['input ' => 'HTML ' ], 'h_t_m_l ' ],
173+ [['input ' => 'createMyDTO ' ], 'create_my_d_t_o ' ],
174+ [['input ' => 'HTML ' , 'strict ' => false ], 'html ' ],
175+ [['input ' => 'createMyDTO ' , 'strict ' => false ], 'create_my_dto ' ],
176+ ];
177+ }
178+
179+ /**
180+ * @dataProvider dataToSnakeCase
181+ */
182+ public function testToSnakeCase (array $ arguments , string $ expectedOutput ): void
166183 {
167184 $ inflector = new Inflector ();
168185
169- $ this ->assertEquals ('user_name ' , $ inflector ->toSnakeCase ('userName ' ));
170- $ this ->assertEquals ('travel_s_guide ' , $ inflector ->toSnakeCase ('travelSGuide ' ));
171- $ this ->assertEquals ('ひらがな_hepimiz ' , $ inflector ->toSnakeCase ('ひらがなHepimiz ' ));
172- $ this ->assertEquals (
173- 'let_s_say_hello_world_yii_3 ' ,
174- $ inflector ->toSnakeCase ('Let \'s say "Hello, World!" yii 3 😂 ' )
175- );
186+ $ this ->assertEquals ($ expectedOutput , $ inflector ->toSnakeCase (...$ arguments ));
176187 }
177188
178189 public function testToTable (): void
0 commit comments