/**
  * @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());
 }