Changeset 655

Show
Ignore:
Timestamp:
05/02/07 22:52:10 (1 year ago)
Author:
mikey
Message:

added net.stubbles.rdbms.persistence.eraser

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/rdbms/querybuilder/stubDatabaseMySQLQueryBuilder.php

    r482 r655  
    5353                                           'FIXED' 
    5454                                     ); 
     55 
    5556    /** 
    5657     * creates a select query 
     
    6566            $joins = $select->getJoins(); 
    6667            foreach ($joins as $join) { 
    67                $selectQuery .= ' ' . $join->getType(); 
    68                $selectQuery .= (($join->getType() != 'STRAIGHT') ? (' ') : ('_')); 
    69                $selectQuery .= 'JOIN `' . $join->getName() . '`'; 
    70                if ($join->hasCondition() == true) { 
    71                    $selectQuery .= ' ' . $join->getConditionType() . ' '; 
    72                    if ($join->getConditionType() == 'USING') { 
    73                        $selectQuery .= '(' . $join->getCondition() . ')'; 
    74                    } else { 
    75                        $selectQuery .= $join->getCondition(); 
    76                    } 
    77                
     68                $selectQuery .= ' ' . $join->getType(); 
     69                $selectQuery .= (($join->getType() != 'STRAIGHT') ? (' ') : ('_')); 
     70                $selectQuery .= 'JOIN `' . $join->getName() . '`'; 
     71                if ($join->hasCondition() == true) { 
     72                    $selectQuery .= ' ' . $join->getConditionType() . ' '; 
     73                    if ($join->getConditionType() == 'USING') { 
     74                        $selectQuery .= '(' . $join->getCondition() . ')'; 
     75                    } else { 
     76                        $selectQuery .= $join->getCondition(); 
     77                    } 
     78               
    7879            } 
    7980        } 
     
    8586        return $selectQuery; 
    8687    } 
    87      
     88 
    8889    /** 
    8990     * creates insert queries from a serialized value 
     
    125126        return $queries; 
    126127    } 
    127      
     128 
    128129    /** 
    129130     * creates update queries from a serialized value 
     
    169170        return $queries; 
    170171    } 
    171      
     172 
     173    /** 
     174     * creates a delete query 
     175     * 
     176     * @param   string         $table      the table to delete from 
     177     * @param   stubCriterion  $criterion  the criterion to use for deletion 
     178     * @return  string 
     179     */ 
     180    public function createDelete($table, stubCriterion $criterion) 
     181    { 
     182        return 'DELETE FROM `' . $table . '` WHERE ' . $criterion->toSQL(); 
     183    } 
     184 
    172185    /** 
    173186     * creates the query to create a table for the given class 
  • trunk/src/main/php/net/stubbles/rdbms/querybuilder/stubDatabaseQueryBuilder.php

    r482 r655  
    2929     */ 
    3030    public function createSelect(stubDatabaseSelect $select); 
    31      
     31 
    3232    /** 
    3333     * creates insert queries from a serialized value 
     
    3838     */ 
    3939    public function createInsert(array $tableRows); 
    40      
     40 
    4141    /** 
    4242     * creates update queries from a serialized value 
     
    4747     */ 
    4848    public function createUpdate(array $tableRows); 
    49      
     49 
     50    /** 
     51     * creates a delete query 
     52     * 
     53     * @param   string         $table      the table to delete from 
     54     * @param   stubCriterion  $criterion  the criterion to use for deletion 
     55     * @return  string 
     56     */ 
     57    public function createDelete($table, stubCriterion $criterion); 
     58 
    5059    /** 
    5160     * creates the query to create a table for the given class 
  • trunk/src/test/php/net/stubbles/rdbms/RDBMSTestSuite.php

    r538 r655  
    4343        // persistence 
    4444        $this->addTestFile($dir . '/persistence/creator/stubDatabaseCreatorTestCase.php'); 
     45        $this->addTestFile($dir . '/persistence/eraser/stubDatabaseEraserTestCase.php'); 
    4546        $this->addTestFile($dir . '/persistence/finder/stubDatabaseFinderTestCase.php'); 
    4647        $this->addTestFile($dir . '/persistence/serializer/stubDatabaseSerializerTestCase.php'); 
  • trunk/src/test/php/net/stubbles/rdbms/persistence/finder/stubDatabaseFinderTestCase.php

    r492 r655  
    1414require_once dirname(__FILE__) . '/../MockNoTableAnnotationPersistable.php'; 
    1515require_once dirname(__FILE__) . '/../MockSinglePrimaryKeyPersistable.php'; 
    16 /** 
    17  * This is a class not implementing the persistable interface. 
    18  * 
    19  * @DBTable(name='bar') 
    20  */ 
    21 class TestNonPersistable { } 
     16require_once dirname(__FILE__) . '/../TestNonPersistable.php'; 
    2217/** 
    2318 * This is a persistable that requires arguments in the constructor. 
  • trunk/src/test/php/net/stubbles/rdbms/querybuilder/TeststubDatabaseQueryBuilder.php

    r482 r655  
    3636    protected $updateQueries    = array(); 
    3737    /** 
     38     * the query to be returned on createDelete() 
     39     * 
     40     * @var  string 
     41     */ 
     42    protected $deleteQuery      = ''; 
     43    /** 
    3844     * the create table query to be returned on createTable() 
    3945     * 
     
    5965     */ 
    6066    protected $updateTableRows  = null; 
     67    /** 
     68     * the table from the createDelete() method 
     69     * 
     70     * @var  string 
     71     */ 
     72    protected $deleteTable      = null; 
     73    /** 
     74     * the criterion from the createDelete() method 
     75     * 
     76     * @var  stubCriterion 
     77     */ 
     78    protected $deleteCriterion  = null; 
    6179    /** 
    6280     * table description from the createTable() method 
     
    169187    { 
    170188        return $this->updateTableRows; 
     189    } 
     190 
     191    /** 
     192     * set the delete query to be returned on createDelete() 
     193     * 
     194     * @param  string  $deleteQuery 
     195     */ 
     196    public function setDeleteQuery($deleteQuery) 
     197    { 
     198        $this->deleteQuery = $deleteQuery; 
     199    } 
     200 
     201    /** 
     202     * creates a delete query 
     203     * 
     204     * @param   string         $table      the table to delete from 
     205     * @param   stubCriterion  $criterion  the criterion to use for deletion 
     206     * @return  string 
     207     */ 
     208    public function createDelete($table, stubCriterion $criterion) 
     209    { 
     210        $this->deleteTable     = $table; 
     211        $this->deleteCriterion = $criterion; 
     212        return $this->deleteQuery; 
     213    } 
     214 
     215    /** 
     216     * returns the delete table argument 
     217     * 
     218     * @return  string 
     219     */ 
     220    public function getDeleteTable() 
     221    { 
     222        return $this->deleteTable; 
     223    } 
     224 
     225    /** 
     226     * returns the delete criterion argument 
     227     * 
     228     * @return  stubCriterion 
     229     */ 
     230    public function getDeleteCriterion() 
     231    { 
     232        return $this->deleteCriterion; 
    171233    } 
    172234 
  • trunk/src/test/php/net/stubbles/rdbms/querybuilder/stubDatabaseMySQLQueryBuilderTestCase.php

    r482 r655  
    123123 
    124124    /** 
     125     * test creating a delete query 
     126     */ 
     127    public function testCreateDelete() 
     128    { 
     129        $mockCriterion = new MockstubCriterion(); 
     130        $mockCriterion->setReturnValue('toSQL', "`foo`.`id` = 'mock'"); 
     131        $this->assertEqual($this->mySqlQueryBuilder->createDelete('bar', $mockCriterion), "DELETE FROM `bar` WHERE `foo`.`id` = 'mock'"); 
     132    } 
     133 
     134    /** 
    125135     * test creating a create table query 
    126136     */