/** * Setting properties and outputting json. * * @depends testJsonRequired */ public function testSetters() { $obj = new Document(1, 'title', 'en', new Layout(7, 1024)); $obj->addComponent(new Body('body text'))->addComponentTextStyle('default', new ComponentTextStyle()); $expected = '{"version":"' . $obj->getVersion() . '","identifier":"1","title":"title","language":"en","layout":{"columns":7,"width":1024},"components":[{"text":"body text","role": "body"}],"componentTextStyles":{"default":{}}}'; $this->assertJsonStringEqualsJsonString($expected, $obj->json()); // Optional properties. $expected = '{"version":"' . $obj->getVersion() . '","identifier":"1","title":"title","subtitle":"subtitle","language":"en","layout":{"columns":7,"width":1024},"components":[{"text":"body text","role": "body"}],"componentTextStyles":{"default":{}}}'; $obj->setSubtitle('subtitle'); $this->assertJsonStringEqualsJsonString($expected, $obj->json()); // Test validation. $obj = new Document(1, 'title', 'en', new Layout(7, 1024)); $this->assertEquals(FALSE, $obj->json()); }