Skip to content

Commit af63402

Browse files
committed
test: update policy tests to pass appconfig to SignatureFlowPolicy constructor
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent e383337 commit af63402

3 files changed

Lines changed: 28 additions & 12 deletions

File tree

tests/php/Unit/Service/Policy/PolicyServiceTest.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@
1313
use OCA\Libresign\Service\Policy\PolicyService;
1414
use OCA\Libresign\Service\Policy\Provider\DocMdp\DocMdpPolicy;
1515
use OCA\Libresign\Service\Policy\Provider\Footer\FooterPolicy;
16+
use OCA\Libresign\Service\Policy\Provider\RequestSignGroups\RequestSignGroupsPolicyValue;
1617
use OCA\Libresign\Service\Policy\Provider\Signature\SignatureFlowPolicy;
1718
use OCA\Libresign\Service\Policy\Runtime\PolicyContextFactory;
1819
use OCA\Libresign\Service\Policy\Runtime\PolicyRegistry;
1920
use OCA\Libresign\Service\Policy\Runtime\PolicySource;
21+
use OCP\AppFramework\Services\IAppConfig;
2022
use OCP\Group\ISubAdmin;
2123
use OCP\IGroupManager;
2224
use OCP\IL10N;
@@ -52,13 +54,18 @@ protected function setUp(): void {
5254

5355
return $text;
5456
});
57+
$appConfig = $this->createMock(IAppConfig::class);
58+
// Return all common group IDs to make users eligible by default in tests
59+
$appConfig->method('getAppValueString')->willReturn(
60+
RequestSignGroupsPolicyValue::encode(['admin', 'finance', 'legal'])
61+
);
5562
$container = $this->createMock(ContainerInterface::class);
5663
$container
5764
->method('get')
58-
->willReturnCallback(static function (string $class): object {
65+
->willReturnCallback(static function (string $class) use ($appConfig): object {
5966
return match ($class) {
6067
FooterPolicy::class => new FooterPolicy(),
61-
SignatureFlowPolicy::class => new SignatureFlowPolicy(),
68+
SignatureFlowPolicy::class => new SignatureFlowPolicy($appConfig),
6269
DocMdpPolicy::class => new DocMdpPolicy(),
6370
default => throw new \RuntimeException('Unexpected provider class: ' . $class),
6471
};

tests/php/Unit/Service/Policy/Runtime/PolicyRegistryTest.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,19 @@
1919
use OCA\Libresign\Service\Policy\Provider\RequestSignGroups\RequestSignGroupsPolicyValue;
2020
use OCA\Libresign\Service\Policy\Provider\Signature\SignatureFlowPolicy;
2121
use OCA\Libresign\Service\Policy\Runtime\PolicyRegistry;
22+
use OCP\AppFramework\Services\IAppConfig;
2223
use PHPUnit\Framework\TestCase;
2324
use Psr\Container\ContainerInterface;
2425

2526
final class PolicyRegistryTest extends TestCase {
2627
public function testRegistryReturnsSignatureFlowDefinition(): void {
28+
$appConfig = $this->createMock(IAppConfig::class);
29+
$appConfig->method('getAppValueString')->willReturn(
30+
RequestSignGroupsPolicyValue::encode(RequestSignGroupsPolicyValue::DEFAULT_GROUPS)
31+
);
32+
2733
$container = $this->createMock(ContainerInterface::class);
28-
$container->method('get')->with(SignatureFlowPolicy::class)->willReturn(new SignatureFlowPolicy());
34+
$container->method('get')->with(SignatureFlowPolicy::class)->willReturn(new SignatureFlowPolicy($appConfig));
2935
$registry = new PolicyRegistry($container);
3036
$definition = $registry->get(SignatureFlowPolicy::KEY);
3137

@@ -88,8 +94,13 @@ public function testRegistryReturnsRequestSignGroupsDefinition(): void {
8894
public function testRegistryThrowsForUnknownPolicy(): void {
8995
$this->expectException(\InvalidArgumentException::class);
9096

97+
$appConfig = $this->createMock(IAppConfig::class);
98+
$appConfig->method('getAppValueString')->willReturn(
99+
RequestSignGroupsPolicyValue::encode(RequestSignGroupsPolicyValue::DEFAULT_GROUPS)
100+
);
101+
91102
$container = $this->createMock(ContainerInterface::class);
92-
$container->method('get')->with(SignatureFlowPolicy::class)->willReturn(new SignatureFlowPolicy());
103+
$container->method('get')->with(SignatureFlowPolicy::class)->willReturn(new SignatureFlowPolicy($appConfig));
93104
$registry = new PolicyRegistry($container);
94105
$registry->get('unknown_policy');
95106
}

tests/php/Unit/Service/Policy/Runtime/PolicySourceTest.php

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,12 @@ protected function setUp(): void {
4949
$container = $this->createMock(ContainerInterface::class);
5050
$container
5151
->method('get')
52-
->willReturnCallback(static function (string $class): object {
53-
return match ($class) {
54-
FooterPolicy::class => new FooterPolicy(),
55-
SignatureFlowPolicy::class => new SignatureFlowPolicy(),
56-
DocMdpPolicy::class => new DocMdpPolicy(),
57-
RequestSignGroupsPolicy::class => new RequestSignGroupsPolicy(),
58-
default => throw new \RuntimeException('Unexpected provider class: ' . $class),
59-
};
52+
->willReturnCallback(fn (string $class): object => match ($class) {
53+
FooterPolicy::class => new FooterPolicy(),
54+
SignatureFlowPolicy::class => new SignatureFlowPolicy($this->appConfig),
55+
DocMdpPolicy::class => new DocMdpPolicy(),
56+
RequestSignGroupsPolicy::class => new RequestSignGroupsPolicy(),
57+
default => throw new \RuntimeException('Unexpected provider class: ' . $class),
6058
});
6159
$this->registry = new PolicyRegistry($container);
6260
}

0 commit comments

Comments
 (0)