silverstripe-framework/tests/php/Dev/SSListContainsOnlyMatchingI...

43 lines
1.3 KiB
PHP

<?php
namespace SilverStripe\Dev\Tests;
use SilverStripe\Dev\Constraint\SSListContainsOnly;
use SilverStripe\Dev\Constraint\SSListContainsOnlyMatchingItems;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\ORM\ArrayList;
use SilverStripe\Security\Member;
class SSListContainsOnlyMatchingItemsTest extends SapphireTest
{
public function testEvaluateListMatchesCorrectly()
{
$constraint = new SSListContainsOnlyMatchingItems(['IsActive' => 1]);
$this->assertTrue($constraint->evaluate($this->getListToMatch(), '', true));
}
/**
* @return ArrayList|Member[]
*/
private function getListToMatch()
{
$list = ArrayList::create();
$list->push(Member::create(['FirstName' => 'Ingo', 'Surname' => 'Schommer', 'IsActive' => 1]));
$list->push(Member::create(['FirstName' => 'Sam', 'Surname' => 'Minnee', 'IsActive' => 1]));
return $list;
}
public function testEvaluateListDoesNotMatchWrongMatches()
{
$constraint = new SSListContainsOnlyMatchingItems(['IsActive' => 1]);
$failingList = $this->getListToMatch();
$failingList->push(Member::create(['FirstName' => 'Foo', 'IsActive' => 0]));
$this->assertFalse($constraint->evaluate($failingList, '', true));
}
}