CommerceGuys\Zone\Model\Zone::match PHP Method

match() public method

public match ( CommerceGuys\Addressing\AddressInterface $address )
$address CommerceGuys\Addressing\AddressInterface
    public function match(AddressInterface $address)
    {
        foreach ($this->members as $member) {
            if ($member->match($address)) {
                return true;
            }
        }
        return false;
    }

Usage Example

 /**
  * @covers ::match
  *
  * @uses \CommerceGuys\Zone\Model\Zone::__construct
  * @uses \CommerceGuys\Zone\Model\Zone::setMembers
  */
 public function testMatch()
 {
     $address = $this->getMockBuilder('CommerceGuys\\Addressing\\Model\\Address')->getMock();
     $matchingZoneMember = $this->getMockBuilder('CommerceGuys\\Zone\\Model\\ZoneMember')->getMock();
     $matchingZoneMember->expects($this->any())->method('match')->with($address)->will($this->returnValue(true));
     $nonMatchingZoneMember = $this->getMockBuilder('CommerceGuys\\Zone\\Model\\ZoneMember')->getMock();
     $nonMatchingZoneMember->expects($this->any())->method('match')->with($address)->will($this->returnValue(false));
     $members = new ArrayCollection([$matchingZoneMember, $nonMatchingZoneMember]);
     $this->zone->setMembers($members);
     $this->assertEquals(true, $this->zone->match($address));
     $members = new ArrayCollection([$nonMatchingZoneMember]);
     $this->zone->setMembers($members);
     $this->assertEquals(false, $this->zone->match($address));
 }