public function testBadKey()
 {
     $setting = ['port' => '3306', 'username' => 'hello', 'password' => 'world', 'database' => 'shard_1'];
     $factory = new ResourceFactory();
     $factory->setPrototype(new ShardConfig());
     try {
         $factory->make($setting);
     } catch (\Exception $e) {
         $this->assertEquals('InvalidArgumentException', get_class($e));
     }
 }
 /**
  * @param ResourceInterface $prototype
  * @param array             $allSetting
  *
  * @return ResourceCollection
  */
 public function makeCollection(ResourceInterface $prototype, array $allSetting)
 {
     $factory = new ResourceFactory();
     $factory->setPrototype($prototype);
     $collection = new ResourceCollection();
     foreach ($allSetting as $setting) {
         $resource = $factory->make($setting);
         $collection->add($resource);
     }
     return $collection;
 }