/** * @test */ public function shouldParseReturnObjectWithArrayOfWrapper() { //given $parameter = ParameterFactory::createReturnObjectWithArrayOfWrapper('method'); //when $element = $this->_documentLiteralWrapped->typeReturning($parameter); //then $this->assertEquals('methodResponse', $element->getName()); $this->assertEquals(array(array('type' => 'element', 'value' => 'ns:ListOfAgents', 'name' => 'listOfAgents')), $element->getElementAttributes()); $actualComplex = $element->getComplex(); Assert::thatArray($actualComplex)->onMethod('getName')->containsExactly('ListOfAgents'); Assert::thatArray($actualComplex)->onMethod('getElementAttributes')->containsKeyAndValue(array(array(array('type' => 'type', 'value' => 'ns:ArrayOfAgents', 'name' => 'agents'), array('type' => 'type', 'value' => 'xsd:int', 'name' => 'id')))); $actualComplex2 = $actualComplex[0]->getComplex(); $this->assertEquals('ArrayOfAgents', $actualComplex2[0]->getName()); $this->assertEquals('ns:MocksMockUserWrapper[]', $actualComplex2[0]->getArrayType()); $this->assertEquals('MocksMockUserWrapper', $actualComplex2[0]->getComplex()->getName()); $this->assertEquals(array(array('type' => 'type', 'value' => 'xsd:int', 'name' => 'id'), array('type' => 'type', 'value' => 'xsd:string', 'name' => 'name'), array('type' => 'type', 'value' => 'xsd:int', 'name' => 'age')), $actualComplex2[0]->getComplex()->getElementAttributes()); }