@@ -150,4 +150,43 @@ public function testOnCreateFailedWithWrongParams()
150150 $ converter ->filtername = CharsetConverter::FILTERNAME .'.foo/bar ' ;
151151 $ this ->assertFalse ($ converter ->onCreate ());
152152 }
153+
154+ /**
155+ * @covers ::convert
156+ * @covers ::encodeField
157+ *
158+ * @dataProvider converterProvider
159+ * @param array $record
160+ * @param array $expected
161+ */
162+ public function testConvertOnlyStringField (array $ record , array $ expected )
163+ {
164+ $ converter = (new CharsetConverter ())
165+ ->inputEncoding ('iso-8859-15 ' )
166+ ->outputEncoding ('utf-8 ' );
167+ $ res = $ converter ->convert ([$ record ]);
168+ $ this ->assertSame ($ expected , $ res [0 ]);
169+ }
170+
171+ public function converterProvider ()
172+ {
173+ return [
174+ 'only numeric values ' => [
175+ 'record ' => [1 , 2 , 3 ],
176+ 'expected ' => [1 , 2 , 3 ],
177+ ],
178+ 'only string values ' => [
179+ 'record ' => ['1 ' , '2 ' , '3 ' ],
180+ 'expected ' => ['1 ' , '2 ' , '3 ' ],
181+ ],
182+ 'mixed values ' => [
183+ 'record ' => [1 , '2 ' , 3 ],
184+ 'expected ' => [1 , '2 ' , 3 ],
185+ ],
186+ 'mixed offset ' => [
187+ 'record ' => [1 => 1 , '2 ' => '2 ' , 3 => 3 ],
188+ 'expected ' => [1 => 1 , '2 ' => '2 ' , 3 => 3 ],
189+ ],
190+ ];
191+ }
153192}
0 commit comments