diff options
author | Bart Visscher <bartv@thisnet.nl> | 2013-03-02 17:17:11 +0100 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2013-09-19 18:14:27 +0200 |
commit | c546874159d7880e3c8665eaaa7ae9a42b66adbb (patch) | |
tree | 4e6159741ef3ca1dd6efb70fba2a44c6abeda709 /tests/lib/appconfig.php | |
parent | 2e79aab0ce7ec9fa88ccbafd01e82574b93514f9 (diff) | |
download | nextcloud-server-c546874159d7880e3c8665eaaa7ae9a42b66adbb.tar.gz nextcloud-server-c546874159d7880e3c8665eaaa7ae9a42b66adbb.zip |
Convert OC_Appconfig to object interface
Implemented unittest for OC\AppConfig
Diffstat (limited to 'tests/lib/appconfig.php')
-rw-r--r-- | tests/lib/appconfig.php | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/tests/lib/appconfig.php b/tests/lib/appconfig.php index 4d82cd5ba7b..1b7a1c668e7 100644 --- a/tests/lib/appconfig.php +++ b/tests/lib/appconfig.php @@ -1,6 +1,7 @@ <?php /** * Copyright (c) 2013 Christopher Schäpers <christopher@schaepers.it> + * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl> * This file is licensed under the Affero General Public License version 3 or * later. * See the COPYING-README file. @@ -130,3 +131,183 @@ class Test_Appconfig extends PHPUnit_Framework_TestCase { $this->assertEquals($expected, $values); } } + +class Test_AppConfig_Object extends PHPUnit_Framework_TestCase { + public function testGetApps() + { + $statementMock = $this->getMock('\Doctrine\DBAL\Statement', array(), array(), '', false); + $statementMock->expects($this->exactly(2)) + ->method('fetchColumn') + ->will($this->onConsecutiveCalls('foo', false)); + $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); + $connectionMock->expects($this->once()) + ->method('executeQuery') + ->with($this->equalTo('SELECT DISTINCT `appid` FROM `*PREFIX*appconfig`')) + ->will($this->returnValue($statementMock)); + + $appconfig = new OC\AppConfig($connectionMock); + $apps = $appconfig->getApps(); + $this->assertEquals(array('foo'), $apps); + } + + public function testGetKeys() + { + $statementMock = $this->getMock('\Doctrine\DBAL\Statement', array(), array(), '', false); + $statementMock->expects($this->exactly(2)) + ->method('fetchColumn') + ->will($this->onConsecutiveCalls('foo', false)); + $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); + $connectionMock->expects($this->once()) + ->method('executeQuery') + ->with($this->equalTo('SELECT `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?'), + $this->equalTo(array('bar'))) + ->will($this->returnValue($statementMock)); + + $appconfig = new OC\AppConfig($connectionMock); + $keys = $appconfig->getKeys('bar'); + $this->assertEquals(array('foo'), $keys); + } + + public function testGetValue() + { + $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); + $connectionMock->expects($this->exactly(2)) + ->method('fetchAssoc') + ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?'), + $this->equalTo(array('bar', 'red'))) + ->will($this->onConsecutiveCalls(array('configvalue'=>'foo'), null)); + + $appconfig = new OC\AppConfig($connectionMock); + $value = $appconfig->getValue('bar', 'red'); + $this->assertEquals('foo', $value); + $value = $appconfig->getValue('bar', 'red', 'def'); + $this->assertEquals('def', $value); + } + + public function testHasKey() + { + $statementMock = $this->getMock('\Doctrine\DBAL\Statement', array(), array(), '', false); + $statementMock->expects($this->exactly(3)) + ->method('fetchColumn') + ->will($this->onConsecutiveCalls('foo', false, false)); + $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); + $connectionMock->expects($this->exactly(2)) + ->method('executeQuery') + ->with($this->equalTo('SELECT `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?'), + $this->equalTo(array('bar'))) + ->will($this->returnValue($statementMock)); + + $appconfig = new OC\AppConfig($connectionMock); + $this->assertTrue($appconfig->hasKey('bar', 'foo')); + $this->assertFalse($appconfig->hasKey('bar', 'foo')); + } + + public function testSetValue() + { + $statementMock = $this->getMock('\Doctrine\DBAL\Statement', array(), array(), '', false); + $statementMock->expects($this->exactly(4)) + ->method('fetchColumn') + ->will($this->onConsecutiveCalls('foo', false, 'foo', false)); + $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); + $connectionMock->expects($this->exactly(2)) + ->method('executeQuery') + ->with($this->equalTo('SELECT `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?'), + $this->equalTo(array('bar'))) + ->will($this->returnValue($statementMock)); + $connectionMock->expects($this->once()) + ->method('insert') + ->with($this->equalTo('*PREFIX*appconfig'), + $this->equalTo( + array( + 'appid' => 'bar', + 'configkey' => 'moo', + 'configvalue' => 'v1', + ) + )); + $connectionMock->expects($this->once()) + ->method('update') + ->with($this->equalTo('*PREFIX*appconfig'), + $this->equalTo( + array( + 'configvalue' => 'v2', + )), + $this->equalTo( + array( + 'appid' => 'bar', + 'configkey' => 'foo', + ) + )); + + $appconfig = new OC\AppConfig($connectionMock); + $appconfig->setValue('bar', 'moo', 'v1'); + $appconfig->setValue('bar', 'foo', 'v2'); + } + + public function testDeleteKey() + { + $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); + $connectionMock->expects($this->once()) + ->method('delete') + ->with($this->equalTo('*PREFIX*appconfig'), + $this->equalTo( + array( + 'appid' => 'bar', + 'configkey' => 'foo', + ) + )); + + $appconfig = new OC\AppConfig($connectionMock); + $appconfig->deleteKey('bar', 'foo'); + } + + public function testDeleteApp() + { + $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); + $connectionMock->expects($this->once()) + ->method('delete') + ->with($this->equalTo('*PREFIX*appconfig'), + $this->equalTo( + array( + 'appid' => 'bar', + ) + )); + + $appconfig = new OC\AppConfig($connectionMock); + $appconfig->deleteApp('bar'); + } + + public function testGetValues() + { + $statementMock = $this->getMock('\Doctrine\DBAL\Statement', array(), array(), '', false); + $statementMock->expects($this->exactly(4)) + ->method('fetch') + ->with(\PDO::FETCH_ASSOC) + ->will($this->onConsecutiveCalls( + array('configvalue' =>'bar', 'configkey' => 'x'), + false, + array('configvalue' =>'foo', 'appid' => 'y'), + false + )); + $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); + $connectionMock->expects($this->at(0)) + ->method('executeQuery') + ->with($this->equalTo('SELECT `configvalue`, `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?'), + $this->equalTo(array('foo'))) + ->will($this->returnValue($statementMock)); + $connectionMock->expects($this->at(1)) + ->method('executeQuery') + ->with($this->equalTo('SELECT `configvalue`, `appid` FROM `*PREFIX*appconfig` WHERE `configkey` = ?'), + $this->equalTo(array('bar'))) + ->will($this->returnValue($statementMock)); + + $appconfig = new OC\AppConfig($connectionMock); + $values = $appconfig->getValues('foo', false); + //$this->assertEquals(array('x'=> 'bar'), $values); + $values = $appconfig->getValues(false, 'bar'); + //$this->assertEquals(array('y'=> 'foo'), $values); + $values = $appconfig->getValues(false, false); + //$this->assertEquals(false, $values); + $values = $appconfig->getValues('x', 'x'); + //$this->assertEquals(false, $values); + } +} |