<?php namespace calderawp\CalderaFormsQuery\Tests\Unit\Select; use calderawp\CalderaFormsQuery\Tests\Unit\TestCase; class EntryValuesTest extends TestCase { /** * Test query by field where field value equals a value * * @covers \calderawp\CalderaFormsQuery\Select\EntryValues::queryByFieldValue() */ public function testQueryByFieldValueEquals() { $expectedSql = "SELECT `cf_form_entry_values`.* FROM `cf_form_entry_values` WHERE (`cf_form_entry_values`.`value` = 'josh@calderawp.com') AND (`cf_form_entry_values`.`slug` = 'email_address')"; $entryValues = $this->entryValuesGeneratorFactory(); $generator = $entryValues->queryByFieldValue( 'email_address', 'josh@calderawp.com' ); $this->assertTrue($this->isAEntryValues($generator)); $actualSql = $entryValues->getPreparedSql(); $this->assertEquals( $expectedSql, $actualSql ); } /** * Test query by field where field value does not equals a value * * @covers \calderawp\CalderaFormsQuery\Select\EntryValues::queryByFieldValue() */ public function testQueryByFieldValueNotEquals() { $expectedSql = "SELECT `cf_form_entry_values`.* FROM `cf_form_entry_values` WHERE (`cf_form_entry_values`.`value` <> 'josh@calderawp.com') AND (`cf_form_entry_values`.`slug` = 'email_address')"; $entryValues = $this->entryValuesGeneratorFactory(); $generator =$entryValues->queryByFieldValue( 'email_address', 'josh@calderawp.com','notEquals' ); $this->assertTrue($this->isAEntryValues($generator)); $actualSql = $entryValues->getPreparedSql(); $this->assertEquals( $expectedSql, $actualSql ); } /** * Test query by field where field value is like a value * * @cover \calderawp\CalderaFormsQuery\Select\EntryValues::$isLike * @covers \calderawp\CalderaFormsQuery\Select\EntryValues::queryByFieldValue() */ public function testQueryByFieldValueLike() { $expectedSql = "SELECT `cf_form_entry_values`.* FROM `cf_form_entry_values` WHERE (`cf_form_entry_values`.`value` LIKE %josh@calderawp.com%)"; $entryValues = $this->entryValuesGeneratorFactory(); $generator = $entryValues->queryByFieldValue( 'email_address', 'josh@calderawp.com','like' ); $this->assertTrue($this->isAEntryValues($generator)); $actualSql = $entryValues->getPreparedSql(); $this->assertEquals( $expectedSql, $actualSql ); } /** * Test query by entry id * * @covers \calderawp\CalderaFormsQuery\Select\EntryValues::queryByFieldValue() */ public function testQueryByEntryId() { $expectedSql = "SELECT `cf_form_entry_values`.* FROM `cf_form_entry_values` WHERE (`cf_form_entry_values`.`entry_id` = '42')"; $entryValues = $this->entryValuesGeneratorFactory(); $generator = $entryValues->queryByEntryId( 42 ); $this->assertTrue($this->isAEntryValues($generator)); $actualSql = $entryValues->getPreparedSql(); $this->assertEquals( $expectedSql, $actualSql ); } /** * @param $generator * @return bool */ protected function isAEntryValues($generator) { return is_a($generator, '\calderawp\CalderaFormsQuery\Select\EntryValues'); } }