protected function buildClasses(array $classes)
 {
     $this->hoistingClass->setClassesConfig($classes);
     foreach ($classes as $className => $classMeta) {
         $classOutline = $this->hoistingClass->generate($className);
         $this->baseSchema->addTypeOutline($classOutline);
     }
 }
 public function testProperHandlingOfCircularReferences()
 {
     $this->object->setClassesConfig(array('User' => array('properties' => array('admin' => array('type' => 'Admin'))), 'Admin' => array('properties' => array('user' => array('type' => 'User')))));
     $result = $this->object->generate('User');
     $this->assertInstanceOf('Wookieb\\ZorroDataSchema\\SchemaOutline\\TypeOutline\\ClassOutline', $result);
     /** @var ClassOutline $result */
     $properties = $result->getProperties();
     $admin = $properties['admin'];
     $properties = $admin->getType()->getProperties();
     $user = $properties['user'];
     $this->assertSame($result, $user->getType());
 }