88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\mapper\fsv;
 | |
| 
 | |
| use nur\t\TestCase;
 | |
| 
 | |
| class FsvReaderTest extends TestCase {
 | |
|   const SCHEMA = [
 | |
|     "nom" => [10, "string"],
 | |
|     "prenom" => [10, "string"],
 | |
|     "date_nai" => [8, "date"],
 | |
|     "exact" => [6, "number", 2],
 | |
|     "approx" => [6, "number"],
 | |
|   ];
 | |
| 
 | |
|   function testReader1() {
 | |
|     $inf = fopen("php://memory", "w+b");
 | |
|     fwrite($inf, <<<EOT
 | |
| Clain     Jephte    29061975001500000153
 | |
|           Francoise 29051959
 | |
| EOT
 | |
|     );
 | |
| 
 | |
|     rewind($inf);
 | |
|     $reader = new FsvReader($inf, self::SCHEMA);
 | |
|     $result = iterator_to_array($reader);
 | |
|     self::assertSame([
 | |
|       [
 | |
|         "nom" => "Clain",
 | |
|         "prenom" => "Jephte",
 | |
|         "date_nai" => "29/06/1975",
 | |
|         "exact" => 15.0,
 | |
|         "approx" => 153,
 | |
|       ],
 | |
|       [
 | |
|         "nom" => "",
 | |
|         "prenom" => "Francoise",
 | |
|         "date_nai" => "29/05/1959",
 | |
|         "exact" => false,
 | |
|         "approx" => false,
 | |
|       ],
 | |
|     ], $result);
 | |
| 
 | |
|     rewind($inf);
 | |
|     $reader = new FsvReader($inf, self::SCHEMA);
 | |
|     $reader->setOutputSeq(true);
 | |
|     $result = iterator_to_array($reader);
 | |
|     self::assertSame([
 | |
|       ["nom", "prenom", "date_nai", "exact", "approx"],
 | |
|       ["Clain", "Jephte", "29/06/1975", 15.0, 153],
 | |
|       ["", "Francoise", "29/05/1959", false, false],
 | |
|     ], $result);
 | |
|   }
 | |
| 
 | |
|   function testReader2() {
 | |
|     $inf = fopen(__DIR__."/latin1.fsv", "rb");
 | |
| 
 | |
|     rewind($inf);
 | |
|     $reader = new FsvReader($inf, self::SCHEMA);
 | |
|     $result = iterator_to_array($reader);
 | |
|     self::assertSame([
 | |
|       [
 | |
|         "nom" => "Clain",
 | |
|         "prenom" => "Jephté",
 | |
|         "date_nai" => "29/06/1975",
 | |
|         "exact" => 15.0,
 | |
|         "approx" => 153,
 | |
|       ],
 | |
|       [
 | |
|         "nom" => "",
 | |
|         "prenom" => "Francoise",
 | |
|         "date_nai" => "29/05/1959",
 | |
|         "exact" => false,
 | |
|         "approx" => false,
 | |
|       ],
 | |
|     ], $result);
 | |
| 
 | |
|     rewind($inf);
 | |
|     $reader = new FsvReader($inf, self::SCHEMA);
 | |
|     $reader->setOutputSeq(true);
 | |
|     $result = iterator_to_array($reader);
 | |
|     self::assertSame([
 | |
|       ["nom", "prenom", "date_nai", "exact", "approx"],
 | |
|       ["Clain", "Jephté", "29/06/1975", 15.0, 153],
 | |
|       ["", "Francoise", "29/05/1959", false, false],
 | |
|     ], $result);
 | |
|   }
 | |
| }
 |