Source of file HeuristicTest.php
Size: 2,398 Bytes - Last Modified: 2021-12-23T10:02:17+00:00
/var/www/docs.ssmods.com/process/src/tests/HeuristicTest.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | <?php namespace Seeder\Tests; use Seeder\Helpers\HeuristicParser; use Seeder\Util\BatchedSeedWriter; use Seeder\Util\Field; use Seeder\Util\RecordWriter; /** * Class HeuristicTest * @package Seeder\Tests */ class HeuristicTest extends \SapphireTest { /** * */ public function testMatch_IsAMatcher_SiteTreeIsASiteTree() { $parser = new HeuristicParser(); $heuristics = $parser->parse(array( 'URLSegment' => array( 'conditions' => array( 'name' => 'URLSegment', 'parent' => 'is_a(SiteTree)', ), 'field' => 'URLSegment()', ) )); $heuristic = $heuristics[0]; $field = new Field(); $field->name = 'Page'; $field->dataType = 'SiteTree'; $urlField = new Field(); $urlField->name = 'URLSegment'; $urlField->dataType = 'Varchar'; $urlField->fieldType = Field::FT_FIELD; $urlField->parent = $field; $field->fields[] = $urlField; $this->assertTrue($heuristic->match($urlField)); $heuristic->apply($urlField, new RecordWriter()); $this->assertInstanceOf('Seeder\URLSegmentProvider', $urlField->provider); } /** * */ public function testMatch_ManyConditions_MatchesSuccessfully() { $parser = new HeuristicParser(); $heuristics = $parser->parse(array( 'MenuTitle' => array( 'conditions' => array( 'name' => 'MenuTitle', 'fieldType' => 'db', 'dataType' => 'like(varchar%)', 'parent' => 'is_a(SiteTree)', ), 'field' => '{$Title}', ) )); $heuristic = $heuristics[0]; $field = new Field(); $field->name = 'Magic'; $field->dataType = 'SiteTree'; $titleField = new Field(); $titleField->name = 'MenuTitle'; $titleField->dataType = 'Varchar'; $titleField->fieldType = Field::FT_FIELD; $titleField->parent = $field; $field->fields[] = $titleField; $this->assertTrue($heuristic->match($titleField)); $heuristic->apply($titleField, new RecordWriter()); $this->assertInstanceOf('Seeder\ValueProvider', $titleField->provider); } } |