LdapRecord的PHP单元
我确实使用LdapRecord(不是Laravel one)编写了此服务,用于创建LDAP组和列出一些组织单位。问题是我想为它写一篇文章。 在这里测试什么是正确的,如果调用了确切的方法LdapRecord的PHP单元,ldap,phpunit,slim,Ldap,Phpunit,Slim,我确实使用LdapRecord(不是Laravel one)编写了此服务,用于创建LDAP组和列出一些组织单位。问题是我想为它写一篇文章。 在这里测试什么是正确的,如果调用了确切的方法 use LdapRecord\Connection; use LdapRecord\Container; use LdapRecord\Models\ActiveDirectory\OrganizationalUnit; class LdapService { private const APP_BAS
use LdapRecord\Connection;
use LdapRecord\Container;
use LdapRecord\Models\ActiveDirectory\OrganizationalUnit;
class LdapService {
private const APP_BASE_DN = 'OU=ApplicationGroups,DC=my,DC=domain,DC=com';
public function __construct(Connection $connection) {
Container::addConnection($connection);
}
/**
* @return array|\LdapRecord\Query\Collection
*/
public function findAllOrganizationalUnits() {
return OrganizationalUnit::query()
->in(self::APP_BASE_DN)
->listing()
->select(['objectguid', 'ou', 'distinguishedname'])
->get();
}
/**
* @param String $guid
* @return array|\LdapRecord\Query\Collection
*/
public function findChildOrganizationalUnits(String $ouGuid) {
$ouDn = OrganizationalUnit::query()->findByGuid($ouGuid)->getDn();
return OrganizationalUnit::query()
->in($ouDn)
->select(['objectguid', 'ou', 'distinguishedname'])
->listing()
->get();
}
/**
* @param $name
* @param $ous
* @param $description
* @return Group[]
*/
public function createGroups($name, $ous, $description) {
$groupsCreated = [];
foreach ($ous as $ou) {
$environmentOu = OrganizationalUnit::query()->findByGuid($ou);
$environmentOuDn = $environmentOu->getDn();
$groupName = "turboGroup $name";
try {
$createdGroup = (new Group())->inside($environmentOuDn)
->save([
'cn' => $groupName,
'description' => $description,
]);
} catch (AlreadyExistsException $e) {
$createdGroup = true;
}
if ($createdGroup) {
$groupsCreated[] = Group::query()->where('cn', '=', $groupName)->get();
}
}
return $groupsCreated;
}
}
用这样的嘲弄
class LdapServiceTest extends TestCase {
public function findAllOrganizationalUnitsTest() {
$connectionMock = Mockery::mock(Connection::class);
$connectionMock->shouldHaveReceived('in');
$connectionMock->shouldHaveReceived('listing');
...
$test = new LdapService($connectionMock);
$test->findAllOrganizationalUnits();
}
}