/**
* @covers ::__construct
* @covers ::getMembers
* @covers ::setMembers
* @covers ::hasMembers
* @covers ::addMember
* @covers ::removeMember
* @covers ::hasMember
*
* @uses \CommerceGuys\Zone\Model\Zone::__construct
* @uses \CommerceGuys\Zone\Model\ZoneMember::setParentZone
*/
public function testMembers()
{
$firstZoneMember = $this->getMockBuilder('CommerceGuys\\Zone\\Model\\ZoneMember')->getMock();
$secondZoneMember = $this->getMockBuilder('CommerceGuys\\Zone\\Model\\ZoneMember')->getMock();
$empty = new ArrayCollection();
$members = new ArrayCollection([$firstZoneMember, $secondZoneMember]);
$this->assertEquals(false, $this->zone->hasMembers());
$this->assertEquals($empty, $this->zone->getMembers());
$members = new ArrayCollection([$firstZoneMember, $secondZoneMember]);
$this->zone->setMembers($members);
$this->assertEquals($members, $this->zone->getMembers());
$this->assertEquals(true, $this->zone->hasMembers());
$this->zone->removeMember($secondZoneMember);
$this->assertEquals(false, $this->zone->hasMember($secondZoneMember));
$this->assertEquals(true, $this->zone->hasMember($firstZoneMember));
$this->zone->addMember($secondZoneMember);
$this->assertEquals($members, $this->zone->getMembers());
}