diff options
author | Bjoern Schiessle <bjoern@schiessle.org> | 2017-05-24 09:07:58 +0200 |
---|---|---|
committer | Bjoern Schiessle <bjoern@schiessle.org> | 2017-05-29 18:19:28 +0200 |
commit | 7c2d473d7686f4824d3b7f05238d262e26d5efa2 (patch) | |
tree | f4aae21880e293a2ded78e63ee3300b61b5f487f /tests/lib/GlobalScale | |
parent | 4be17dff0f9846d32f9740e7d7766bdbc1e98b51 (diff) | |
download | nextcloud-server-7c2d473d7686f4824d3b7f05238d262e26d5efa2.tar.gz nextcloud-server-7c2d473d7686f4824d3b7f05238d262e26d5efa2.zip |
add new config switched for the global scale architecture
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
Diffstat (limited to 'tests/lib/GlobalScale')
-rw-r--r-- | tests/lib/GlobalScale/ConfigTest.php | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/tests/lib/GlobalScale/ConfigTest.php b/tests/lib/GlobalScale/ConfigTest.php new file mode 100644 index 00000000000..ec1581625c6 --- /dev/null +++ b/tests/lib/GlobalScale/ConfigTest.php @@ -0,0 +1,95 @@ +<?php +/** + * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + + +namespace Test\GlobalScale; + + +use OC\GlobalScale\Config; +use OCP\IConfig; +use Test\TestCase; + +class ConfigTest extends TestCase { + + /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ + private $config; + + public function setUp() { + parent::setUp(); + + $this->config = $this->createMock(IConfig::class); + } + + /** + * @param array $mockMethods + * @return Config|\PHPUnit_Framework_MockObject_MockObject + */ + public function getInstance($mockMethods = []) { + + if (!empty($mockMethods)) { + return $this->getMockBuilder(Config::class) + ->setConstructorArgs([$this->config]) + ->setMethods($mockMethods) + ->getMock(); + } + + return new Config($this->config); + } + + public function testIsGlobalScaleEnabled() { + $gsConfig = $this->getInstance(); + $this->config->expects($this->once())->method('getSystemValue') + ->with('gs.enabled', false)->willReturn(true); + + $result = $gsConfig->isGlobalScaleEnabled(); + + $this->assertTrue($result); + } + + + /** + * @dataProvider dataTestOnlyInternalFederation + * + * @param bool $gsEnabled + * @param string $gsFederation + * @param bool $expected + */ + public function testOnlyInternalFederation($gsEnabled, $gsFederation, $expected) { + $gsConfig = $this->getInstance(['isGlobalScaleEnabled']); + + $gsConfig->expects($this->any())->method('isGlobalScaleEnabled')->willReturn($gsEnabled); + + $this->config->expects($this->any())->method('getSystemValue') + ->with('gs.federation', 'internal')->willReturn($gsFederation); + + $this->assertSame($expected, $gsConfig->onlyInternalFederation()); + } + + public function dataTestOnlyInternalFederation() { + return [ + [true, 'global', false], + [true, 'internal', true], + [false, 'global', false], + [false, 'internal', false] + ]; + } + +} |