/** * @expectedException Tarsana\Syntax\Exceptions\DumpException */ public function test_dump_wrong_boolean() { $syntax = S::boolean(); $this->assertFalse($syntax->canDump('boolean')); $syntax->dump('boolean'); }
public function test_dump_object() { $this->checkDump('person{:,name,#age,vip?,friends[,]}', S::obj(['name' => S::string(), 'age' => S::number(), 'vip' => S::boolean(), 'friends' => S::arr()->description(',')], ':')->description('person')); $this->checkDump('[person{:,name,#age,friends[,]}]', S::obj(['name' => S::string(), 'age' => S::number(), 'friends' => S::arr()->description(',')], ':', '')->description('person')); $this->checkDump('{:,}', S::obj([], ':')); }
/** * @expectedException Tarsana\Syntax\Exceptions\DumpException */ public function test_dump_wrong_field() { $syntax = S::obj(['name' => S::string(), 'age' => S::number(), 'is_programmer' => S::boolean(), 'friends' => S::arr()]); $object = (object) ['name' => 'Foo', 'age' => 'weird', 'is_programmer' => false, 'friends' => ['Bar', 'Baz']]; $this->assertFalse($syntax->canDump($object)); $syntax->dump($object); }
protected function parseBoolean($text) { $default = null; if (F\head($text) == '[' && F\last($text) == ']') { $text = F\init(F\tail($text)); $default = ''; } return S::boolean($default, F\init($text)); }