/**
  * When extracting results from the SDK response, a tax
  * result model with the tax data extracted from the
  * response should be returned.
  */
 public function testExtractResponseResultsSuccess()
 {
     // Create an expected result, should be returned when successfully
     // extracting results from a response.
     $sdkResult = $this->getModelMockBuilder('ebayenterprise_tax/result')->disableOriginalConstructor()->getMock();
     // Mock the API to return an expected response body as the
     // reply to the SDK request.
     $this->_api->expects($this->any())->method('getResponseBody')->will($this->returnValue($this->_responseBody));
     // Mock up some SDK results - doesn't really matter what these
     // are, just that they can be recognized as the "right" results.
     $taxRecords = [$this->getModelMockBuilder('ebayenteprirse_tax/record')->disableOriginalConstructor()->getMock()];
     $taxDuties = [$this->getModelMockBuilder('ebayenteprirse_tax/duty')->disableOriginalConstructor()->getMock()];
     $taxFees = [$this->getModelMockBuilder('ebayenteprirse_tax/fee')->disableOriginalConstructor()->getMock()];
     // Create a quote response parser capable of returning the
     // proper results from the tax response.
     $this->_quoteResponseParser->expects($this->any())->method('getTaxRecords')->will($this->returnValue($taxRecords));
     $this->_quoteResponseParser->expects($this->any())->method('getTaxDuties')->will($this->returnValue($taxDuties));
     $this->_quoteResponseParser->expects($this->any())->method('getTaxFees')->will($this->returnValue($taxFees));
     // Setup the tax factory to be able to provide the proper quote
     // response parser if given the correct response payload and quote.
     $this->_taxFactory->expects($this->any())->method('createResponseQuoteParser')->with($this->identicalTo($this->_responseBody), $this->identicalTo($this->_quote))->will($this->returnValue($this->_quoteResponseParser));
     // Setup the tax factory to be able to provide the proper SDK result
     // if given the expected tax data.
     $this->_taxFactory->expects($this->any())->method('createTaxResults')->with($this->identicalTo($taxRecords), $this->identicalTo($taxDuties), $this->identicalTo($taxFees))->will($this->returnValue($sdkResult));
     // Ensure that the correct SDK result is returned when extracting
     // results from the SDK. For now, this will return the exact same
     // instance as is expected. In the future this may not be the case and
     // test could be expected to simply ensure the results available in
     // the returned result model match the expected results.
     $this->assertSame($sdkResult, EcomDev_Utils_Reflection::invokeRestrictedMethod($this->_sdkHelper, '_extractResponseResults', [$this->_api, $this->_quote]));
 }