function testUnserializeComplexMessage() { $xml = new SimpleXMLElement('<root></root>'); $p = $xml->addChild('person'); $p->addChild('name', 'John Doe'); $p->addChild('id', 2051); $p->addChild('email', '*****@*****.**'); $p = $p->addChild('phone'); $p->addChild('number', '1231231212'); $p->addChild('type', 1); $p = $xml->addChild('person'); $p->addChild('name', 'Iván Montes'); $p->addChild('id', 23); $p->addChild('email', '*****@*****.**'); $p = $p->addChild('phone'); $p->addChild('number', '3493123123'); $p->addChild('type', 2); $complex = Protobuf::decode('Tests\\AddressBook', $xml->asXML()); $this->assertEquals(count($complex->person), 2); $this->assertEquals($complex->getPerson(0)->name, 'John Doe'); $this->assertEquals($complex->getPerson(1)->name, 'Iván Montes'); $this->assertEquals($complex->getPerson(1)->getPhone(0)->number, '3493123123'); }
function testUnserializeComplexMessage() { $json = '{ "1":[ { "1":"John Doe", "2":2051, "3":"*****@*****.**", "4":[ {"1":"1231231212","2":1}, {"1":"55512321312","2":0} ] }, { "1":"Iv\\u00e1n Montes", "2":23, "3":"*****@*****.**", "4":[{"1":"3493123123","2":2}] } ] }'; $json = preg_replace('/\\n\\s*/', '', $json); $complex = Protobuf::decode('Tests\\AddressBook', $json); $this->assertEquals(count($complex->person), 2); $this->assertEquals($complex->getPerson(0)->name, 'John Doe'); $this->assertEquals($complex->getPerson(1)->name, 'Iván Montes'); $this->assertEquals($complex->getPerson(0)->getPhone(1)->number, '55512321312'); }
/** * @expectedException BadMethodCallException */ function testUnserializeNotImplemented() { $txt = "foo: \"FOO\"\nbar: \"BAR\"\n"; $simple = Protobuf::decode('Tests\\Simple', $txt); }