schema = new FsvSchema([ "string" => [5], "number" => [5, "number"], "date6" => [6, "date"], "date8" => [8, "date"], ]); } /** @var FsvSchema */ private $schema; function testParse() { $schema = $this->schema; $row = $schema->parseRow(" "); self::assertSame("", $row["string"]); self::assertFalse($row["number"]); self::assertFalse($row["date6"]); self::assertFalse($row["date8"]); $row = $schema->parseRow("ABC 0001212052312052023"); self::assertSame("ABC", $row["string"]); self::assertSame(12, $row["number"]); self::assertSame("12/05/2023", $row["date6"]); self::assertSame("12/05/2023", $row["date8"]); # si nombre ou date invalides, ne pas modifier $row = $schema->parseRow(" ABC00A1212AB2312AB2023"); self::assertSame(" ABC", $row["string"]); self::assertSame("00A12", $row["number"]); self::assertSame("12AB23", $row["date6"]); self::assertSame("12AB2023", $row["date8"]); } function testFormat() { $schema = $this->schema; self::assertSame(" ", $schema->formatRow([ "string" => null, "number" => null, "date6" => null, "date8" => null, ])); self::assertSame(" ", $schema->formatRow([ "string" => false, "number" => false, "date6" => false, "date8" => false, ])); self::assertSame(" ", $schema->formatRow([ "string" => "", "number" => "", "date6" => "", "date8" => "", ])); self::assertSame("ABC 0001212052312052023", $schema->formatRow([ "string" => "ABC", "number" => 12, "date6" => "12/05/2023", "date8" => "12/05/2023", ])); self::assertSame(" ABC00A1212AB2312AB2023", $schema->formatRow([ "string" => " ABC", "number" => "A12", "date6" => "12AB23", "date8" => "12AB2023", ])); self::assertSame("ABCDE1234512AB2312AB2023", $schema->formatRow([ "string" => "ABCDEFGHIJ", "number" => 123456789, "date6" => "12AB23XYZT", "date8" => "12AB2023XYZT", ])); } }