Completed
Push — master ( 93d710...74f423 )
by Siwapun
04:08
created

PathTest::testSimplePathAndNotFound()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Aerophant\RamdaTest;
4
5
use function Aerophant\Ramda\path;
6
use PHPUnit\Framework\TestCase;
7
8
class PathTest extends TestCase
9
{
10
  public function testSimplePath()
11
  {
12
    $paths = ['data'];
13
    $object = ['data' => 'dataValue'];
14
    $expect = 'dataValue';
15
    $actual = path($paths)($object);
16
    $this->assertEquals($expect, $actual);
17
  }
18
  public function testNestedPath()
19
  {
20
    $paths = ['data', 'nestedData'];
21
    $object = ['data' => ['nestedData' => 'dataValue']];
22
    $expect = 'dataValue';
23
    $actual = path($paths)($object);
24
    $this->assertEquals($expect, $actual);
25
  }
26
  public function testSimplePathAndNotFound()
27
  {
28
    $paths = ['data'];
29
    $object = ['anotherData' => 'dataValue'];
30
    $actual = path($paths)($object);
31
    $this->assertNull($actual);
32
  }
33
  public function testNestedPathAndNotFound()
34
  {
35
    $paths = ['data', 'nestedData'];
36
    $object = ['data' => ['anotherNestedData' => 'dataValue']];
37
    $actual = path($paths)($object);
38
    $this->assertNull($actual);
39
  }
40
  public function testUnsupportedObject()
41
  {
42
    $this->expectException(\InvalidArgumentException::class);
43
    $paths = ['data', 'nestedData'];
44
    $object = new \stdClass();
45
    path($paths)($object);
46
  }
47
}
48