| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?php
- App::uses('KeyValueBehavior', 'Tools.Model/Behavior');
- App::uses('MyCakeTestCase', 'Tools.TestSuite');
- class KeyValueBehaviorTest extends MyCakeTestCase {
- public $fixtures = ['plugin.tools.key_value', 'core.user'];
- public $KeyValueBehavior;
- public $Model;
- public function setUp() {
- parent::setUp();
- $this->KeyValueBehavior = new KeyValueBehavior();
- $this->Model = ClassRegistry::init('User');
- $this->Model->Behaviors->load('Tools.KeyValue');
- }
- public function testObject() {
- $this->assertTrue(is_object($this->KeyValueBehavior));
- $this->assertInstanceOf('KeyValueBehavior', $this->KeyValueBehavior);
- }
- public function testValidate() {
- $res = $this->Model->validateSection(['User' => ['x' => 1, 'y' => '']]);
- $this->assertTrue(!empty($res));
- $this->Model->keyValueValidate = [
- 'User' => ['y' => 'notBlank'],
- ];
- $res = $this->Model->validateSection(['User' => ['x' => 1, 'y' => '']]);
- $this->assertFalse($res);
- $res = $this->Model->validateSection(['User' => ['x' => 1, 'y' => '1']]);
- $this->assertTrue(!empty($res));
- }
- public function testSaveAndGet() {
- $this->Model->saveSection(1, ['User' => ['x' => 1, 'y' => 'z']]);
- $res = $this->Model->getSection(2);
- $this->assertTrue(empty($res));
- $res = $this->Model->getSection(1);
- $this->assertTrue(!empty($res['User']));
- $this->assertEquals('z', $res['User']['y']);
- $res = $this->Model->saveSection(2, ['User' => ['x' => 1, 'y' => 'z']], 'Profile');
- $this->assertTrue($res);
- $res = $this->Model->getSection(2);
- $this->assertTrue(empty($res));
- $res = $this->Model->saveSection(2, ['User' => ['e' => 'f'], 'Profile' => ['x' => 3, 'y' => 'abc']], 'Profile');
- $this->assertTrue($res);
- $res = $this->Model->getSection(2);
- $this->debug($res);
- $this->assertTrue(!empty($res['Profile']));
- $res = $this->Model->getSection(2, 'Profile');
- $this->assertSame(['x' => '3', 'y' => 'abc'], $res);
- }
- public function testDefaults() {
- $this->Model->keyValueDefaults = [
- 'User' => [
- 'x' => 0,
- 'y' => '',
- 'z' => '123',
- ]
- ];
- $this->Model->Behaviors->unload('KeyValue');
- $this->Model->Behaviors->load('Tools.KeyValue');
- $this->Model->saveSection(0, ['User' => ['x' => 1, 'y' => 'z']]);
- $res = $this->Model->getSection(0, 'User');
- $this->assertEquals(['x' => 1, 'y' => 'z', 'z' => 123], $res);
- $res = $this->Model->getSection(0, 'User', 'y');
- $this->assertEquals('z', $res);
- $res = $this->Model->getSection(0, 'User', 'a');
- $this->assertEquals(null, $res);
- $res = $this->Model->getSection(0, 'User', 'z');
- $this->assertEquals('123', $res);
- }
- public function testReset() {
- $this->Model->saveSection(0, ['User' => ['x' => 1, 'y' => 'z']]);
- $res = $this->Model->Behaviors->KeyValue->KeyValue->find('count');
- $this->assertEquals(3, $res);
- $res = $this->Model->resetSection(0, 'User', 'y');
- $this->assertTrue($res);
- $res = $this->Model->Behaviors->KeyValue->KeyValue->find('count');
- $this->assertEquals(2, $res);
- $this->Model->Behaviors->unload('KeyValue');
- $this->Model->Behaviors->load('Tools.KeyValue', ['defaultOnEmpty' => true]);
- $this->Model->keyValueDefaults = [
- 'User' => [
- 'x' => 0,
- 'y' => '',
- 'z' => '123',
- ]
- ];
- $this->Model->saveSection(0, ['User' => ['x' => 1, 'y' => 'z', 'z' => 123]]);
- $res = $this->Model->Behaviors->KeyValue->KeyValue->find('count');
- $this->assertEquals(4, $res);
- $res = $this->Model->saveSection(0, ['User' => ['x' => 0, 'y' => null]]);
- $this->assertTrue($res);
- $res = $this->Model->Behaviors->KeyValue->KeyValue->find('count');
- $this->assertEquals(3, $res);
- $this->Model->Behaviors->unload('KeyValue');
- $this->Model->Behaviors->load('Tools.KeyValue', ['deleteIfDefault' => true]);
- $res = $this->Model->saveSection(0, ['User' => ['z' => '123']]);
- $this->assertTrue($res);
- $res = $this->Model->Behaviors->KeyValue->KeyValue->find('count');
- $this->assertEquals(2, $res);
- $res = $this->Model->resetSection(1);
- $res = $this->Model->Behaviors->KeyValue->KeyValue->find('count');
- $this->assertEquals(1, $res);
- $res = $this->Model->resetSection();
- $res = $this->Model->Behaviors->KeyValue->KeyValue->find('count');
- $this->assertEquals(0, $res);
- }
- }
|