Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
ConvertCase
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
2 / 2
7
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
5
 filter
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace Verja\Filter;
4
5use Verja\Filter;
6
7class ConvertCase extends Filter
8{
9    /** @var int */
10    protected $mode;
11
12    /**
13     * ConvertCase constructor.
14     *
15     * @param int|string $mode
16     */
17    public function __construct($mode)
18    {
19        if (is_int($mode)) {
20            $this->mode = $mode;
21        }
22
23        switch ($mode) {
24            case 'upper':
25                $this->mode = MB_CASE_UPPER;
26                break;
27            case 'lower':
28                $this->mode = MB_CASE_LOWER;
29                break;
30            case 'title':
31                $this->mode = MB_CASE_TITLE;
32        }
33    }
34
35
36    /**
37     * Filter $value
38     *
39     * @param mixed $value
40     * @param array $context
41     * @return mixed
42     */
43    public function filter($value, array $context = [])
44    {
45        if (!is_string($value)) {
46            return $value;
47        }
48
49        return mb_convert_case($value, $this->mode);
50    }
51}