Passed
Push — master ( 5148d0...ae5366 )
by Jean Paul
01:15
created

RowTest::testRemoveAttribute()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 4
c 1
b 0
f 0
dl 0
loc 8
rs 10
cc 1
nc 1
nop 0
1
<?php declare( strict_types = 1 );
2
3
namespace Coco\SourceWatcher\Tests\Core;
4
5
use Coco\SourceWatcher\Core\Row;
6
use PHPUnit\Framework\TestCase;
7
8
class RowTest extends TestCase
9
{
10
    public function testGetAttribute () : void
11
    {
12
        $row = new Row( [ "name" => "Jane Doe" ] );
13
        $expectedAttributeValue = "Jane Doe";
14
        $this->assertEquals( $expectedAttributeValue, $row->get( "name" ) );
15
    }
16
17
    public function testSetAttribute () : void
18
    {
19
        $row = new Row( [ "name" => "Jane Doe" ] );
20
        $row->set( "name", "John Doe" );
21
22
        $expectedAttributeValue = "John Doe";
23
24
        $this->assertEquals( $expectedAttributeValue, $row->get( "name" ) );
25
    }
26
27
    public function testRemoveAttribute () : void
28
    {
29
        $row = new Row( [ "name" => "Jane Doe" ] );
30
        $row->remove( "name" );
31
32
        $expectedAttributeValue = null;
33
34
        $this->assertEquals( $expectedAttributeValue, $row->get( "name" ) );
35
    }
36
37
    public function testAccessAttributeNotationArray () : void
38
    {
39
        $row = new Row( [ "name" => "Jane Doe" ] );
40
        $expectedAttributeValue = "Jane Doe";
41
        $this->assertEquals( $expectedAttributeValue, $row["name"] );
42
    }
43
44
    public function testAccessAttributeNotationObject () : void
45
    {
46
        $row = new Row( [ "name" => "Jane Doe" ] );
47
        $expectedAttributeValue = "Jane Doe";
48
        $this->assertEquals( $expectedAttributeValue, $row->name );
0 ignored issues
show
Bug Best Practice introduced by
The property name does not exist on Coco\SourceWatcher\Core\Row. Since you implemented __get, consider adding a @property annotation.
Loading history...
49
    }
50
51
    public function testOffsetExistsViaEmpty () : void
52
    {
53
        $row = new Row( [ "name" => "Jane Doe" ] );
54
55
        // test the offsetExists method
56
        $this->assertTrue( empty( $row["id"] ) );
57
    }
58
59
    public function testOffsetExistsViaIsSet () : void
60
    {
61
        $row = new Row( [ "name" => "Jane Doe" ] );
62
63
        // test the offsetExists method
64
        $this->assertNotTrue( isset( $row["id"] ) );
65
    }
66
67
    public function testOffsetGetAndSetWithArrayNotation () : void
68
    {
69
        $givenName = "Jane Doe";
70
71
        $row = new Row( [ "id" => 1 ] );
72
        $row["name"] = $givenName;  // test the offsetSet method
73
74
        $expectedName = "Jane Doe";
75
        $actualName = $row["name"]; // test the offsetGet method
76
77
        $this->assertEquals( $expectedName, $actualName );
78
    }
79
80
    public function testOffsetUnset () : void
81
    {
82
        $row = new Row( [ "id" => 1, "name" => "Jane Doe" ] );
83
84
        // test the offsetUnset method
85
        unset( $row["id"] );
86
87
        $expectedRow = new Row( [ "name" => "Jane Doe" ] );
88
89
        $this->assertEquals( $expectedRow, $row );
90
    }
91
}
92