/**
  * @param $dataString
  * @return mixed
  */
 public static function loadFromString($dataString)
 {
     $data = json_decode($dataString);
     $dataSource = new JsonDataSource();
     $dataSource->process($data, $dataSource);
     return $dataSource;
 }
 /**
  *
  */
 public function testJson_ParsesJson_BuildsCorrectProxy()
 {
     $filePath = realpath(dirname(__FILE__)) . '/sample.json';
     $dataSource = JsonDataSource::loadFromFile($filePath);
     $this->assertEquals('0001', $dataSource->id());
     $this->assertEquals('donut', $dataSource->type());
     $this->assertTrue($dataSource->batters->batter->isArray());
     $this->assertEquals('1001', $dataSource->batters->batter[0]->id());
     $this->assertEquals('Blueberry', $dataSource->batters->batter[2]->type());
     $this->assertTrue($dataSource->topping->isArray());
     $this->assertEquals('Powdered Sugar', $dataSource->topping[3]->type());
 }