Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
15 / 15
Contains
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
3 / 3
5
100.00% covered (success)
100.00%
15 / 15
 __construct
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 validate
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
8 / 8
 getInverseError
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
5 / 5
<?php
namespace Verja\Validator;
use Verja\Error;
use Verja\Validator;
class Contains extends Validator
{
    /** @var string */
    protected $subString;
    /**
     * Contains constructor.
     *
     * @param string $subString
     */
    public function __construct(string $subString)
    {
        $this->subString = $subString;
    }
    /** {@inheritdoc} */
    public function validate($value, array $context = []): bool
    {
        if (!is_string($value) || strpos($value, $this->subString) === false) {
            $this->error = new Error(
                'NOT_CONTAINS',
                $value,
                sprintf('value should contain "%s"', $this->subString),
                [ 'subString' => $this->subString ]
            );
            return false;
        }
        return true;
    }
    /** {@inheritdoc} */
    public function getInverseError($value)
    {
        return new Error(
            'CONTAINS',
            $value,
            sprintf('value should not contain "%s"', $this->subString),
            [ 'subString' => $this->subString ]
        );
    }
}