summaryrefslogtreecommitdiffstats
path: root/lib/private/hintexception.php
blob: 3a8361e9e80000463c88799d3f6c0b86c7139297 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
/**
 * 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.
 */

namespace OC;

class HintException extends \Exception {

	private $hint;

	public function __construct($message, $hint = '', $code = 0, \Exception $previous = null) {
		$this->hint = $hint;
		parent::__construct($message, $code, $previous);
	}

	public function __toString() {
		return __CLASS__ . ": [{$this->code}]: {$this->message} ({$this->hint})\n";
	}

	public function getHint() {
		return $this->hint;
	}
}
ss="nx">\Test\TestCase { public function testJsonSerialization(): void { $backend = $this->getMockBuilder(Backend::class) ->setMethods(['jsonSerializeDefinition']) ->getMock(); $backend->expects($this->once()) ->method('jsonSerializeDefinition') ->willReturn(['foo' => 'bar', 'name' => 'abc']); $backend->setPriority(57); $backend->addAuthScheme('foopass'); $backend->addAuthScheme('barauth'); $json = $backend->jsonSerialize(); $this->assertEquals('bar', $json['foo']); $this->assertEquals('abc', $json['name']); $this->assertEquals($json['name'], $json['backend']); $this->assertEquals(57, $json['priority']); $this->assertContains('foopass', array_keys($json['authSchemes'])); $this->assertContains('barauth', array_keys($json['authSchemes'])); } public function validateStorageProvider() { return [ [true, true], [false, false], ]; } /** * @dataProvider validateStorageProvider */ public function testValidateStorage($expectedSuccess, $definitionSuccess): void { $backend = $this->getMockBuilder(Backend::class) ->setMethods(['validateStorageDefinition']) ->getMock(); $backend->expects($this->atMost(1)) ->method('validateStorageDefinition') ->willReturn($definitionSuccess); $storageConfig = $this->getMockBuilder(StorageConfig::class) ->disableOriginalConstructor() ->getMock(); $this->assertEquals($expectedSuccess, $backend->validateStorage($storageConfig)); } public function testLegacyAuthMechanismCallback(): void { $backend = new Backend(); $backend->setLegacyAuthMechanismCallback(function (array $params) { if (isset($params['ping'])) { return 'pong'; } return 'foobar'; }); $this->assertEquals('pong', $backend->getLegacyAuthMechanism(['ping' => true])); $this->assertEquals('foobar', $backend->getLegacyAuthMechanism(['other' => true])); $this->assertEquals('foobar', $backend->getLegacyAuthMechanism()); } }