/** * @test */ public function buildRemovesSpecifiedQueryParametersInCurrentNamespaceIfArgumentsToBeExcludedFromQueryStringIsSetAndRequestIsOfTypeSubRequest() { $this->mockMainRequest->expects($this->once())->method('getArguments')->will($this->returnValue(array('Some' => 'Retained Arguments From Request'))); $this->mockSubRequest->expects($this->any())->method('getArgumentNamespace')->will($this->returnValue('SubNamespace')); $this->mockSubRequest->expects($this->any())->method('getArguments')->will($this->returnValue(array('Some' => array('Arguments' => 'From Request')))); $this->mockRouter->expects($this->once())->method('resolve')->with(array('SubNamespace' => array('Foo' => 'Overruled'), 'Some' => 'Retained Arguments From Request'))->will($this->returnValue('resolvedUri')); $this->uriBuilder->setRequest($this->mockSubRequest); $this->uriBuilder->setAddQueryString(TRUE); $this->uriBuilder->setArguments(array('SubNamespace' => array('Foo' => 'Overruled'))); $this->uriBuilder->setArgumentsToBeExcludedFromQueryString(array('Some')); $expectedResult = 'resolvedUri'; $actualResult = $this->uriBuilder->build(); $this->assertEquals($expectedResult, $actualResult); }