public function build()
 {
     $serializerDeserializer = new ChainSerializerDeserializer();
     foreach ($this->serializers as $serializer) {
         $serializerDeserializer->addSerializer($serializer);
     }
     foreach ($this->deserializers as $deserializer) {
         $serializerDeserializer->addDeserializer($deserializer);
     }
     return $serializerDeserializer;
 }
 public function testBuild()
 {
     $serializer1 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\SerializerInterface');
     $deserializer1 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\DeserializerInterface');
     $serializer2 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\SerializerInterface');
     $deserializer2 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\DeserializerInterface');
     $serializerFactoryName = $this->getFaker()->unique()->word;
     $serializerFactoryOptions = array($this->getFaker()->unique()->word => $this->getFaker()->unique()->word, $this->getFaker()->unique()->word => $this->getFaker()->unique()->word, $this->getFaker()->unique()->word => $this->getFaker()->unique()->word);
     $this->serializerFactory->shouldReceive('create')->once()->with($serializerFactoryName, $serializerFactoryOptions)->andReturn($serializer2);
     $deserializerFactoryName = $this->getFaker()->unique()->word;
     $deserializerFactoryOptions = array($this->getFaker()->unique()->word => $this->getFaker()->unique()->word, $this->getFaker()->unique()->word => $this->getFaker()->unique()->word, $this->getFaker()->unique()->word => $this->getFaker()->unique()->word);
     $this->deserializerFactory->shouldReceive('create')->once()->with($deserializerFactoryName, $deserializerFactoryOptions)->andReturn($deserializer2);
     $this->builder->addSerializer($serializer1)->addDeserializer($deserializer1)->addSerializer($serializerFactoryName, $serializerFactoryOptions)->addDeserializer($deserializerFactoryName, $deserializerFactoryOptions);
     $serializerDeserializer = new ChainSerializerDeserializer();
     $serializerDeserializer->addSerializer($serializer1)->addDeserializer($deserializer1)->addSerializer($serializer2)->addDeserializer($deserializer2);
     $this->assertEquals($serializerDeserializer, $this->builder->build());
 }
 public function setUp()
 {
     $this->chain = new ChainSerializerDeserializer();
     $this->chain->addSerializer($this->serializer1 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\SerializerInterface'))->addSerializer($this->serializer2 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\SerializerInterface'))->addSerializer($this->serializer3 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\SerializerInterface'))->addDeserializer($this->deserializer1 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\DeserializerInterface'))->addDeserializer($this->deserializer2 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\DeserializerInterface'))->addDeserializer($this->deserializer3 = \Mockery::mock('Giftcards\\Encryption\\CipherText\\Serializer\\DeserializerInterface'));
 }