Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
15 / 15
ConvertCase
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
7
100.00% covered (success)
100.00%
15 / 15
 __construct
100.00% covered (success)
100.00%
1 / 1
5
100.00% covered (success)
100.00%
12 / 12
 filter
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
3 / 3
<?php
namespace Verja\Filter;
use Verja\Filter;
class ConvertCase extends Filter
{
    /** @var int */
    protected $mode;
    /**
     * ConvertCase constructor.
     *
     * @param int|string $mode
     */
    public function __construct($mode)
    {
        if (is_int($mode)) {
            $this->mode = $mode;
        }
        switch ($mode) {
            case 'upper':
                $this->mode = MB_CASE_UPPER;
                break;
            case 'lower':
                $this->mode = MB_CASE_LOWER;
                break;
            case 'title':
                $this->mode = MB_CASE_TITLE;
        }
    }
    /**
     * Filter $value
     *
     * @param mixed $value
     * @param array $context
     * @return mixed
     */
    public function filter($value, array $context = [])
    {
        if (!is_string($value)) {
            return $value;
        }
        return mb_convert_case($value, $this->mode);
    }
}