Example #1
0
 public function testSerializeWithTypeCollectionIdentifiedObject()
 {
     $cityPalaiseau = new City();
     $cityPalaiseau->setName('Palaiseau');
     $cityParis = new City();
     $cityParis->setName('Paris');
     $country = new Country();
     $country->setName('France');
     $country->citiesAre([$cityPalaiseau, $cityParis]);
     $configuration = new Configuration();
     $configuration->identifierAttribute('type');
     $configurationObject = new Configuration\Object(new ClassName(Country::class));
     $configurationObject->attributeUseMethod('name', 'setName', 'getName')->attributeUseCollectionIdentifiedObject('cities', 'citiesAre', 'getCities')->registerToConfigurationWithIdentifier($configuration, 'country');
     $configurationObject = new Configuration\Object(new ClassName(City::class));
     $configurationObject->attributeUseMethod('name', 'setName', 'getName')->registerToConfigurationWithIdentifier($configuration, 'city');
     $this->given($this->newTestedInstance($configuration))->string($this->testedInstance->serialize($country))->isIdenticalTo('{"type":"country","name":"France","cities":[{"type":"city","name":"Palaiseau"},{"type":"city","name":"Paris"}]}');
 }
Example #2
0
 public function testDeserializeForIdentifiedObjectShouldThrowExceptionWhenJsonDontHaveIdentifier()
 {
     $configuration = new Configuration();
     $configuration->identifierAttribute('type');
     $configurationObject = new Configuration\Object(new ClassName(City::class));
     $configurationObject->attributeUseMethod('name', 'setName', 'getName')->registerToConfigurationWithIdentifier($configuration, 'city');
     $this->given($this->newTestedInstance($configuration))->exception(function () {
         $this->testedInstance->deserialize('{"name": "Palaiseau"}');
     })->isInstanceOf(MissingIdentifierAttribute::class);
 }