-
-
Notifications
You must be signed in to change notification settings - Fork 53
Expand file tree
/
Copy pathNotTest.php
More file actions
59 lines (52 loc) · 1.83 KB
/
NotTest.php
File metadata and controls
59 lines (52 loc) · 1.83 KB
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
<?php
declare(strict_types=1);
namespace Arkitect\Tests\Unit\Expressions\Boolean;
use Arkitect\Analyzer\ClassDescription;
use Arkitect\Analyzer\FullyQualifiedClassName;
use Arkitect\Expression\Boolean\Not;
use Arkitect\Expression\ForClasses\IsInterface;
use Arkitect\Rules\Violations;
use PHPUnit\Framework\TestCase;
class NotTest extends TestCase
{
public function test_it_should_return_violation_error(): void
{
$isNotInterface = new Not(new IsInterface());
$classDescription = new ClassDescription(
FullyQualifiedClassName::fromString('HappyIsland'),
[],
[],
null,
false,
false,
true,
false,
false
);
$because = 'we want to add this rule for our software';
$violationError = $isNotInterface->describe($classDescription, $because)->toString();
$violations = new Violations();
$isNotInterface->evaluate($classDescription, $violations, $because);
self::assertNotEquals(0, $violations->count());
$this->assertEquals('must NOT (HappyIsland should be an interface) because we want to add this rule for our software', $violationError);
}
public function test_it_should_return_true_if_is_not_interface(): void
{
$isNotInterface = new Not(new IsInterface());
$classDescription = new ClassDescription(
FullyQualifiedClassName::fromString('HappyIsland'),
[],
[],
null,
false,
false,
false,
false,
false
);
$because = 'we want to add this rule for our software';
$violations = new Violations();
$isNotInterface->evaluate($classDescription, $violations, $because);
self::assertEquals(0, $violations->count());
}
}