示例#1
0
 public function testNested()
 {
     $schema = '{
         "properties": {
             "prop1": {},
             "prop2": {
                 "inner1": {
                     "items": {
                         "$ref": "#/definitions/location"
                     }
                 },
                 "inner2": {}
             },
             "prop3": {},
             "prop4": {}
         },
         "definitions": {
             "location": {
                 "properties": {
                     "lat": {"type": "number"},
                     "lng": {"type": "number"}
                 }
             }
         }
     }';
     $data = '{
         "prop4": null,
         "prop5": 5,
         "prop2": {
             "inner2": 2,
             "inner1": [
                 {"lng": 120, "lat": 50},
                 {"lat": 27, "lng": 3}
             ]
         },
         "prop1": "",
         "prop3": []
     }';
     $expected = '{
         "prop1": "",
         "prop2": {
             "inner1": [
                 {"lat": 50, "lng": 120},
                 {"lat": 27, "lng": 3}
             ],
             "inner2": 2
         },
         "prop3": [],
         "prop4": null,
         "prop5": 5
     }';
     $schema = $this->getSchemaObject($schema);
     $data = $this->fromJson($data);
     $expected = $this->fromJson($expected);
     $result = Utils::dataOrder($data, $schema);
     $this->assertEquals($expected, $result);
 }