J. King
7 years ago
21 changed files with 507 additions and 155 deletions
@ -0,0 +1,204 @@ |
|||
<?php |
|||
declare(strict_types=1); |
|||
namespace JKingWeb\Arsse; |
|||
|
|||
use JKingWeb\Arsse\Misc\ValueInfo as I; |
|||
use JKingWeb\Arsse\Test\Misc\StrClass; |
|||
|
|||
/** @covers \JKingWeb\Arsse\Misc\ValueInfo */ |
|||
class TestValueInfo extends Test\AbstractTest { |
|||
public function testGetIntegerInfo() { |
|||
$tests = [ |
|||
[null, I::NULL], |
|||
["", I::NULL], |
|||
[1, I::VALID], |
|||
[PHP_INT_MAX, I::VALID], |
|||
[1.0, I::VALID], |
|||
["1.0", I::VALID], |
|||
["001.0", I::VALID], |
|||
["1.0e2", I::VALID], |
|||
["1", I::VALID], |
|||
["001", I::VALID], |
|||
["1e2", I::VALID], |
|||
["+1.0", I::VALID], |
|||
["+001.0", I::VALID], |
|||
["+1.0e2", I::VALID], |
|||
["+1", I::VALID], |
|||
["+001", I::VALID], |
|||
["+1e2", I::VALID], |
|||
[0, I::VALID | I::ZERO], |
|||
["0", I::VALID | I::ZERO], |
|||
["000", I::VALID | I::ZERO], |
|||
[0.0, I::VALID | I::ZERO], |
|||
["0.0", I::VALID | I::ZERO], |
|||
["000.000", I::VALID | I::ZERO], |
|||
["+0", I::VALID | I::ZERO], |
|||
["+000", I::VALID | I::ZERO], |
|||
["+0.0", I::VALID | I::ZERO], |
|||
["+000.000", I::VALID | I::ZERO], |
|||
[-1, I::VALID | I::NEG], |
|||
[-1.0, I::VALID | I::NEG], |
|||
["-1.0", I::VALID | I::NEG], |
|||
["-001.0", I::VALID | I::NEG], |
|||
["-1.0e2", I::VALID | I::NEG], |
|||
["-1", I::VALID | I::NEG], |
|||
["-001", I::VALID | I::NEG], |
|||
["-1e2", I::VALID | I::NEG], |
|||
[-0, I::VALID | I::ZERO], |
|||
["-0", I::VALID | I::ZERO], |
|||
["-000", I::VALID | I::ZERO], |
|||
[-0.0, I::VALID | I::ZERO], |
|||
["-0.0", I::VALID | I::ZERO], |
|||
["-000.000", I::VALID | I::ZERO], |
|||
[false, 0], |
|||
[true, 0], |
|||
[INF, 0], |
|||
[-INF, 0], |
|||
[NAN, 0], |
|||
[[], 0], |
|||
["some string", 0], |
|||
[" ", 0], |
|||
[new \StdClass, 0], |
|||
[new StrClass(""), I::NULL], |
|||
[new StrClass("1"), I::VALID], |
|||
[new StrClass("0"), I::VALID | I::ZERO], |
|||
[new StrClass("-1"), I::VALID | I::NEG], |
|||
[new StrClass("Msg"), 0], |
|||
[new StrClass(" "), 0], |
|||
]; |
|||
foreach ($tests as $test) { |
|||
list($value, $exp) = $test; |
|||
$this->assertSame($exp, I::int($value), "Test returned ".decbin(I::int($value))." for value: ".var_export($value, true)); |
|||
} |
|||
} |
|||
public function testGetStringInfo() { |
|||
$tests = [ |
|||
[null, I::NULL], |
|||
["", I::VALID | I::EMPTY], |
|||
[1, I::VALID], |
|||
[PHP_INT_MAX, I::VALID], |
|||
[1.0, I::VALID], |
|||
["1.0", I::VALID], |
|||
["001.0", I::VALID], |
|||
["1.0e2", I::VALID], |
|||
["1", I::VALID], |
|||
["001", I::VALID], |
|||
["1e2", I::VALID], |
|||
["+1.0", I::VALID], |
|||
["+001.0", I::VALID], |
|||
["+1.0e2", I::VALID], |
|||
["+1", I::VALID], |
|||
["+001", I::VALID], |
|||
["+1e2", I::VALID], |
|||
[0, I::VALID], |
|||
["0", I::VALID], |
|||
["000", I::VALID], |
|||
[0.0, I::VALID], |
|||
["0.0", I::VALID], |
|||
["000.000", I::VALID], |
|||
["+0", I::VALID], |
|||
["+000", I::VALID], |
|||
["+0.0", I::VALID], |
|||
["+000.000", I::VALID], |
|||
[-1, I::VALID], |
|||
[-1.0, I::VALID], |
|||
["-1.0", I::VALID], |
|||
["-001.0", I::VALID], |
|||
["-1.0e2", I::VALID], |
|||
["-1", I::VALID], |
|||
["-001", I::VALID], |
|||
["-1e2", I::VALID], |
|||
[-0, I::VALID], |
|||
["-0", I::VALID], |
|||
["-000", I::VALID], |
|||
[-0.0, I::VALID], |
|||
["-0.0", I::VALID], |
|||
["-000.000", I::VALID], |
|||
[false, 0], |
|||
[true, 0], |
|||
[INF, 0], |
|||
[-INF, 0], |
|||
[NAN, 0], |
|||
[[], 0], |
|||
["some string", I::VALID], |
|||
[" ", I::VALID | I::WHITE], |
|||
[new \StdClass, 0], |
|||
[new StrClass(""), I::VALID | I::EMPTY], |
|||
[new StrClass("1"), I::VALID], |
|||
[new StrClass("0"), I::VALID], |
|||
[new StrClass("-1"), I::VALID], |
|||
[new StrClass("Msg"), I::VALID], |
|||
[new StrClass(" "), I::VALID | I::WHITE], |
|||
]; |
|||
foreach ($tests as $test) { |
|||
list($value, $exp) = $test; |
|||
$this->assertSame($exp, I::str($value), "Test returned ".decbin(I::str($value))." for value: ".var_export($value, true)); |
|||
} |
|||
} |
|||
|
|||
public function testValidateDatabaseIdentifier() { |
|||
$tests = [ |
|||
[null, false, true], |
|||
["", false, true], |
|||
[1, true, true], |
|||
[PHP_INT_MAX, true, true], |
|||
[1.0, true, true], |
|||
["1.0", true, true], |
|||
["001.0", true, true], |
|||
["1.0e2", true, true], |
|||
["1", true, true], |
|||
["001", true, true], |
|||
["1e2", true, true], |
|||
["+1.0", true, true], |
|||
["+001.0", true, true], |
|||
["+1.0e2", true, true], |
|||
["+1", true, true], |
|||
["+001", true, true], |
|||
["+1e2", true, true], |
|||
[0, false, true], |
|||
["0", false, true], |
|||
["000", false, true], |
|||
[0.0, false, true], |
|||
["0.0", false, true], |
|||
["000.000", false, true], |
|||
["+0", false, true], |
|||
["+000", false, true], |
|||
["+0.0", false, true], |
|||
["+000.000", false, true], |
|||
[-1, false, false], |
|||
[-1.0, false, false], |
|||
["-1.0", false, false], |
|||
["-001.0", false, false], |
|||
["-1.0e2", false, false], |
|||
["-1", false, false], |
|||
["-001", false, false], |
|||
["-1e2", false, false], |
|||
[-0, false, true], |
|||
["-0", false, true], |
|||
["-000", false, true], |
|||
[-0.0, false, true], |
|||
["-0.0", false, true], |
|||
["-000.000", false, true], |
|||
[false, false, false], |
|||
[true, false, false], |
|||
[INF, false, false], |
|||
[-INF, false, false], |
|||
[NAN, false, false], |
|||
[[], false, false], |
|||
["some string", false, false], |
|||
[" ", false, false], |
|||
[new \StdClass, false, false], |
|||
[new StrClass(""), false, true], |
|||
[new StrClass("1"), true, true], |
|||
[new StrClass("0"), false, true], |
|||
[new StrClass("-1"), false, false], |
|||
[new StrClass("Msg"), false, false], |
|||
[new StrClass(" "), false, false], |
|||
]; |
|||
foreach ($tests as $test) { |
|||
list($value, $exp, $expNull) = $test; |
|||
$this->assertSame($exp, I::id($value), "Non-null test failed for value: ".var_export($value, true)); |
|||
$this->assertSame($expNull, I::id($value, true), "Null test failed for value: ".var_export($value, true)); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,15 @@ |
|||
<?php |
|||
declare(strict_types=1); |
|||
namespace JKingWeb\Arsse\Test\Misc; |
|||
|
|||
class StrClass { |
|||
public $str = ""; |
|||
|
|||
public function __construct($str) { |
|||
$this->str = (string) $str; |
|||
} |
|||
|
|||
public function __toString() { |
|||
return $this->str; |
|||
} |
|||
} |
Loading…
Reference in new issue