CommerceGuys\Tax\Tests\Resolver\CanadaTaxTypeResolverTest::testResolver PHP Method

testResolver() public method

public testResolver ( $resolver )
    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);
    }