Skip to content
Snippets Groups Projects
EntryTest.php 2.48 KiB
Newer Older
  • Learn to ignore specific revisions
  • Josh Pollock's avatar
    Josh Pollock committed
    <?php
    
    
    namespace  calderawp\CalderaFormsQuery\Tests\Unit\Select;
    
    use calderawp\CalderaFormsQuery\Select\Entry;
    use calderawp\CalderaFormsQuery\Tests\Unit\TestCase;
    
    class EntryTest extends TestCase
    {
    
    	/**
    	 * Test query by form ID
    	 *
    	 * @covers Entry::queryByFormsId()
    	 */
    	public function testQueryByFormsId()
    	{
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$expectedSql = "SELECT `{$this->entryTableName()}`.* FROM `wp_cf_form_entries` WHERE (`{$this->entryTableName()}`.`form_id` = 'cf12345')";
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$entryGenerator = $this->entryGeneratorFactory();
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$generator = $entryGenerator->queryByFormsId('cf12345');
    		$this->assertTrue($this->isAEntry($generator));
    
    Josh Pollock's avatar
    Josh Pollock committed
    
    		$actualSql = $entryGenerator->getPreparedSql();
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$this->assertEquals($expectedSql, $actualSql);
    
    Josh Pollock's avatar
    Josh Pollock committed
    	}
    
    
        /**
         * Test query by form ID
         *
         * @covers Entry::queryByFormsId()
         * @covers \calderawp\CalderaFormsQuery\addPagination::()
         */
        public function testQueryByFormsIdPaginated()
        {
            $expectedSql = "SELECT `{$this->entryTableName()}`.* FROM `wp_cf_form_entries` WHERE (`{$this->entryTableName()}`.`form_id` = 'cf12345') LIMIT '26', '50'";
            $actualSql = $this
                ->entryGeneratorFactory()
                ->queryByFormsId('cf12345')
                ->addPagination(2,25 )
                ->getPreparedSql();
            $this->assertEquals($expectedSql, $actualSql);
        }
    
    
    Josh Pollock's avatar
    Josh Pollock committed
    	/**
    	 * Test query by entry ID
    	 *
    	 * @covers Entry::queryByEntryId()
    	 */
    	public function testQueryByEntryId()
    	{
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$expectedSql = "SELECT `{$this->entryTableName()}`.* FROM `{$this->entryTableName()}` WHERE (`{$this->entryTableName()}`.`id` = '42')";
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$entryGenerator = $this->entryGeneratorFactory();
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$generator = $entryGenerator->queryByEntryId(42);
    		$this->assertTrue($this->isAEntry($generator));
    
    Josh Pollock's avatar
    Josh Pollock committed
    
    		$actualSql = $entryGenerator->getPreparedSql();
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$this->assertEquals($expectedSql, $actualSql);
    
    Josh Pollock's avatar
    Josh Pollock committed
    	}
    
    	/**
    	 * Test query by user ID
    	 *
    	 * @covers Entry::queryByUserId()
    	 */
    	public function testQueryByUserId()
    	{
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$expectedSql = "SELECT `{$this->entryTableName()}`.* FROM `{$this->entryTableName()}` WHERE (`{$this->entryTableName()}`.`user_id` = '42')";
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$entryGenerator = $this->entryGeneratorFactory();
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$generator = $entryGenerator->queryByUserId(42);
    		$this->assertTrue($this->isAEntry($generator));
    
    Josh Pollock's avatar
    Josh Pollock committed
    
    		$actualSql = $entryGenerator->getPreparedSql();
    
    Josh Pollock's avatar
    Josh Pollock committed
    		$this->assertEquals($expectedSql, $actualSql);
    
    Josh Pollock's avatar
    Josh Pollock committed
    	}
    
    
    Josh Pollock's avatar
    Josh Pollock committed
    	/**
    	 * @param $generator
    	 * @return bool
    	 */
    	protected function isAEntry($generator)
    	{
    		return is_a($generator, '\calderawp\CalderaFormsQuery\Select\Entry');
    	}
    
    Josh Pollock's avatar
    Josh Pollock committed
    }