public function testResolver($resolver)
{
$taxable = $this->getMockBuilder('CommerceGuys\\Tax\\TaxableInterface')->getMock();
$usAddress = $this->getMockBuilder('CommerceGuys\\Addressing\\Address')->getMock();
$usAddress->expects($this->any())->method('getCountryCode')->will($this->returnValue('US'));
$ontarioAddress = $this->getMockBuilder('CommerceGuys\\Addressing\\Address')->getMock();
$ontarioAddress->expects($this->any())->method('getCountryCode')->will($this->returnValue('CA'));
$ontarioAddress->expects($this->any())->method('getAdministrativeArea')->will($this->returnValue('ON'));
$novaScotiaAddress = $this->getMockBuilder('CommerceGuys\\Addressing\\Address')->getMock();
$novaScotiaAddress->expects($this->any())->method('getCountryCode')->will($this->returnValue('CA'));
$novaScotiaAddress->expects($this->any())->method('getAdministrativeArea')->will($this->returnValue('NS'));
// Nova Scotia store, Ontario customer.
$context = $this->getContext($ontarioAddress, $novaScotiaAddress);
$results = $resolver->resolve($taxable, $context);
$result = reset($results);
$this->assertInstanceOf('CommerceGuys\\Tax\\Model\\TaxType', $result);
$this->assertEquals('ca_on_hst', $result->getId());
// Ontario store, Nova Scotia customer.
$context = $this->getContext($novaScotiaAddress, $ontarioAddress);
$results = $resolver->resolve($taxable, $context);
$result = reset($results);
$this->assertInstanceOf('CommerceGuys\\Tax\\Model\\TaxType', $result);
$this->assertEquals('ca_ns_hst', $result->getId());
// Ontario store, US customer.
$context = $this->getContext($usAddress, $ontarioAddress);
$result = $resolver->resolve($taxable, $context);
$this->assertEquals([], $result);
// US store, Ontario customer.
$context = $this->getContext($ontarioAddress, $usAddress);
$result = $resolver->resolve($taxable, $context);
$this->assertEquals([], $result);
}