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


namespace calderawp\CalderaFormsQuery\Tests\Unit\Features;


use calderawp\CalderaContainers\Service\Container as TheServiceContainer;
use calderawp\CalderaFormsQuery\Features\DoesQueries;
use calderawp\CalderaFormsQuery\Features\FeatureContainer;
use calderawp\CalderaFormsQuery\Features\Queries;
use calderawp\CalderaFormsQuery\MySqlBuilder;
use calderawp\CalderaFormsQuery\Tests\Unit\TestCase;
use NilPortugues\Sql\QueryBuilder\Builder\BuilderInterface;

class FeatureContainerTest extends TestCase
{

	/**
	 * Test getting the main MySQL Builder
Josh Pollock's avatar
Josh Pollock committed
	 *
	 * @covers FeatureContainer::getBuilder()
	 * @covers FeatureContainer::bindServices()
	 */
	public function testGetBuilder()
	{
		$serviceContainer = new TheServiceContainer();
		$container = new FeatureContainer($serviceContainer, $this->getWPDB());
		$this->assertTrue( is_object( $serviceContainer->make( MySqlBuilder::class ) ) );
		$this->assertTrue( is_object( $container->getBuilder() ) );

		$this->assertTrue(
			is_a(
				$container->getBuilder(),
				BuilderInterface::class
			)
		);

		$this->assertEquals(
			$serviceContainer->make( MySqlBuilder::class ),
			$container->getBuilder()
		);

	}

	/**
	 * Test getting the main query builder
Josh Pollock's avatar
Josh Pollock committed
	 *
	 * @covers FeatureContainer::bindServices()
	 * @covers FeatureContainer::getQueries()
	 */
	public function testGetQueries()
	{
		$serviceContainer = new TheServiceContainer();
		$container = new FeatureContainer($serviceContainer, $this->getWPDB());

		$this->assertTrue(
			is_a(
				$container->getQueries(),
				Queries::class
			)
		);

		$this->assertEquals(
			$serviceContainer->make( Queries::class ),
			$container->getQueries()
		);
	}

	/**
	 * Test the table names
	 *
	 * @covers FeatureContainer::getQueries()
	 * @covers FeatureContainer::bindServices()
	 */
	public function testTableNames()
	{
		$container = $this->containerFactory();

		//Select entry
		$this->assertEquals( $this->entryTableName(),
			$container
				->getQueries()
				->entrySelect()
				->getTableName()
		);

		//Select entry value
		$this->assertEquals( $this->entryValueTableName(),
			$container
				->getQueries()
				->entryValuesSelect()
				->getTableName()
		);

		//Delete entry
		$this->assertEquals( $this->entryTableName(),
			$container
				->getQueries()
				->entryDelete()
				->getTableName()
		);

		//Delete entry values
		$this->assertEquals( $this->entryValueTableName(),
			$container
				->getQueries()
				->entryValueDelete()
				->getTableName()
		);
	}

Josh Pollock's avatar
Josh Pollock committed
}