public function testThrowsExceptionWhenFieldIsUnknown()
    {
        $expectedExceptionMessage = <<<MESSAGE
Unable to find proper separator for 'foo' 'bar' (tried foo:bar and foo.bar. Perhaps the definition is missing?
MESSAGE;
        $this->setExpectedException('RuntimeException', $expectedExceptionMessage);
        $config = new ConfigProxy(array("metadatafields" => array('saml20_idp' => array())));
        $helper = new MetadataDefinitionHelper($config);
        $helper->joinKeyParts('foo', 'bar', 'saml20-idp');
    }
 /**
  * Turns a flat collection into a nested one.
  *
  * @param array $flatCollection
  * @param MetadataDefinitionHelper $metadataDefinitionHelper
  * @return array
  */
 public function build(array $flatCollection, MetadataDefinitionHelper $metadataDefinitionHelper, $connectionType)
 {
     $flatCollection = $metadataDefinitionHelper->castData($flatCollection, $connectionType);
     $arrayPathHelper = new ArrayPathHelper();
     foreach ($flatCollection as $key => $value) {
         $arrayPathHelper->set($key, $value);
     }
     $items = $arrayPathHelper->getArray();
     return $items;
 }