-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathassertions.php
62 lines (48 loc) · 2.94 KB
/
assertions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php declare(strict_types=1);
namespace {
function assert_base_condition(callable $test_fn, $actual, $expected, string $message, string $output = "") {
if ($test_fn($actual, $expected) === false) {
TinyTest\count_assertion_fail();
if ($output !== "") { echo $output; }
throw new TinyTest\TestError($message, $actual, $expected);
}
TinyTest\count_assertion_pass();
}
function assert_true($condition, string $message, string $output = "") {
assert_base_condition(function($condition, $expected) { return $condition; }, $condition, true, $message, $output);
}
function assert_false($condition, string $message, string $output = "") {
assert_base_condition(function($condition, $expected) { return !$condition; }, $condition, false, $message, $output);
}
function assert_eq($actual, $expected, string $message, string $output = "") {
assert_base_condition(function($actual, $expected) { return $actual === $expected; }, $actual, $expected, $message, $output);
}
function assert_eqic($actual, $expected, string $message) {
assert_base_condition(function($actual, $expected) { return ($actual === $expected || ($actual != null && strcasecmp($actual, $expected) === 0)); }, $actual, $expected, $message);
}
function assert_neq($actual, $expected, string $message) {
assert_base_condition(function($actual, $expected) { return $actual !== $expected; }, $actual, $expected, $message);
}
function assert_gt($actual, $expected, string $message) {
assert_base_condition(function($actual, $expected) { return $actual > $expected; }, $actual, $expected, $message);
}
function assert_lt($actual, $expected, string $message) {
assert_base_condition(function($actual, $expected) { return $actual < $expected; }, $actual, $expected, $message);
}
function assert_icontains(?string $haystack, ?string $needle, string $message) {
assert_base_condition(function(?string $needle, ?string $haystack) {
return ($haystack != null && stripos($haystack, $needle) !== false); }, $needle, $haystack, $message);
}
function assert_contains(?string $haystack, ?string $needle, string $message) {
assert_base_condition(function(?string $needle, ?string $haystack) {
return ($haystack != null && strpos($haystack, $needle) !== false); }, $needle, $haystack, $message);
}
function assert_not_contains(?string $haystack, ?string $needle, string $message) {
assert_base_condition(function(?string $needle, ?string $haystack) {
return ($haystack == null || $needle == null || strpos($haystack, $needle) === false); }, $needle, $haystack, $message);
}
function assert_instanceof($actual, $expected, $message) {
assert_base_condition(function($actual, $expected) {
return ($actual != null && $actual instanceof $expected); }, $actual, $expected, $message);
}
}