/** * Takes previously find test group and collect all data set from it * parses and returns an array * * @param \SimpleXMLElement $element * * @return array */ private function createTestArrayFromXmlElement(SimpleXMLElement $element) { $result = []; $dataSets = $element->xpath('*'); $setCount = 0; foreach ($dataSets as $dataSet) { $values = []; $properties = $dataSet->xpath('*'); $setName = (string) $dataSet->attributes()->name; $setName = empty($setName) ? 'Index #' . $setCount : $setName; foreach ($properties as $property) { $typedGetter = new SimpleXMLNodeTypedAttributeGetter($property); $values[$typedGetter->getName()] = $typedGetter->getValue(); } $result[$setName] = $values; $setCount++; } return $result; }
/** * @expectedException \BuildR\TestTools\Exception\CasterException * @expectedExceptionMessage Cannot find any caster for this type: nonExist */ public function testItThrowsExceptionWithNonDefinedCaster() { $fakeNode = new \SimpleXMLElement('<dataSetProperty name="test" value="testValue" type="nonExist" />'); $getter = new SimpleXMLNodeTypedAttributeGetter($fakeNode); $getter->getValue(); }