ImmutableKeyValuePairTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 2
dl 0
loc 41
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A basicUsage() 0 8 1
A cloneObject() 0 11 1
1
<?php
2
namespace SubjectivePHPTest\Spl\DataStructures;
3
4
use SubjectivePHP\Spl\DataStructures\ImmutableKeyValuePair;
5
use PHPUnit\Framework\TestCase;
6
7
/**
8
 * Unit tests for the \SubjectivePHP\Spl\DataStructures\ImmutableKeyValuePair class.
9
 *
10
 * @coversDefaultClass \SubjectivePHP\Spl\DataStructures\ImmutableKeyValuePair
11
 */
12
final class ImmutableKeyValuePairTest extends TestCase
13
{
14
    /**
15
     * Verify basic behavior of ImmutableKeyValuePair class.
16
     *
17
     * @test
18
     * @covers ::__construct
19
     * @covers ::getValue
20
     * @covers ::getKey
21
     *
22
     * @return void
23
     */
24
    public function basicUsage()
25
    {
26
        $key = new \StdClass();
27
        $value = new \Exception();
28
        $pair = new ImmutableKeyValuePair($key, $value);
29
        $this->assertSame($key, $pair->getKey());
30
        $this->assertSame($value, $pair->getValue());
31
    }
32
33
    /**
34
     * Verify basic behavior of __clone().
35
     *
36
     * @test
37
     * @covers ::__clone
38
     *
39
     * @return void
40
     */
41
    public function cloneObject()
42
    {
43
        $key = new \DateTime();
44
        $value = (object)['foo' => 'bar'];
45
        $pair = new ImmutableKeyValuePair($key, $value);
46
47
        $clone = clone $pair;
48
49
        $this->assertNotSame($key, $clone->getKey());
50
        $this->assertNotSame($value, $clone->getValue());
51
    }
52
}
53