izzum\statemachine\utils\UtilsTest::shouldMatchValidRegexAndNegatedRegex PHP Метод

shouldMatchValidRegexAndNegatedRegex() публичный Метод

    public function shouldMatchValidRegexAndNegatedRegex()
    {
        $name = 'regex:/.*/';
        //only allow regexes between regex begin and end markers
        $regex = new State($name);
        $target = new State('aa');
        $this->assertTrue(Utils::matchesRegex($regex, $target), 'only allow regexes between regex begin and end markers');
        $name = 'regex:/a|b/';
        //allow regexes without regex begin and end markers
        $regex = new State($name);
        $target = new State('b');
        $this->assertTrue(Utils::matchesRegex($regex, $target));
        $name = 'regex:/c|a|aa/';
        $regex = new State($name);
        $target = new State('aa');
        $this->assertTrue(Utils::matchesRegex($regex, $target));
        $name = 'regex:/action-.*/';
        $regex = new State($name);
        $target = new State('action-hero');
        $bad = new State('action_hero');
        $this->assertTrue(Utils::matchesRegex($regex, $target));
        $this->assertFalse(Utils::matchesRegex($regex, $bad));
        $name = 'regex:/go[o,l]d/';
        $regex = new State($name);
        $target = new State('gold');
        $bad = new State('golld');
        $this->assertTrue(Utils::matchesRegex($regex, $target));
        $this->assertFalse(Utils::matchesRegex($regex, $bad));
        //NOT matching a regex
        $name = 'not-regex:/go[o,l]d/';
        $regex = new State($name);
        $target = new State('goad');
        $bad = new State('gold');
        $this->assertTrue(Utils::matchesRegex($regex, $target));
        $this->assertFalse(Utils::matchesRegex($regex, $bad));
    }