/**
  * @param string $identifier
  * @return mixed
  */
 public function get($identifier)
 {
     $subject = parent::get($identifier);
     if ($subject instanceof TemplateObjectAccessInterface) {
         $subject = $subject->objectAccess();
     }
     return $subject;
 }
 /**
  * @param string $identifier
  * @return boolean
  */
 public function exists($identifier)
 {
     return $identifier === 'incrementer' || $identifier === 'random' || parent::exists($identifier);
 }
 /**
  * @test
  */
 public function testSleepReturnsExpectedPropertyNames()
 {
     $subject = new StandardVariableProvider();
     $properties = $subject->__sleep();
     $this->assertContains('variables', $properties);
 }
 /**
  * @test
  */
 public function testGetScopeCopyReturnsCopyWithSettings()
 {
     $subject = new StandardVariableProvider(['foo' => 'bar', 'settings' => ['baz' => 'bam']]);
     $copy = $subject->getScopeCopy(['bar' => 'foo']);
     $this->assertAttributeEquals(['settings' => ['baz' => 'bam'], 'bar' => 'foo'], 'variables', $copy);
 }