10fa524540
- refactored SCIM 2.0 server core library - new Domain SCIM resource - simple JWT implementation - enhanced documentation - split out PostfixAdmin SCIM API
56 lines
1.6 KiB
PHP
56 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Opf\Test\Unit;
|
|
|
|
use Opf\Models\SCIM\Standard\Filters\FilterException;
|
|
use Opf\Util\Filters\FilterParser;
|
|
use Opf\Util\Filters\FilterUtil;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class FilterUtilTest extends TestCase
|
|
{
|
|
/** @var array */
|
|
protected $scimGroups = [];
|
|
|
|
/** @var array */
|
|
protected $scimUsers = [];
|
|
|
|
public function setUp(): void
|
|
{
|
|
$this->scimGroups = json_decode(file_get_contents(__DIR__ . '/../resources/filterTestGroups.json'), true);
|
|
$this->scimUsers = json_decode(file_get_contents(__DIR__ . '/../resources/filterTestUsers.json'), true);
|
|
}
|
|
|
|
public function tearDown(): void
|
|
{
|
|
$this->scimGroups = [];
|
|
$this->scimUsers = [];
|
|
}
|
|
|
|
public function testGroupFiltering()
|
|
{
|
|
// "ne" filter test
|
|
$filterString = "displayName ne testGroup";
|
|
$filteredScimGroups = FilterUtil::performFiltering($filterString, $this->scimGroups);
|
|
|
|
$this->assertEquals(array_splice($this->scimGroups, 1, 2), $filteredScimGroups);
|
|
}
|
|
|
|
public function testUserFiltering()
|
|
{
|
|
// "sw" filter test
|
|
$filterString = "userName sw testuser";
|
|
$filteredScimUsers = FilterUtil::performFiltering($filterString, $this->scimUsers);
|
|
|
|
$this->assertEquals($this->scimUsers, $filteredScimUsers);
|
|
}
|
|
|
|
public function testInvalidFiltering()
|
|
{
|
|
$this->expectException(FilterException::class);
|
|
$this->expectExceptionMessage("Incorrectly formatted AttributeExpression");
|
|
|
|
$filterString = "externalId eq some value";
|
|
$filteredScimUsers = FilterUtil::performFiltering($filterString, $this->scimUsers);
|
|
}
|
|
}
|