1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-23 09:02:41 +00:00
Arsse/tests/lib/AbstractTest.php

50 lines
1.6 KiB
PHP
Raw Normal View History

<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\Test;
2017-08-29 14:50:31 +00:00
use JKingWeb\Arsse\Exception;
use JKingWeb\Arsse\Arsse;
use JKingWeb\Arsse\Misc\Date;
2017-07-20 22:36:03 +00:00
/** @coversNothing */
abstract class AbstractTest extends \PHPUnit\Framework\TestCase {
2017-08-29 14:50:31 +00:00
public function assertException(string $msg = "", string $prefix = "", string $type = "Exception") {
if (func_num_args()) {
$class = \JKingWeb\Arsse\NS_BASE . ($prefix !== "" ? str_replace("/", "\\", $prefix) . "\\" : "") . $type;
$msgID = ($prefix !== "" ? $prefix . "/" : "") . $type. ".$msg";
2017-08-29 14:50:31 +00:00
if (array_key_exists($msgID, Exception::CODES)) {
$code = Exception::CODES[$msgID];
} else {
$code = 0;
}
$this->expectException($class);
$this->expectExceptionCode($code);
} else {
// expecting a standard PHP exception
$this->expectException(\Exception::class);
}
}
public function assertTime($exp, $test, string $msg = null) {
$exp = Date::transform($exp, "iso8601");
$test = Date::transform($test, "iso8601");
$this->assertSame($exp, $test, $msg);
}
2017-08-29 14:50:31 +00:00
public function clearData(bool $loadLang = true): bool {
$r = new \ReflectionClass(\JKingWeb\Arsse\Arsse::class);
$props = array_keys($r->getStaticProperties());
2017-08-29 14:50:31 +00:00
foreach ($props as $prop) {
Arsse::$$prop = null;
}
2017-08-29 14:50:31 +00:00
if ($loadLang) {
Arsse::$lang = new \JKingWeb\Arsse\Lang();
}
return true;
}
2017-08-29 14:50:31 +00:00
}