Login   Register  
PHP Classes
elePHPant
Icontem

File: test/InsertManagerTest.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Arthur Borisow  >  reliq  >  test/InsertManagerTest.php  >  Download  
File: test/InsertManagerTest.php
Role: Unit test script
Content type: text/plain
Description: Unit test script
Class: reliq
Compose relational queries programmatically
Author: By
Last change:
Date: 2 years ago
Size: 4,115 bytes
 

Contents

Class file image Download
<?php

    
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR '..' .
                 
DIRECTORY_SEPARATOR 'reliq'
                 
DIRECTORY_SEPARATOR
                 
'autoload.php';

    class 
InsertManagerTest extends PHPUnit_Framework_TestCase {
        
/**
         * @var SelectManager
         */
        
protected $manager;
        protected 
$table;

        
/**
         * Sets up the fixture, for example, opens a network connections.
         * This method is called before a test is executed.
         */
        
protected function setUp() {
            
$this->table = new \Reliq\Table('test', array(
                                                  
'driver' => 'mysql',
                                                  
'columns' => array(
                                                      
'name',
                                                      
'email',
                                                      
'password'
                                                  
)
                                             ));
            
$this->manager = \Reliq\Managers\InsertManager::factory($this->table);

        }

        private function 
prepare_regex($regex) {
            return 
'/' str_replace(array(
                                          
' ',
                                          
'*',
                                          
'.',
                                          
'(',
                                          
')'
                                     
), array(
                                           
' +',
                                           
'\*',
                                           
'\.',
                                           
'\(',
                                           
'\)'
                                        
), $regex) . '/';
        }

        public function 
testSimpleInsert() {
            
$pattern $this
                    
->prepare_regex('INSERT INTO `test` (`test`.`name`) '
                                         
'VALUES (name)');
            
$sql $this->manager
                    
->values($this->table->name->set('name'))
                    ->
to_sql();
            
$this->assertRegExp($pattern$sql);
        }

        public function 
testSimpleInsert2() {
            
$pattern $this
             
->prepare_regex('INSERT INTO `test` (`test`.`name`, `test`.`password`) '
                              
'VALUES (name, ***)');
            
$sql $this->manager
                    
->values($this->table->name->set('name'),
                          
$this->table->password->set('***'))
                    ->
to_sql();
            
$this->assertRegExp($pattern$sql);
        }

        public function 
testSimpleInsert3() {
            
$pattern $this
                
->prepare_regex('INSERT INTO `test` (`test`.`name`, `test`.`password`) '
                              
'VALUES (name, ***)');
            
$sql $this->manager
                    
->values($this->table->name->set('name'))
                    ->
values($this->table->password->set('***'))
                    ->
to_sql();
            
$this->assertRegExp($pattern$sql);
        }

        
/**
         * @expectedException Reliq\Exceptions\WrongColumnsForInsertException
         */
        
public function testWrongColumnsForInsertException() {
            
$this->manager
                    
->values('test')
                    ->
values($this->table->password->set('***'))
                    ->
to_sql();
        }

        
/**
         * @expectedException BadFunctionCallException
         */
        
public function testWhere() {
            
$this->manager
                    
->where('test')
                    ->
to_sql();
        }

        public function 
testAlias() {
            
$table2 $this->table->alias('test_2');
            
$manager = \Reliq\Managers\InsertManager::factory($table2);

            
$sql $manager->to_sql();
            
$pattern $this
                    
->prepare_regex('INSERT INTO `test` `test_2` () VALUES ()');

            
$this->assertRegExp($pattern$sql);
        }
    }

?>