/** * Test args json serialization. */ public function testJsonSerialize() { $arg = new Args(); $arg->setCommand('cmd')->setOpt('opt1', 123)->setOpt('opt2', 456)->setMeta('met', 'a')->setArgs([1, 2, 3]); $json = json_encode($arg); $this->assertEquals(['command' => 'cmd', 'opts' => ['opt1' => 123, 'opt2' => 456], 'args' => [1, 2, 3], 'meta' => ['met' => 'a']], json_decode($json, true)); }