Beispiel #1
0
 public function testCreationFromArray()
 {
     $array = ['token', 'test'];
     $language = $this->getLanguageMock();
     $context = Context::fromArray($array, $language);
     $this->assertSame($language, $context->language);
     $this->assertEquals($array, $context->stack);
 }
 public function testValidation()
 {
     $start = $this->_factory->create('test', ['pos' => 10, 'length' => 1, 'rule' => $this->_rule]);
     $startEnd = $start->getEnd();
     $endStart = $this->_factory->create('test', ['pos' => 12, 'length' => 1, 'rule' => $this->_rule]);
     $end = $endStart->getEnd();
     $this->assertTrue($start->isValid(Context::fromArray([], $this->_language)));
     $this->assertFalse($startEnd->isValid(Context::fromArray(['test'], $this->_language)));
     $this->assertFalse($endStart->isValid(Context::fromArray(['test'], $this->_language)));
     $this->assertTrue($end->isValid(Context::fromArray(['test'], $this->_language)));
     $this->assertTrue($start->isStart());
     $this->assertTrue($endStart->isStart());
     $this->assertTrue($end->isEnd());
     $this->assertTrue($startEnd->isEnd());
 }
Beispiel #3
0
 public function testTokenValidation()
 {
     /** @var Language $language */
     $language = $this->getMockBuilder('Kadet\\Highlighter\\Language\\Language')->disableOriginalConstructor()->getMock();
     $validator = $this->getMock(Validator::class);
     $context = Context::fromArray([], $language);
     $validator->expects($this->once())->method('validate')->with($context, []);
     $token = $this->_factory->create('test.name', ['pos' => 15, 'length' => 10, 'rule' => new Rule(null, ['language' => $language, 'context' => $validator])]);
     $token->isValid($context);
 }
Beispiel #4
0
 public function testCallableValidator()
 {
     $validator = new DelegateValidator(function ($context) {
         return in_array('bar', $context->stack) && !in_array('foo', $context->stack);
     });
     $this->assertFalse($validator->validate(Context::fromArray(['test'])));
     $this->assertTrue($validator->validate(Context::fromArray(['bar'])));
     $this->assertTrue($validator->validate(Context::fromArray(['bar', 'smth'])));
     $this->assertFalse($validator->validate(Context::fromArray(['bar', 'foo'])));
 }