lithium\tests\cases\data\source\DatabaseTest::testIncrement PHP Method

testIncrement() public method

public testIncrement ( )
    public function testIncrement()
    {
        $entity = new Record(array('model' => $this->_model, 'data' => array('id' => 1, 'balance' => 10), 'exists' => true));
        $entity->increment('balance', 10);
        $query = new Query(compact('entity') + array('type' => 'update'));
        $result = $this->_db->update($query);
        $expected = "UPDATE {mock_database_posts} SET {id} = 1, {balance} = {balance} + 10 WHERE {id} = 1;";
        $this->assertEqual($expected, $this->_db->sql);
        $entity->increment('balance', 10);
        $entity->decrement('balance', 20);
        $query = new Query(compact('entity') + array('type' => 'update'));
        $result = $this->_db->update($query);
        $expected = "UPDATE {mock_database_posts} SET {id} = 1, {balance} = {balance} + -10 WHERE {id} = 1;";
        $this->assertEqual($expected, $this->_db->sql);
        $entity->increment('balance', 10);
        $entity->balance = 20;
        $query = new Query(compact('entity') + array('type' => 'update'));
        $result = $this->_db->update($query);
        $expected = "UPDATE {mock_database_posts} SET {id} = 1, {balance} = 20 WHERE {id} = 1;";
        $this->assertEqual($expected, $this->_db->sql);
        $this->assertException("Field 'name' cannot be incremented.", function () use($entity) {
            $entity->name = 'Ali';
            $entity->increment('name', 10);
        });
    }
DatabaseTest