Skip to content
Snippets Groups Projects
TestCase.php 1.3 KiB
Newer Older
Josh Pollock's avatar
Josh Pollock committed
<?php


namespace calderawp\CalderaFormsQuery\Tests\Unit;

//Import PHP unit test case.
//Must be aliased to avoid having two classes of same name in scope.
use calderawp\CalderaFormsQuery\EntryQueries;
use PHPUnit\Framework\TestCase as FrameworkTestCase;

/**
 * Class TestCase
 *
 * Default test case for all unit tests
 * @package CalderaLearn\RestSearch\Tests\Unit
 */
abstract class TestCase extends FrameworkTestCase
{
	/**
	 * @return \calderawp\CalderaFormsQuery\Select\EntryValues
	 */
	protected function entryValuesGeneratorFactory()
	{
		return new \calderawp\CalderaFormsQuery\Select\EntryValues(
			$this->MySqlBuilderFactory(),
			'cf_form_entry_values'
		);
	}

	/**
	 * @return \calderawp\CalderaFormsQuery\Select\Entry
	 */
	protected function entryGeneratorFactory()
	{
		return new \calderawp\CalderaFormsQuery\Select\Entry(
			$this->MySqlBuilderFactory(),
			'wp_cf_form_entries'
		);
	}

	/**
	 * @return \calderawp\CalderaFormsQuery\MySqlBuilder
	 */
	protected function MySqlBuilderFactory(): \calderawp\CalderaFormsQuery\MySqlBuilder
	{
		return new \calderawp\CalderaFormsQuery\MySqlBuilder();
	}

	/**
	 * @return EntryQueries
	 */
	protected function entryQueriesFactory()
	{
		return new EntryQueries(
			$this->entryGeneratorFactory(),
			$this->entryValuesGeneratorFactory(),
			new \wpdb()
		);
	}
}