Skip to content
Snippets Groups Projects
EntryValuesTest.php 2.97 KiB
Newer Older
Josh Pollock's avatar
Josh Pollock committed
<?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();
Josh Pollock's avatar
Josh Pollock committed
		$generator = $entryValues->queryByFieldValue('email_address', 'josh@calderawp.com');
Josh Pollock's avatar
Josh Pollock committed
		$this->assertTrue($this->isAEntryValues($generator));

		$actualSql = $entryValues->getPreparedSql();
Josh Pollock's avatar
Josh Pollock committed
		$this->assertEquals($expectedSql, $actualSql);
Josh Pollock's avatar
Josh Pollock committed
	}

	/**
	 * 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();
Josh Pollock's avatar
Josh Pollock committed
		$generator =$entryValues->queryByFieldValue('email_address', 'josh@calderawp.com', 'notEquals');
Josh Pollock's avatar
Josh Pollock committed
		$this->assertTrue($this->isAEntryValues($generator));

		$actualSql = $entryValues->getPreparedSql();
Josh Pollock's avatar
Josh Pollock committed
		$this->assertEquals($expectedSql, $actualSql);
Josh Pollock's avatar
Josh Pollock committed
	}

	/**
	 * 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();
Josh Pollock's avatar
Josh Pollock committed
		$generator = $entryValues->queryByFieldValue('email_address', 'josh@calderawp.com', 'like');
Josh Pollock's avatar
Josh Pollock committed
		$this->assertTrue($this->isAEntryValues($generator));

		$actualSql = $entryValues->getPreparedSql();
Josh Pollock's avatar
Josh Pollock committed
		$this->assertEquals($expectedSql, $actualSql);
Josh Pollock's avatar
Josh Pollock committed
	}

	/**
	 * 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();
Josh Pollock's avatar
Josh Pollock committed
		$generator = $entryValues->queryByEntryId(42);
Josh Pollock's avatar
Josh Pollock committed
		$this->assertTrue($this->isAEntryValues($generator));

		$actualSql = $entryValues->getPreparedSql();
Josh Pollock's avatar
Josh Pollock committed
		$this->assertEquals($expectedSql, $actualSql);
Josh Pollock's avatar
Josh Pollock committed
	}

	/**
	 * @param $generator
	 * @return bool
	 */
	protected function isAEntryValues($generator)
	{
		return is_a($generator, '\calderawp\CalderaFormsQuery\Select\EntryValues');
	}
Josh Pollock's avatar
Josh Pollock committed
}