Example #1
0
 /**
  *
  * @group ZF-10705
  */
 public function testCreatesQueryBasedOnNamedOrPositionalAvailablity()
 {
     AbstractTable::setDefaultAdapter(null);
     $this->_adapterHasResult->setSupportsParametersValues(array('named' => false, 'positional' => true));
     $validator = new RecordExistsValidator('users', 'field1', null, $this->_adapterHasResult);
     $validator->isValid('foo');
     $wherePart = $validator->getSelect()->getPart('where');
     $this->assertEquals('("field1" = ?)', $wherePart[0]);
     $this->_adapterHasResult->setSupportsParametersValues(array('named' => true, 'positional' => true));
     $validator = new RecordExistsValidator('users', 'field1', null, $this->_adapterHasResult);
     $validator->isValid('foo');
     $wherePart = $validator->getSelect()->getPart('where');
     $this->assertEquals('("field1" = :value)', $wherePart[0]);
 }
Example #2
0
 /**
  * @cover Zend\Validator\Db\RecordExists::getSelect
  * @group ZF2-4521
  */
 public function testGetSelectWithSameValidatorTwice()
 {
     $validator = new RecordExists(array('table' => 'users', 'schema' => 'my'), 'field1', array('field' => 'foo', 'value' => 'bar'), $this->getMockHasResult());
     $select = $validator->getSelect();
     $this->assertInstanceOf('Zend\\Db\\Sql\\Select', $select);
     $this->assertEquals('SELECT "my"."users"."field1" AS "field1" FROM "my"."users" WHERE "field1" = \'\' AND "foo" != \'bar\'', $select->getSqlString(new TrustingSql92Platform()));
     // same validator instance with changing properties
     $validator->setTable('othertable');
     $validator->setSchema('otherschema');
     $validator->setField('fieldother');
     $validator->setExclude(array('field' => 'fieldexclude', 'value' => 'fieldvalueexclude'));
     $select = $validator->getSelect();
     $this->assertInstanceOf('Zend\\Db\\Sql\\Select', $select);
     $this->assertEquals('SELECT "otherschema"."othertable"."fieldother" AS "fieldother" FROM "otherschema"."othertable" WHERE "fieldother" = \'\' AND "fieldexclude" != \'fieldvalueexclude\'', $select->getSqlString(new TrustingSql92Platform()));
 }
    /**
     * @testdox Zend\Validator\Db\RecordExists::getSelect
     */
    public function testGetSelect()
    {
        $validator = new RecordExists(
            array(
                'table' => 'users',
                'schema' => 'my'
            ),
            'field1',
            array(
                'field' => 'foo',
                'value' => 'bar'
            ),
            $this->getMockHasResult()
        );
        $select = $validator->getSelect();
        $this->assertInstanceOf('Zend\Db\Sql\Select', $select);
        $this->assertEquals('SELECT "my"."users"."field1" AS "field1" FROM "my"."users" WHERE "field1" = \'\' AND "foo" != \'bar\'', $select->getSqlString());

        $sql = new Sql($this->getMockHasResult());
        $statement = $sql->prepareStatementForSqlObject($select);
        $parameters = $statement->getParameterContainer();
        $this->assertNull($parameters['where1']);
        $this->assertEquals($parameters['where2'], 'bar');
    }
Example #4
0
 /**
  * Test that we don't get a mix of positional and named parameters
  * @group ZF2-502
  */
 public function testSelectDoesNotMixPositionalAndNamedParameters()
 {
     if (!extension_loaded('sqlite3')) {
         $this->markTestSkipped('Relies on SQLite extension');
     }
     $adapter = new Adapter(array('driver' => 'Pdo_Sqlite', 'database' => 'sqlite::memory:'));
     $validator = new RecordExists(array('table' => 'users', 'schema' => 'my'), 'field1', array('field' => 'foo', 'value' => 'bar'), $adapter);
     $select = $validator->getSelect();
     $this->assertInstanceOf('Zend\\Db\\Sql\\Select', $select);
     $string = $select->getSqlString();
     if (preg_match('/:[a-zA-Z]+/', $string)) {
         $this->assertNotContains(' != ?', $string);
     } else {
         $this->assertContains(' != ?', $string);
     }
 }
Example #5
0
 /**
  * @group ZF-10642
  */
 public function testCreatesQueryBasedOnNamedOrPositionalAvailability()
 {
     $this->markTestIncomplete('This test (and code) need to be refactored to the new Zend\\Db');
     $adapterHasResult = $this->getMockHasResult();
     //$adapterHasResult->setSupportsParametersValues(array('named' => false, 'positional' => true));
     $validator = new RecordExists('users', 'field1', null, $adapterHasResult);
     $validator->isValid('foo');
     $wherePart = $validator->getSelect()->getPart('where');
     $this->assertEquals('("field1" = ?)', $wherePart[0]);
     //$adapterHasResult->setSupportsParametersValues(array('named' => true, 'positional' => true));
     $validator = new RecordExists('users', 'field1', null, $adapterHasResult);
     $validator->isValid('foo');
     $wherePart = $validator->getSelect()->getPart('where');
     $this->assertEquals('("field1" = :value)', $wherePart[0]);
 }