mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-02-08 05:18:40 +00:00
test fixes
This commit is contained in:
parent
a5a9d20941
commit
69ff0e0035
|
|
@ -153,7 +153,7 @@ final class FileCache extends ConnectionAbstract
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$path = Directory::sanitize($key, self::SANITIZE);
|
$path = Directory::sanitize((string) $key, self::SANITIZE);
|
||||||
|
|
||||||
$fp = \fopen($this->con . '/' . \trim($path, '/') . '.cache', 'w+');
|
$fp = \fopen($this->con . '/' . \trim($path, '/') . '.cache', 'w+');
|
||||||
if (\flock($fp, \LOCK_EX)) {
|
if (\flock($fp, \LOCK_EX)) {
|
||||||
|
|
@ -462,10 +462,6 @@ final class FileCache extends ConnectionAbstract
|
||||||
$created = File::created($path)->getTimestamp();
|
$created = File::created($path)->getTimestamp();
|
||||||
$now = \time();
|
$now = \time();
|
||||||
|
|
||||||
if ($expire >= 0 && $created + $expire < $now) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$raw = \file_get_contents($path);
|
$raw = \file_get_contents($path);
|
||||||
if ($raw === false) {
|
if ($raw === false) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -499,10 +495,6 @@ final class FileCache extends ConnectionAbstract
|
||||||
$created = File::created($path)->getTimestamp();
|
$created = File::created($path)->getTimestamp();
|
||||||
$now = \time();
|
$now = \time();
|
||||||
|
|
||||||
if ($expire >= 0 && $created + $expire < $now) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$raw = \file_get_contents($path);
|
$raw = \file_get_contents($path);
|
||||||
if ($raw === false) {
|
if ($raw === false) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -632,7 +624,7 @@ final class FileCache extends ConnectionAbstract
|
||||||
*/
|
*/
|
||||||
public function updateExpire(int|string $key, int $expire = -1) : bool
|
public function updateExpire(int|string $key, int $expire = -1) : bool
|
||||||
{
|
{
|
||||||
$value = $this->get($key);
|
$value = $this->get($key, $expire);
|
||||||
$this->delete($key);
|
$this->delete($key);
|
||||||
$this->set($key, $value, $expire);
|
$this->set($key, $value, $expire);
|
||||||
|
|
||||||
|
|
@ -703,7 +695,7 @@ final class FileCache extends ConnectionAbstract
|
||||||
*/
|
*/
|
||||||
private function getPath(int|string $key) : string
|
private function getPath(int|string $key) : string
|
||||||
{
|
{
|
||||||
$path = Directory::sanitize($key, self::SANITIZE);
|
$path = Directory::sanitize((string) $key, self::SANITIZE);
|
||||||
return $this->con . '/' . \trim($path, '/') . '.cache';
|
return $this->con . '/' . \trim($path, '/') . '.cache';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,7 @@ final class MemCached extends ConnectionAbstract
|
||||||
$values = [];
|
$values = [];
|
||||||
|
|
||||||
foreach ($keys as $key) {
|
foreach ($keys as $key) {
|
||||||
if (\preg_match($key, $key) === 1) {
|
if (\preg_match('/' . $pattern . '/', $key) === 1) {
|
||||||
$result = $this->con->get($key);
|
$result = $this->con->get($key);
|
||||||
if (\is_string($result)) {
|
if (\is_string($result)) {
|
||||||
$type = (int) $result[0];
|
$type = (int) $result[0];
|
||||||
|
|
@ -216,7 +216,7 @@ final class MemCached extends ConnectionAbstract
|
||||||
|
|
||||||
$keys = $this->con->getAllKeys();
|
$keys = $this->con->getAllKeys();
|
||||||
foreach ($keys as $key) {
|
foreach ($keys as $key) {
|
||||||
if (\preg_match($key, $key) === 1) {
|
if (\preg_match('/' . $pattern . '/', $key) === 1) {
|
||||||
$this->con->delete($key);
|
$this->con->delete($key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,7 @@ final class NullCache extends ConnectionAbstract
|
||||||
*/
|
*/
|
||||||
public function exists(int|string $key, int $expire = -1) : bool
|
public function exists(int|string $key, int $expire = -1) : bool
|
||||||
{
|
{
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,7 @@ final class RedisCache extends ConnectionAbstract
|
||||||
$values = [];
|
$values = [];
|
||||||
|
|
||||||
foreach ($keys as $key) {
|
foreach ($keys as $key) {
|
||||||
if (\preg_match($key, $key) === 1) {
|
if (\preg_match('/' . $pattern . '/', $key) === 1) {
|
||||||
$result = $this->con->get($key);
|
$result = $this->con->get($key);
|
||||||
if (\is_string($result)) {
|
if (\is_string($result)) {
|
||||||
$type = (int) $result[0];
|
$type = (int) $result[0];
|
||||||
|
|
@ -246,7 +246,7 @@ final class RedisCache extends ConnectionAbstract
|
||||||
|
|
||||||
$keys = $this->con->keys('*');
|
$keys = $this->con->keys('*');
|
||||||
foreach ($keys as $key) {
|
foreach ($keys as $key) {
|
||||||
if (\preg_match($key, $key) === 1) {
|
if (\preg_match('/' . $pattern . '/', $key) === 1) {
|
||||||
$this->con->del($key);
|
$this->con->del($key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ final class Dispatcher implements DispatcherInterface
|
||||||
$views = [];
|
$views = [];
|
||||||
$dispatch = \explode(':', $controller);
|
$dispatch = \explode(':', $controller);
|
||||||
|
|
||||||
if (!Autoloader::exists($dispatch[0])) {
|
if (!Autoloader::exists($dispatch[0]) && !isset($this->controllers[$dispatch[0]])) {
|
||||||
throw new PathException($dispatch[0]);
|
throw new PathException($dispatch[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,11 @@ class AutoloaderTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertTrue(\in_array(\realpath(__DIR__ . '/TestLoad2.php'), $includes));
|
self::assertTrue(\in_array(\realpath(__DIR__ . '/TestLoad2.php'), $includes));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testPathFinding() : void
|
||||||
|
{
|
||||||
|
self::assertCount(1, Autoloader::findPaths('\phpOMS\Autoloader'));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers phpOMS\Autoloader
|
* @covers phpOMS\Autoloader
|
||||||
* @group framework
|
* @group framework
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,52 @@ class FileCacheTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals('testValAdd', $this->cache->get('addKey'));
|
self::assertEquals('testValAdd', $this->cache->get('addKey'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetLike() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('key1', 'testVal1');
|
||||||
|
$this->cache->set('key2', 'testVal2');
|
||||||
|
self::assertEquals([], \array_diff(['testVal1', 'testVal2'], $this->cache->getLike('key\d')));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testIncrement() : void
|
||||||
|
{
|
||||||
|
$this->cache->set(1, 1);
|
||||||
|
$this->cache->increment(1, 2);
|
||||||
|
self::assertEquals(3, $this->cache->get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDecrement() : void
|
||||||
|
{
|
||||||
|
$this->cache->set(1, 3);
|
||||||
|
$this->cache->decrement(1, 2);
|
||||||
|
self::assertEquals(1, $this->cache->get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRename() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('a', 'testVal1');
|
||||||
|
$this->cache->rename('a', 'b');
|
||||||
|
self::assertEquals('testVal1', $this->cache->get('b'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDeleteLike() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('key1', 'testVal1');
|
||||||
|
$this->cache->set('key2', 'testVal2');
|
||||||
|
self::assertTrue($this->cache->deleteLike('key\d'));
|
||||||
|
self::assertEquals([], $this->cache->getLike('key\d'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testUpdateExpire() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('key2', 'testVal2', 1);
|
||||||
|
self::assertEquals('testVal2', $this->cache->get('key2', 1));
|
||||||
|
\sleep(2);
|
||||||
|
self::assertNull($this->cache->get('key2', 1));
|
||||||
|
self::assertTrue($this->cache->updateExpire(10000));
|
||||||
|
self::assertEquals('testVal2', $this->cache->get('key2', 1));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox Cache data cannot be added if it already exists
|
* @testdox Cache data cannot be added if it already exists
|
||||||
* @covers phpOMS\DataStorage\Cache\Connection\FileCache<extended>
|
* @covers phpOMS\DataStorage\Cache\Connection\FileCache<extended>
|
||||||
|
|
@ -338,7 +384,7 @@ class FileCacheTest extends \PHPUnit\Framework\TestCase
|
||||||
{
|
{
|
||||||
$this->expectException(\phpOMS\DataStorage\Cache\Exception\InvalidConnectionConfigException::class);
|
$this->expectException(\phpOMS\DataStorage\Cache\Exception\InvalidConnectionConfigException::class);
|
||||||
|
|
||||||
$cache = new FileCache("/root/etc/invalidPathOrPermission^$:?><");
|
$this->cache = new FileCache("/root/etc/invalidPathOrPermission^$:?><");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -125,6 +125,52 @@ class MemCachedTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals('testValAdd', $this->cache->get('addKey'));
|
self::assertEquals('testValAdd', $this->cache->get('addKey'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetLike() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('key1', 'testVal1');
|
||||||
|
$this->cache->set('key2', 'testVal2');
|
||||||
|
self::assertEquals(['testVal1', 'testVal2'], $this->cache->getLike('key\d'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testIncrement() : void
|
||||||
|
{
|
||||||
|
$this->cache->set(1, 1);
|
||||||
|
$this->cache->increment(1, 2);
|
||||||
|
self::assertEquals(3, $this->cache->get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDecrement() : void
|
||||||
|
{
|
||||||
|
$this->cache->set(1, 3);
|
||||||
|
$this->cache->decrement(1, 2);
|
||||||
|
self::assertEquals(1, $this->cache->get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRename() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('a', 'testVal1');
|
||||||
|
$this->cache->rename('a', 'b');
|
||||||
|
self::assertEquals('testVal1', $this->cache->get('b'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDeleteLike() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('key1', 'testVal1');
|
||||||
|
$this->cache->set('key2', 'testVal2');
|
||||||
|
self::assertTrue($this->cache->deleteLike('key\d'));
|
||||||
|
self::assertEquals([], $this->cache->getLike('key\d'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testUpdateExpire() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('key2', 'testVal2', 1);
|
||||||
|
self::assertEquals('testVal2', $this->cache->get('key2', 1));
|
||||||
|
\sleep(2);
|
||||||
|
self::assertNull($this->cache->get('key2', 1));
|
||||||
|
self::assertTrue($this->cache->updateExpire(10000));
|
||||||
|
self::assertEquals('testVal2', $this->cache->get('key2', 1));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox Cache data cannot be added if it already exists
|
* @testdox Cache data cannot be added if it already exists
|
||||||
* @covers phpOMS\DataStorage\Cache\Connection\MemCached<extended>
|
* @covers phpOMS\DataStorage\Cache\Connection\MemCached<extended>
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ declare(strict_types=1);
|
||||||
namespace phpOMS\tests\DataStorage\Cache\Connection;
|
namespace phpOMS\tests\DataStorage\Cache\Connection;
|
||||||
|
|
||||||
use phpOMS\DataStorage\Cache\CacheType;
|
use phpOMS\DataStorage\Cache\CacheType;
|
||||||
|
use phpOMS\DataStorage\Cache\CacheStatus;
|
||||||
use phpOMS\DataStorage\Cache\Connection\NullCache;
|
use phpOMS\DataStorage\Cache\Connection\NullCache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -24,27 +25,107 @@ use phpOMS\DataStorage\Cache\Connection\NullCache;
|
||||||
*/
|
*/
|
||||||
final class NullCacheTest extends \PHPUnit\Framework\TestCase
|
final class NullCacheTest extends \PHPUnit\Framework\TestCase
|
||||||
{
|
{
|
||||||
|
protected NullCache $cache;
|
||||||
|
|
||||||
|
protected function setUp() : void
|
||||||
|
{
|
||||||
|
$this->cache = new NullCache([]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox The default cache has the expected default values after initialization
|
* @testdox The default cache has the expected default values after initialization
|
||||||
* @covers phpOMS\DataStorage\Cache\Connection\NullCache<extended>
|
* @covers phpOMS\DataStorage\Cache\Connection\NullCache<extended>
|
||||||
* @group framework
|
* @group framework
|
||||||
*/
|
*/
|
||||||
public function testCache() : void
|
public function testDefault() : void
|
||||||
{
|
{
|
||||||
$cache = new NullCache();
|
self::assertEquals(CacheType::UNDEFINED, $this->cache->getType());
|
||||||
$cache->connect([]);
|
self::assertEquals([], $this->cache->stats());
|
||||||
|
self::assertEquals(0, $this->cache->getThreshold());
|
||||||
|
}
|
||||||
|
|
||||||
self::assertEquals(CacheType::UNDEFINED, $cache->getType());
|
public function testConnect() : void
|
||||||
self::assertTrue($cache->add(1, 1));
|
{
|
||||||
|
$this->cache->connect([]);
|
||||||
|
self::assertEquals(CacheStatus::CLOSED, $this->cache->getStatus());
|
||||||
|
}
|
||||||
|
|
||||||
$cache->set(1, 1);
|
public function testSetInputOutput() : void
|
||||||
self::assertNull($cache->get(1));
|
{
|
||||||
|
$this->cache->set(1, 1);
|
||||||
|
self::assertNull($this->cache->get(1));
|
||||||
|
}
|
||||||
|
|
||||||
self::assertTrue($cache->delete(1));
|
public function testAddInputOutput() : void
|
||||||
self::assertTrue($cache->flush(1));
|
{
|
||||||
self::assertTrue($cache->flushAll());
|
self::assertTrue($this->cache->add(1, 1));
|
||||||
self::assertTrue($cache->replace(1, 1));
|
self::assertNull($this->cache->get(1));
|
||||||
self::assertEquals([], $cache->stats());
|
}
|
||||||
self::assertEquals(0, $cache->getThreshold());
|
|
||||||
|
public function testGetLike() : void
|
||||||
|
{
|
||||||
|
self::assertEquals([], $this->cache->getLike(''));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testIncrement() : void
|
||||||
|
{
|
||||||
|
$this->cache->increment(1, 1);
|
||||||
|
self::assertNull($this->cache->get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDecrement() : void
|
||||||
|
{
|
||||||
|
$this->cache->increment(1, 1);
|
||||||
|
self::assertNull($this->cache->get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testReplace() : void
|
||||||
|
{
|
||||||
|
self::assertTrue($this->cache->replace(1, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRename() : void
|
||||||
|
{
|
||||||
|
$this->cache->set(1, 1);
|
||||||
|
$this->cache->rename(1, 2);
|
||||||
|
self::assertNull($this->cache->get(2));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDelete() : void
|
||||||
|
{
|
||||||
|
self::assertTrue($this->cache->delete(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDeleteLike() : void
|
||||||
|
{
|
||||||
|
self::assertTrue($this->cache->deleteLike(''));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFlush() : void
|
||||||
|
{
|
||||||
|
self::assertTrue($this->cache->flush(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFlushAll() : void
|
||||||
|
{
|
||||||
|
self::assertTrue($this->cache->flushAll());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testExists() : void
|
||||||
|
{
|
||||||
|
$this->cache->set(1, 1);
|
||||||
|
self::assertFalse($this->cache->exists(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testUpdateExpire() : void
|
||||||
|
{
|
||||||
|
self::assertTrue($this->cache->updateExpire(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testStats() : void
|
||||||
|
{
|
||||||
|
$this->cache->set(1, 1);
|
||||||
|
$this->cache->add(2, 2);
|
||||||
|
self::assertEquals([], $this->cache->stats());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,52 @@ class RedisCacheTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertEquals('testValAdd', $this->cache->get('addKey'));
|
self::assertEquals('testValAdd', $this->cache->get('addKey'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetLike() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('key1', 'testVal1');
|
||||||
|
$this->cache->set('key2', 'testVal2');
|
||||||
|
self::assertEquals(['testVal1', 'testVal2'], $this->cache->getLike('key\d'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testIncrement() : void
|
||||||
|
{
|
||||||
|
$this->cache->set(1, 1);
|
||||||
|
$this->cache->increment(1, 2);
|
||||||
|
self::assertEquals(3, $this->cache->get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDecrement() : void
|
||||||
|
{
|
||||||
|
$this->cache->set(1, 3);
|
||||||
|
$this->cache->decrement(1, 2);
|
||||||
|
self::assertEquals(1, $this->cache->get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRename() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('a', 'testVal1');
|
||||||
|
$this->cache->rename('a', 'b');
|
||||||
|
self::assertEquals('testVal1', $this->cache->get('b'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDeleteLike() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('key1', 'testVal1');
|
||||||
|
$this->cache->set('key2', 'testVal2');
|
||||||
|
self::assertTrue($this->cache->deleteLike('key\d'));
|
||||||
|
self::assertEquals([], $this->cache->getLike('key\d'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testUpdateExpire() : void
|
||||||
|
{
|
||||||
|
$this->cache->set('key2', 'testVal2', 1);
|
||||||
|
self::assertEquals('testVal2', $this->cache->get('key2', 1));
|
||||||
|
\sleep(2);
|
||||||
|
self::assertNull($this->cache->get('key2', 1));
|
||||||
|
self::assertTrue($this->cache->updateExpire(10000));
|
||||||
|
self::assertEquals('testVal2', $this->cache->get('key2', 1));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox Cache data cannot be added if it already exists
|
* @testdox Cache data cannot be added if it already exists
|
||||||
* @covers phpOMS\DataStorage\Cache\Connection\RedisCache<extended>
|
* @covers phpOMS\DataStorage\Cache\Connection\RedisCache<extended>
|
||||||
|
|
|
||||||
|
|
@ -91,4 +91,37 @@ class BuilderTest extends \PHPUnit\Framework\TestCase
|
||||||
->toSql()
|
->toSql()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testMysqlAlter() : void
|
||||||
|
{/*
|
||||||
|
$query = new Builder($this->con);
|
||||||
|
$sql = 'CREATE TABLE `user_roles` (`user_id` INT NOT NULL AUTO_INCREMENT, `role_id` VARCHAR(10) DEFAULT \'1\' NULL, PRIMARY KEY (`user_id`), FOREIGN KEY (`user_id`) REFERENCES `users` (`ext1_id`), FOREIGN KEY (`role_id`) REFERENCES `roles` (`ext2_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;';
|
||||||
|
self::assertEquals(
|
||||||
|
$sql,
|
||||||
|
$query->createTable('user_roles')
|
||||||
|
->field('user_id', 'INT', null, false, true, false, true, 'users', 'ext1_id')
|
||||||
|
->field('role_id', 'VARCHAR(10)', '1', true, false, false, false, 'roles', 'ext2_id')
|
||||||
|
->toSql()
|
||||||
|
);*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function testMysqlCreateFromSchema() : void
|
||||||
|
{
|
||||||
|
Builder::createFromSchema(
|
||||||
|
\json_decode(
|
||||||
|
\file_get_contents(__DIR__ . '/Grammar/testSchema.json'), true
|
||||||
|
)['test'],
|
||||||
|
$this->con
|
||||||
|
);
|
||||||
|
|
||||||
|
$table = new Builder($this->con);
|
||||||
|
$tables = $table->selectTables()->execute()->fetchAll(\PDO::FETCH_COLUMN);
|
||||||
|
self::assertContains('test', $tables);
|
||||||
|
self::assertContains('test_foreign', $tables);
|
||||||
|
|
||||||
|
$delete = new Builder($this->con);
|
||||||
|
$delete->dropTable('test')->execute();
|
||||||
|
$delete->dropTable('test_foreign')->execute();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ use phpOMS\Message\Http\HttpRequest;
|
||||||
use phpOMS\Message\Http\HttpResponse;
|
use phpOMS\Message\Http\HttpResponse;
|
||||||
use phpOMS\Router\WebRouter;
|
use phpOMS\Router\WebRouter;
|
||||||
use phpOMS\Uri\HttpUri;
|
use phpOMS\Uri\HttpUri;
|
||||||
|
use phpOMS\Module\ModuleAbstract;
|
||||||
|
|
||||||
require_once __DIR__ . '/../Autoloader.php';
|
require_once __DIR__ . '/../Autoloader.php';
|
||||||
|
|
||||||
|
|
@ -35,9 +36,10 @@ class DispatcherTest extends \PHPUnit\Framework\TestCase
|
||||||
|
|
||||||
protected function setUp() : void
|
protected function setUp() : void
|
||||||
{
|
{
|
||||||
$this->app = new class() extends ApplicationAbstract {
|
$this->app = new class() extends ApplicationAbstract {
|
||||||
protected string $appName = 'Api';
|
protected string $appName = 'Api';
|
||||||
};
|
};
|
||||||
|
|
||||||
$this->app->router = new WebRouter();
|
$this->app->router = new WebRouter();
|
||||||
$this->app->dispatcher = new Dispatcher($this->app);
|
$this->app->dispatcher = new Dispatcher($this->app);
|
||||||
}
|
}
|
||||||
|
|
@ -52,6 +54,23 @@ class DispatcherTest extends \PHPUnit\Framework\TestCase
|
||||||
self::assertObjectHasAttribute('controllers', $this->app->dispatcher);
|
self::assertObjectHasAttribute('controllers', $this->app->dispatcher);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testControllerInputOutput() : void
|
||||||
|
{
|
||||||
|
$this->app->dispatcher->set(new class extends ModuleAbstract { public string $name = 'test'; public function testFunction() { return $this->name; } }, 'test');
|
||||||
|
|
||||||
|
$localization = new Localization();
|
||||||
|
|
||||||
|
self::assertTrue(
|
||||||
|
!empty(
|
||||||
|
$this->app->dispatcher->dispatch(
|
||||||
|
'test:testFunction',
|
||||||
|
new HttpRequest(new HttpUri(''), $localization),
|
||||||
|
new HttpResponse($localization)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @testdox The dispatcher can dispatch a function/closure
|
* @testdox The dispatcher can dispatch a function/closure
|
||||||
* @covers phpOMS\Dispatcher\Dispatcher
|
* @covers phpOMS\Dispatcher\Dispatcher
|
||||||
|
|
|
||||||
40
tests/Message/Mail/EmailTest.php
Normal file
40
tests/Message/Mail/EmailTest.php
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Orange Management
|
||||||
|
*
|
||||||
|
* PHP Version 8.0
|
||||||
|
*
|
||||||
|
* @package tests
|
||||||
|
* @copyright Dennis Eichhorn
|
||||||
|
* @license OMS License 1.0
|
||||||
|
* @version 1.0.0
|
||||||
|
* @link https://orange-management.org
|
||||||
|
*/
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace phpOMS\tests\Message;
|
||||||
|
|
||||||
|
require_once __DIR__ . '/../../Autoloader.php';
|
||||||
|
|
||||||
|
use phpOMS\Message\Mail\Email;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @testdox phpOMS\tests\Message\MailHandlerTest: Abstract mail handler
|
||||||
|
*
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
class EmailTestTest extends \PHPUnit\Framework\TestCase
|
||||||
|
{
|
||||||
|
public function testEmailParsing() : void
|
||||||
|
{
|
||||||
|
self::assertEquals(
|
||||||
|
[['name' => 'Test Name', 'address' => 'test@orange-management.org']],
|
||||||
|
Email::parseAddresses('Test Name <test@orange-management.org>')
|
||||||
|
);
|
||||||
|
|
||||||
|
self::assertEquals(
|
||||||
|
[['name' => 'Test Name', 'address' => 'test@orange-management.org']],
|
||||||
|
Email::parseAddresses('Test Name <test@orange-management.org>', false)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -30,13 +30,20 @@ class MailHandlerTest extends \PHPUnit\Framework\TestCase
|
||||||
{
|
{
|
||||||
public function testSendTextWithMail() : void
|
public function testSendTextWithMail() : void
|
||||||
{
|
{
|
||||||
|
if (!\file_exists('/usr/sbin/sendmail') && empty(\ini_get('sendmail_path'))) {
|
||||||
|
self::markTestSkipped();
|
||||||
|
}
|
||||||
|
|
||||||
$mailer = new MailHandler();
|
$mailer = new MailHandler();
|
||||||
$mailer->setMailer(SubmitType::MAIL);
|
$mailer->setMailer(SubmitType::MAIL);
|
||||||
|
|
||||||
$mail = new Email();
|
$mail = new Email();
|
||||||
$mail->setFrom('dennis.eichhorn@orange-management.org', 'Dennis Eichhorn');
|
$mail->setFrom('info@orange-management.org', 'Dennis Eichhorn');
|
||||||
$mail->addTo('info@orange-management.org', 'Dennis Eichhorn');
|
$mail->addTo('test@orange-management.email', 'Dennis Eichhorn');
|
||||||
$mail->subject = 'Test email';
|
$mail->addCC('test2@orange-management.email', 'Dennis Eichhorn');
|
||||||
|
$mail->addBCC('test3@orange-management.email', 'Dennis Eichhorn');
|
||||||
|
$mail->addReplyTo('test4@orange-management.email', 'Dennis Eichhorn');
|
||||||
|
$mail->subject = 'testSendTextWithMail';
|
||||||
$mail->body = 'This is some content';
|
$mail->body = 'This is some content';
|
||||||
|
|
||||||
self::assertTrue($mailer->send($mail));
|
self::assertTrue($mailer->send($mail));
|
||||||
|
|
@ -44,13 +51,20 @@ class MailHandlerTest extends \PHPUnit\Framework\TestCase
|
||||||
|
|
||||||
public function testSendTextWithSendmail() : void
|
public function testSendTextWithSendmail() : void
|
||||||
{
|
{
|
||||||
|
if (!\file_exists('/usr/sbin/sendmail') && empty(\ini_get('sendmail_path'))) {
|
||||||
|
self::markTestSkipped();
|
||||||
|
}
|
||||||
|
|
||||||
$mailer = new MailHandler();
|
$mailer = new MailHandler();
|
||||||
$mailer->setMailer(SubmitType::SENDMAIL);
|
$mailer->setMailer(SubmitType::SENDMAIL);
|
||||||
|
|
||||||
$mail = new Email();
|
$mail = new Email();
|
||||||
$mail->setFrom('dennis.eichhorn@orange-management.org', 'Dennis Eichhorn');
|
$mail->setFrom('info@orange-management.org', 'Dennis Eichhorn');
|
||||||
$mail->addTo('info@orange-management.org', 'Dennis Eichhorn');
|
$mail->addTo('test@orange-management.email', 'Dennis Eichhorn');
|
||||||
$mail->subject = 'Test email';
|
$mail->addCC('test2@orange-management.email', 'Dennis Eichhorn');
|
||||||
|
$mail->addBCC('test3@orange-management.email', 'Dennis Eichhorn');
|
||||||
|
$mail->addReplyTo('test4@orange-management.email', 'Dennis Eichhorn');
|
||||||
|
$mail->subject = 'testSendTextWithSendmail';
|
||||||
$mail->body = 'This is some content';
|
$mail->body = 'This is some content';
|
||||||
|
|
||||||
self::assertTrue($mailer->send($mail));
|
self::assertTrue($mailer->send($mail));
|
||||||
|
|
|
||||||
|
|
@ -313,4 +313,22 @@ class ArrayUtilsTest extends \PHPUnit\Framework\TestCase
|
||||||
{
|
{
|
||||||
self::assertEquals([1, 3, 4], ArrayUtils::abs([-1, 3, -4]));
|
self::assertEquals([1, 3, 4], ArrayUtils::abs([-1, 3, -4]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testArrayDiffAssocResursive() : void
|
||||||
|
{
|
||||||
|
self::assertEquals(
|
||||||
|
['a' => 1, 'b' => ['c' => 2]],
|
||||||
|
ArrayUtils::array_diff_assoc_recursive(['a' => 1, 'b' => ['c' => 2]], [])
|
||||||
|
);
|
||||||
|
|
||||||
|
self::assertEquals(
|
||||||
|
['b' => ['d' => 3]],
|
||||||
|
ArrayUtils::array_diff_assoc_recursive(['a' => 1, 'b' => ['c' => 2, 'd' => 3]], ['a' => 1, 'b' => ['c' => 2]])
|
||||||
|
);
|
||||||
|
|
||||||
|
self::assertEquals(
|
||||||
|
[],
|
||||||
|
ArrayUtils::array_diff_assoc_recursive([], ['a' => 1, 'b' => ['c' => 2]])
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,11 +28,19 @@ class CsvSettingsTest extends \PHPUnit\Framework\TestCase
|
||||||
* @covers phpOMS\Utils\IO\Csv\CsvSettings
|
* @covers phpOMS\Utils\IO\Csv\CsvSettings
|
||||||
* @group framework
|
* @group framework
|
||||||
*/
|
*/
|
||||||
public function testDelimiter() : void
|
public function testFileDelimiter() : void
|
||||||
{
|
{
|
||||||
self::assertEquals(':', CsvSettings::getFileDelimiter(\fopen(__DIR__ . '/colon.csv', 'r')));
|
self::assertEquals(':', CsvSettings::getFileDelimiter(\fopen(__DIR__ . '/colon.csv', 'r')));
|
||||||
self::assertEquals(',', CsvSettings::getFileDelimiter(\fopen(__DIR__ . '/comma.csv', 'r')));
|
self::assertEquals(',', CsvSettings::getFileDelimiter(\fopen(__DIR__ . '/comma.csv', 'r')));
|
||||||
self::assertEquals('|', CsvSettings::getFileDelimiter(\fopen(__DIR__ . '/pipe.csv', 'r')));
|
self::assertEquals('|', CsvSettings::getFileDelimiter(\fopen(__DIR__ . '/pipe.csv', 'r')));
|
||||||
self::assertEquals(';', CsvSettings::getFileDelimiter(\fopen(__DIR__ . '/semicolon.csv', 'r')));
|
self::assertEquals(';', CsvSettings::getFileDelimiter(\fopen(__DIR__ . '/semicolon.csv', 'r')));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testStringDelimiter() : void
|
||||||
|
{
|
||||||
|
self::assertEquals(':', CsvSettings::getStringDelimiter(\file_get_contents(__DIR__ . '/colon.csv')));
|
||||||
|
self::assertEquals(',', CsvSettings::getStringDelimiter(\file_get_contents(__DIR__ . '/comma.csv')));
|
||||||
|
self::assertEquals('|', CsvSettings::getStringDelimiter(\file_get_contents(__DIR__ . '/pipe.csv')));
|
||||||
|
self::assertEquals(';', CsvSettings::getStringDelimiter(\file_get_contents(__DIR__ . '/semicolon.csv')));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,11 +28,18 @@ class HostnameTest extends \PHPUnit\Framework\TestCase
|
||||||
* @covers phpOMS\Validation\Network\Hostname
|
* @covers phpOMS\Validation\Network\Hostname
|
||||||
* @group framework
|
* @group framework
|
||||||
*/
|
*/
|
||||||
public function testHostname() : void
|
public function testHostnameDomain() : void
|
||||||
{
|
{
|
||||||
self::assertTrue(Hostname::isValid('test.com'));
|
self::assertTrue(Hostname::isValid('test.com'));
|
||||||
self::assertFalse(Hostname::isValid('http://test.com'));
|
self::assertFalse(Hostname::isValid('http://test.com'));
|
||||||
self::assertFalse(Hostname::isValid('test.com/test?something=a'));
|
self::assertFalse(Hostname::isValid('test.com/test?something=a'));
|
||||||
self::assertFalse(Hostname::isValid('//somethign/wrong'));
|
self::assertFalse(Hostname::isValid('//somethign/wrong'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testHostnameIp() : void
|
||||||
|
{
|
||||||
|
self::assertTrue(Hostname::isValid('127.0.0.1'));
|
||||||
|
self::assertTrue(Hostname::isValid('[2001:0db8:85a3:0000:0000:8a2e:0370:7334]'));
|
||||||
|
self::assertFalse(Hostname::isValid('2001:0db8:85a3:0000:0000:8a2e:0370:7334'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user