Example #1
0
 /**
  * @covers ::compile
  *
  * @dataProvider dataProviderTestCompileWithKnownOperators()
  *
  * @param string $expected
  *   The expected generated SQL condition.
  * @param string $field
  *   The field to pass into the condition() method.
  * @param mixed $value
  *   The value to pass into the condition() method.
  * @param string $operator
  *   The operator to pass into the condition() method.
  * @param mixed $expected_arguments
  *   (optional) The expected set arguments.
  */
 public function testCompileWithKnownOperators($expected, $field, $value, $operator, $expected_arguments = NULL)
 {
     $connection = $this->prophesize(Connection::class);
     $connection->escapeField(Argument::any())->will(function ($args) {
         return preg_replace('/[^A-Za-z0-9_.]+/', '', $args[0]);
     });
     $connection->mapConditionOperator(Argument::any())->willReturn(NULL);
     $connection = $connection->reveal();
     $query_placeholder = $this->prophesize(PlaceholderInterface::class);
     $counter = 0;
     $query_placeholder->nextPlaceholder()->will(function () use(&$counter) {
         return $counter++;
     });
     $query_placeholder->uniqueIdentifier()->willReturn(4);
     $query_placeholder = $query_placeholder->reveal();
     $condition = new Condition('AND');
     $condition->condition($field, $value, $operator);
     $condition->compile($connection, $query_placeholder);
     $this->assertEquals($expected, $condition->__toString());
     if (isset($expected_arguments)) {
         $this->assertEquals($expected_arguments, $condition->arguments());
     }
 }