TransformMethodsTraitTest::testImplode()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 6
c 1
b 0
f 1
dl 0
loc 9
rs 10
cc 1
nc 1
nop 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