/**
  * Test hydration of each tag type
  *
  * @dataProvider provideTagNames
  * 
  * @param string $tagName
  */
 public function testHydration($tagName)
 {
     $ivr = new Ivr();
     $dialplan = $ivr->getDialplan();
     $tag = $dialplan->{$tagName}();
     $hydrator = $tag->getHydrator();
     $fields = $hydrator->extract($tag);
     foreach ($fields as &$value) {
         $value = ' ';
     }
     $hydrator->hydrate($fields, $tag);
     $idempotentFields = $hydrator->extract($tag);
     $this->assertEquals($fields, $idempotentFields);
 }
 /**
  * Test loading an existing IVR
  *
  * @dataProvider provideIvrFixtures
  * 
  * @param string filename
  */
 public function testLoad($filename)
 {
     $this->markTestIncomplete('IVR loading not implemented properly');
     $ivr = new Ivr();
     $ivr->load($filename);
     $result = $ivr->saveXML();
     $this->assertXmlStringEqualsXmlFile($filename, $result);
     $tagList = $ivr->getTagList();
     $xpath = new DOMXPath($ivr);
     foreach ($xpath->query('//*') as $tag) {
         if ($tagName = array_search($tag->nodeName, $tagList)) {
             $this->assertInstanceOf(Ivr\Dialplan::ns() . '\\' . $tagName, $tag);
         }
     }
 }