Skip to content

Commit

Permalink
Adding failing tests for bool updates switching with the field name
Browse files Browse the repository at this point in the history
  • Loading branch information
dogmatic69 authored and markstory committed Mar 24, 2012
1 parent 4b49a28 commit a568594
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions lib/Cake/Test/Case/Model/ModelWriteTest.php
Expand Up @@ -6078,6 +6078,55 @@ public function testUpdateWithCalculation() {
$result = Set::extract('/DataTest/count', $model->find('all', array('fields' => 'count')));
$this->assertEquals(array(6, 4, 5, 2), $result);
}

public function testToggleBoolFields() {
$this->loadFixtures('CounterCachePost');
$Post = new CounterCachePost();
$Post->unbindModel(array('belongsTo' => array('User')), true);

$true = array('Post' => array('published' => true, 'id' => 2));
$false = array('Post' => array('published' => false, 'id' => 2));
$fields = array('Post.published', 'Post.id');
$updateConditions = array('Post.id' => 2);

// check its true
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEqual($result, $true);

// Testing without the alias
$this->assertTrue($Post->updateAll(array('published' => '1 - published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEqual($result, $false);

$this->assertTrue($Post->updateAll(array('published' => '1 - published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEqual($result, $true);

// Testing with the alias
$this->assertTrue($Post->updateAll(array('Post.published' => '1 - Post.published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEqual($result, $false);

$this->assertTrue($Post->updateAll(array('Post.published' => '1 - Post.published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEqual($result, $true);

$this->assertTrue($Post->updateAll(array('Post.published = 1 - Post.published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEqual($result, $false);

$this->assertTrue($Post->updateAll(array('Post.published = 1 - Post.published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEqual($result, $true);

$this->assertTrue($Post->updateAll(array('Post.published' => '! Post.published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEqual($result, $false);

$this->assertTrue($Post->updateAll(array('Post.published' => 'NOT Post.published'), $updateConditions));
$result = $Post->find('first', array('conditions' => $updateConditions, 'fields' => $fields));
$this->assertEqual($result, $true);
}

/**
* TestFindAllWithoutForeignKey
Expand Down

0 comments on commit a568594

Please sign in to comment.