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());
 }