Passed
Push — master ( 15bdaa...c2dfbc )
by Saulius
10:02
created

ClassTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 26
rs 10
c 0
b 0
f 0
wmc 2
lcom 0
cbo 1
1
<?php
2
/**
3
 * This file is part of the sauls/helpers package.
4
 *
5
 * @author    Saulius Vaičeliūnas <[email protected]>
6
 * @link      http://saulius.vaiceliunas.lt
7
 * @copyright 2018
8
 *
9
 * For the full copyright and license information, please view the LICENSE
10
 * file that was distributed with this source code.
11
 */
12
13
namespace Sauls\Component\Helper;
14
15
use PHPUnit\Framework\TestCase;
16
use Sauls\Component\Helper\Stubs\DummyObject;
17
use Sauls\Component\Helper\Stubs\DummyOneTraitObject;
18
use Sauls\Component\Helper\Stubs\DummyTwoTraitObject;
19
use Sauls\Component\Helper\Stubs\Traits\OneVariableTrait;
20
use Sauls\Component\Helper\Stubs\Traits\UselessTrait;
21
22
class ClassTest extends TestCase
23
{
24
    /**
25
     * @test
26
     */
27
    public function should_return_class_and_class_child_traits()
28
    {
29
        $this->assertSame([], class_traits(DummyObject::class));
30
        $this->assertSame([UselessTrait::class => UselessTrait::class], class_traits(DummyOneTraitObject::class));
31
        $this->assertSame([
32
            UselessTrait::class => UselessTrait::class,
33
            OneVariableTrait::class => OneVariableTrait::class,
34
        ], class_traits(DummyTwoTraitObject::class));
35
    }
36
37
    /**
38
     * @test
39
     */
40
    public function should_check_if_class_has_given_trait()
41
    {
42
        $this->assertFalse(class_uses_trait(DummyObject::class, UselessTrait::class));
43
        $this->assertTrue(class_uses_trait(DummyOneTraitObject::class, UselessTrait::class));
44
        $this->assertTrue(class_uses_trait(DummyTwoTraitObject::class, UselessTrait::class));
45
        $this->assertTrue(class_uses_trait(DummyTwoTraitObject::class, OneVariableTrait::class));
46
    }
47
}
48