/**
  * @return self
  * @codeCoverageIgnore
  */
 public static function getInstance()
 {
     if (!self::$instance) {
         self::$instance = new self(VisitorFlyweight::getInstance());
     }
     return self::$instance;
 }
 /**
  * Get singleton
  * @return StrictResponseParser
  */
 public static function getInstance()
 {
     if (!static::$instance) {
         static::$instance = new StrictResponseParser(VisitorFlyweight::getInstance(), true);
     }
     return static::$instance;
 }
 public function testHasRequestSerializer()
 {
     $operation = new OperationCommand();
     $a = $operation->getRequestSerializer();
     $b = new DefaultRequestSerializer(VisitorFlyweight::getInstance());
     $operation->setRequestSerializer($b);
     $this->assertNotSame($a, $operation->getRequestSerializer());
 }
 public function testCanInjectModelSchemaIntoModels()
 {
     $parser = new OperationResponseParser(VisitorFlyweight::getInstance(), true);
     $desc = $this->getDescription();
     $operation = $desc->getOperation('test');
     $op = new OperationCommand(array(), $operation);
     $op->setResponseParser($parser)->setClient(new Client());
     $op->prepare()->setResponse(new Response(200, array('Content-Type' => 'application/json'), '{"baz":"bar","enigma":"123"}'), true);
     $result = $op->execute();
     $this->assertSame($result->getStructure(), $desc->getModel('Foo'));
 }
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage No request visitor has been mapped for foo
  */
 public function testThrowsExceptionWhenRetrievingUnknownVisitor()
 {
     VisitorFlyweight::getInstance()->getRequestVisitor('foo');
 }
 /**
  * Accepts a VisitorFlyweight for LocationVisitors
  *
  * @param Desk\Relationship\Resource\EmbeddedCommandFactoryInterface $factory
  * @param Guzzle\Service\Command\LocationVisitor\VisitorFlyweight    $visitors
  */
 public function __construct(EmbeddedCommandFactoryInterface $factory = null, VisitorFlyweight $visitors = null)
 {
     $this->factory = $factory ?: new EmbeddedCommandFactory();
     $this->visitors = $visitors ?: VisitorFlyweight::getInstance();
 }