TransformMethodsTraitTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 2
Bugs 1 Features 1
Metric Value
wmc 2
eloc 11
c 2
b 1
f 1
dl 0
loc 23
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A test_transform() 0 7 1
A testImplode() 0 9 1
1
<?php
2
3
namespace Nip\Collections\Tests\Traits;
4
5
use Nip\Collections\Collection;
6
use Nip\Collections\Tests\AbstractTest;
7
use Nip\Utility\Str;
8
9
/**
10
 * Class TransformMethodsTraitTest
11
 * @package Nip\Collections\Tests\Traits
12
 */
13
class TransformMethodsTraitTest extends AbstractTest
14
{
15
    /**
16
     * @dataProvider collectionClassProvider
17
     */
18
    public function testImplode($collection)
19
    {
20
        $data = new $collection([['name' => 'taylor', 'email' => 'foo'], ['name' => 'dayle', 'email' => 'bar']]);
21
        $this->assertSame('foobar', $data->implode('email'));
22
        $this->assertSame('foo,bar', $data->implode('email', ','));
23
24
        $data = new $collection(['taylor', 'dayle']);
25
        $this->assertSame('taylordayle', $data->implode(''));
26
        $this->assertSame('taylor,dayle', $data->implode(','));
27
    }
28
29
    public function test_transform()
30
    {
31
        $data = new Collection(['first' => 'john', 'last' => 'doe']);
32
        $data->transform(function ($item, $key) {
33
            return $key . '-' . strrev($item);
34
        });
35
        static::assertEquals(['first' => 'first-nhoj', 'last' => 'last-eod'], $data->all());
36
    }
37
}
38