/** * Tests if document JSON serialization is correct. */ public function testSerialize() { $date = new \DateTime(); $dateString = $date->format('Y-m-d H:i:s'); $translation = new Translation(); $translation->setCreatedAt($date); $translation->setUpdatedAt($date); $translation->setDomain('foo_domain'); $message = new Message(); $message->setLocale('en'); $message->setMessage('foo_message'); $message->setCreatedAt($date); $message->setUpdatedAt($date); $translation->addMessage($message); $expectedJson = '{"id":"10b9bf5859bce4052de0dac6c01324679d21cad0","domain":"foo_domain",' . '"tags":[],"messages":{"en":{"message":"foo_message","status":"fresh",' . "\"createdAt\":\"{$dateString}\",\"updatedAt\":\"{$dateString}\"}},\"key\":null,\"path\":null," . "\"format\":null,\"createdAt\":\"{$dateString}\",\"updatedAt\":\"{$dateString}\"}"; $this->assertEquals($expectedJson, json_encode($translation), 'JSON strings should be equal'); }