Exemplo n.º 1
0
 /**
  * @dataProvider includeProvider
  *
  * @param array $toInclude
  * @param array $parentRelationships
  * @param array $expectedSequence
  */
 public function testIncludes(array $toInclude, array $parentRelationships, array $expectedSequence)
 {
     $metadataMock = $this->createMetadataMock(["entity" => "one", "relationships" => $parentRelationships]);
     $sequencer = new TokenSequencer($this->tokenFactory, "find", $metadataMock);
     foreach ($toInclude as $include) {
         $includeMetadata = $this->createMetadataMock($include["metadata"]);
         $alias = isset($include["alias"]) ? $include["alias"] : "";
         $parent = isset($include["parent"]) ? $include["parent"] : "";
         $filters = null;
         if (!empty($include["filters"])) {
             $filters = \Mockery::mock("Silktide\\Reposition\\QueryBuilder\\TokenSequencerInterface");
             $filters->shouldReceive("getSequence")->andReturn($include["filters"]);
         }
         $sequencer->includeEntity($includeMetadata, $alias, $parent, $filters);
     }
     $this->assertEquals($expectedSequence, $sequencer->getSequence());
 }
Exemplo n.º 2
0
 public function keyword($keyword)
 {
     $sequencer = new TokenSequencer($this->tokenFactory);
     return $sequencer->keyword($keyword);
 }
Exemplo n.º 3
0
 /**
  * wraps the following expression in parentheses to isolate it
  * @param TokenSequencer|Token|mixed $content
  * @return $this
  */
 public function closure($content = null)
 {
     $this->addNewToSequence("open");
     if (!empty($content)) {
         if ($content instanceof TokenSequencer) {
             $this->mergeSequence($content->getSequence());
         } elseif ($content instanceof Token) {
             $this->addToSequence($content);
         } elseif (is_array($content)) {
             foreach ($content as $subContent) {
                 $this->addMixedContentToSequence($subContent);
             }
         } else {
             $this->val($content);
         }
     }
     $this->addNewToSequence("close");
     return $this;
 }