From 54f73ed475830cfff7688b3d099e4418dcacc1b2 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Mon, 15 Dec 2025 18:41:19 -0300 Subject: [PATCH] refactor: add centralized reset in getMockAppConfig for test isolation - Add reset() method to AppConfigOverwrite that clears overWrite and deleted arrays and returns self - Integrate reset() directly into getMockAppConfig() to ensure clean state on every call - All tests now automatically get clean AppConfig state without explicit reset calls - Prevents state pollution across test suites by resetting at the source - Simplifies test code by removing need for separate reset wrapper method Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .../Unit/Handler/CertificateEngine/AEngineHandlerTest.php | 6 +----- .../CertificateEngine/CertificateEngineFactoryTest.php | 2 +- .../Unit/Handler/CertificateEngine/OpenSslHandlerTest.php | 2 +- tests/php/Unit/Handler/FooterHandlerTest.php | 2 +- tests/php/Unit/Handler/PdfTest.php | 2 +- tests/php/Unit/Handler/SignEngine/JSignPdfHandlerTest.php | 2 +- tests/php/Unit/Handler/SignEngine/Pkcs12HandlerTest.php | 2 +- tests/php/Unit/Helper/JavaHelperTest.php | 2 +- tests/php/Unit/Service/CertificatePolicyServiceTest.php | 2 +- tests/php/Unit/Service/FileServiceTest.php | 2 +- tests/php/Unit/Service/FooterServiceTest.php | 2 +- tests/php/Unit/Service/IdentifyMethod/PasswordTest.php | 2 +- .../Unit/Service/Install/ConfigureCheckServiceTest.php | 2 +- tests/php/Unit/Service/Install/SignSetupServiceTest.php | 2 +- tests/php/Unit/Service/ReminderServiceTest.php | 2 +- tests/php/Unit/Service/SignFileServiceTest.php | 2 +- tests/php/Unit/Service/SignatureBackgroundServiceTest.php | 2 +- tests/php/Unit/Service/SignatureTextServiceTest.php | 2 +- tests/php/Unit/TestCase.php | 8 ++++++++ tests/php/lib/AppConfigOverwrite.php | 6 ++++++ 20 files changed, 32 insertions(+), 22 deletions(-) diff --git a/tests/php/Unit/Handler/CertificateEngine/AEngineHandlerTest.php b/tests/php/Unit/Handler/CertificateEngine/AEngineHandlerTest.php index 29f1b835f..d44484aee 100644 --- a/tests/php/Unit/Handler/CertificateEngine/AEngineHandlerTest.php +++ b/tests/php/Unit/Handler/CertificateEngine/AEngineHandlerTest.php @@ -32,7 +32,7 @@ final class AEngineHandlerTest extends \OCA\Libresign\Tests\Unit\TestCase { public function setUp(): void { $this->config = \OCP\Server::get(IConfig::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->appDataFactory = \OCP\Server::get(IAppDataFactory::class); $this->dateTimeFormatter = \OCP\Server::get(IDateTimeFormatter::class); $this->tempManager = \OCP\Server::get(ITempManager::class); @@ -40,10 +40,6 @@ final class AEngineHandlerTest extends \OCA\Libresign\Tests\Unit\TestCase { $this->urlGenerator = \OCP\Server::get(IURLGenerator::class); $this->caIdentifierService = \OCP\Server::get(CaIdentifierService::class); $this->logger = \OCP\Server::get(LoggerInterface::class); - - $this->appConfig->deleteKey(Application::APP_ID, 'certificate_engine'); - $this->appConfig->deleteKey(Application::APP_ID, 'identify_methods'); - $this->appConfig->deleteKey(Application::APP_ID, 'config_path'); } private function getInstance(): OpenSslHandler { diff --git a/tests/php/Unit/Handler/CertificateEngine/CertificateEngineFactoryTest.php b/tests/php/Unit/Handler/CertificateEngine/CertificateEngineFactoryTest.php index abf843d0d..56a4c1235 100644 --- a/tests/php/Unit/Handler/CertificateEngine/CertificateEngineFactoryTest.php +++ b/tests/php/Unit/Handler/CertificateEngine/CertificateEngineFactoryTest.php @@ -28,7 +28,7 @@ class CertificateEngineFactoryTest extends \OCA\Libresign\Tests\Unit\TestCase { } public function setUp(): void { - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->openSslHandler = $this->createMock(OpenSslHandler::class); $this->cfsslHandler = $this->createMock(CfsslHandler::class); $this->noneHandler = $this->createMock(NoneHandler::class); diff --git a/tests/php/Unit/Handler/CertificateEngine/OpenSslHandlerTest.php b/tests/php/Unit/Handler/CertificateEngine/OpenSslHandlerTest.php index 1bfcf1f70..332a0cfa7 100644 --- a/tests/php/Unit/Handler/CertificateEngine/OpenSslHandlerTest.php +++ b/tests/php/Unit/Handler/CertificateEngine/OpenSslHandlerTest.php @@ -39,7 +39,7 @@ final class OpenSslHandlerTest extends \OCA\Libresign\Tests\Unit\TestCase { private string $tempDir; public function setUp(): void { $this->config = \OCP\Server::get(IConfig::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->appDataFactory = \OCP\Server::get(IAppDataFactory::class); $this->dateTimeFormatter = \OCP\Server::get(IDateTimeFormatter::class); $this->tempManager = \OCP\Server::get(ITempManager::class); diff --git a/tests/php/Unit/Handler/FooterHandlerTest.php b/tests/php/Unit/Handler/FooterHandlerTest.php index cdc099041..bc83f924c 100644 --- a/tests/php/Unit/Handler/FooterHandlerTest.php +++ b/tests/php/Unit/Handler/FooterHandlerTest.php @@ -27,7 +27,7 @@ final class FooterHandlerTest extends \OCA\Libresign\Tests\Unit\TestCase { private ITempManager $tempManager; private FooterHandler $footerHandler; public function setUp(): void { - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->pdfParserService = $this->createMock(PdfParserService::class); $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->tempManager = \OCP\Server::get(ITempManager::class); diff --git a/tests/php/Unit/Handler/PdfTest.php b/tests/php/Unit/Handler/PdfTest.php index 03d60a7d4..3973ea51c 100644 --- a/tests/php/Unit/Handler/PdfTest.php +++ b/tests/php/Unit/Handler/PdfTest.php @@ -24,7 +24,7 @@ final class PdfTest extends \OCA\Libresign\Tests\Unit\TestCase { public function setUp(): void { parent::setUp(); $this->javaHelper = $this->createMock(JavaHelper::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->l10n = \OCP\Server::get(IL10NFactory::class)->get(Application::APP_ID); } diff --git a/tests/php/Unit/Handler/SignEngine/JSignPdfHandlerTest.php b/tests/php/Unit/Handler/SignEngine/JSignPdfHandlerTest.php index 8483a9554..c955db57b 100644 --- a/tests/php/Unit/Handler/SignEngine/JSignPdfHandlerTest.php +++ b/tests/php/Unit/Handler/SignEngine/JSignPdfHandlerTest.php @@ -63,7 +63,7 @@ final class JSignPdfHandlerTest extends \OCA\Libresign\Tests\Unit\TestCase { } } public function setUp(): void { - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->loggerInterface = $this->createMock(LoggerInterface::class); $this->tempManager = \OCP\Server::get(ITempManager::class); $this->signatureBackgroundService = $this->createMock(SignatureBackgroundService::class); diff --git a/tests/php/Unit/Handler/SignEngine/Pkcs12HandlerTest.php b/tests/php/Unit/Handler/SignEngine/Pkcs12HandlerTest.php index 3fd013e10..419120c9c 100644 --- a/tests/php/Unit/Handler/SignEngine/Pkcs12HandlerTest.php +++ b/tests/php/Unit/Handler/SignEngine/Pkcs12HandlerTest.php @@ -37,7 +37,7 @@ final class Pkcs12HandlerTest extends \OCA\Libresign\Tests\Unit\TestCase { public function setUp(): void { $this->folderService = $this->createMock(FolderService::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->certificateEngineFactory = $this->createMock(CertificateEngineFactory::class); $this->l10n = \OCP\Server::get(IL10NFactory::class)->get(Application::APP_ID); $this->footerHandler = $this->createMock(FooterHandler::class); diff --git a/tests/php/Unit/Helper/JavaHelperTest.php b/tests/php/Unit/Helper/JavaHelperTest.php index 8688ddf81..ae67e609d 100644 --- a/tests/php/Unit/Helper/JavaHelperTest.php +++ b/tests/php/Unit/Helper/JavaHelperTest.php @@ -23,7 +23,7 @@ class JavaHelperTest extends \OCA\Libresign\Tests\Unit\TestCase { public function setUp(): void { parent::setUp(); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->l10n = $this->createMock(IL10N::class); $this->logger = $this->createMock(LoggerInterface::class); } diff --git a/tests/php/Unit/Service/CertificatePolicyServiceTest.php b/tests/php/Unit/Service/CertificatePolicyServiceTest.php index 9ce7120eb..20b8f1517 100644 --- a/tests/php/Unit/Service/CertificatePolicyServiceTest.php +++ b/tests/php/Unit/Service/CertificatePolicyServiceTest.php @@ -33,7 +33,7 @@ final class CertificatePolicyServiceTest extends \OCA\Libresign\Tests\Unit\TestC public function setUp(): void { $this->appData = $this->createMock(IAppData::class); $this->urlGenerator = $this->createMock(IURLGenerator::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->l10n = \OCP\Server::get(IL10NFactory::class)->get(Application::APP_ID); } diff --git a/tests/php/Unit/Service/FileServiceTest.php b/tests/php/Unit/Service/FileServiceTest.php index ab1bdfe34..f8e993fc8 100644 --- a/tests/php/Unit/Service/FileServiceTest.php +++ b/tests/php/Unit/Service/FileServiceTest.php @@ -106,7 +106,7 @@ final class FileServiceTest extends \OCA\Libresign\Tests\Unit\TestCase { $this->accountManager = $this->createMock(IAccountManager::class); $this->client = \OCP\Server::get(IClientService::class); $this->dateTimeFormatter = \OCP\Server::get(IDateTimeFormatter::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->urlGenerator = \OCP\Server::get(IURLGenerator::class); $this->mimeTypeDetector = \OCP\Server::get(IMimeTypeDetector::class); $this->pkcs12Handler = \OCP\Server::get(Pkcs12Handler::class); diff --git a/tests/php/Unit/Service/FooterServiceTest.php b/tests/php/Unit/Service/FooterServiceTest.php index 372f9b652..3d8b2a2b1 100644 --- a/tests/php/Unit/Service/FooterServiceTest.php +++ b/tests/php/Unit/Service/FooterServiceTest.php @@ -23,7 +23,7 @@ class FooterServiceTest extends TestCase { public function setUp(): void { parent::setUp(); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->footerHandler = $this->createMock(FooterHandler::class); $this->service = new FooterService($this->appConfig, $this->footerHandler); } diff --git a/tests/php/Unit/Service/IdentifyMethod/PasswordTest.php b/tests/php/Unit/Service/IdentifyMethod/PasswordTest.php index edd6cd2b6..0a1ec6fe3 100644 --- a/tests/php/Unit/Service/IdentifyMethod/PasswordTest.php +++ b/tests/php/Unit/Service/IdentifyMethod/PasswordTest.php @@ -43,7 +43,7 @@ final class PasswordTest extends \OCA\Libresign\Tests\Unit\TestCase { public function setUp(): void { $this->identifyService = $this->createMock(IdentifyService::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->folderService = $this->createMock(FolderService::class); $this->certificateEngineFactory = $this->createMock(CertificateEngineFactory::class); $this->l10n = \OCP\Server::get(IL10NFactory::class)->get(Application::APP_ID); diff --git a/tests/php/Unit/Service/Install/ConfigureCheckServiceTest.php b/tests/php/Unit/Service/Install/ConfigureCheckServiceTest.php index 11024ba59..6c38f56f5 100644 --- a/tests/php/Unit/Service/Install/ConfigureCheckServiceTest.php +++ b/tests/php/Unit/Service/Install/ConfigureCheckServiceTest.php @@ -48,7 +48,7 @@ final class ConfigureCheckServiceTest extends \OCA\Libresign\Tests\Unit\TestCase public function setUp(): void { self::$mockExtensionLoaded = []; - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->systemConfig = $this->createMock(SystemConfig::class); $this->ocAppConfig = $this->createMock(AppConfig::class); $this->appManager = $this->createMock(IAppManager::class); diff --git a/tests/php/Unit/Service/Install/SignSetupServiceTest.php b/tests/php/Unit/Service/Install/SignSetupServiceTest.php index 0d6613a26..bdb5e8a04 100644 --- a/tests/php/Unit/Service/Install/SignSetupServiceTest.php +++ b/tests/php/Unit/Service/Install/SignSetupServiceTest.php @@ -35,7 +35,7 @@ final class SignSetupServiceTest extends \OCA\Libresign\Tests\Unit\TestCase { $this->fileAccessHelper = new FileAccessHelper(); $this->appManager = $this->createMock(IAppManager::class); $this->config = $this->createMock(IConfig::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->appDataFactory = \OCP\Server::get(IAppDataFactory::class); $this->tempManager = \OCP\Server::get(ITempManager::class); } diff --git a/tests/php/Unit/Service/ReminderServiceTest.php b/tests/php/Unit/Service/ReminderServiceTest.php index 4fb9e03db..f696f1116 100644 --- a/tests/php/Unit/Service/ReminderServiceTest.php +++ b/tests/php/Unit/Service/ReminderServiceTest.php @@ -31,7 +31,7 @@ final class ReminderServiceTest extends \OCA\Libresign\Tests\Unit\TestCase { public function setUp(): void { $this->jobList = $this->createMock(IJobList::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->dateTimeZone = Server::get(IDateTimeZone::class); $this->time = $this->createMock(ITimeFactory::class); $this->signRequestMapper = $this->createMock(SignRequestMapper::class); diff --git a/tests/php/Unit/Service/SignFileServiceTest.php b/tests/php/Unit/Service/SignFileServiceTest.php index ef6a4b080..0aa065774 100644 --- a/tests/php/Unit/Service/SignFileServiceTest.php +++ b/tests/php/Unit/Service/SignFileServiceTest.php @@ -105,7 +105,7 @@ final class SignFileServiceTest extends \OCA\Libresign\Tests\Unit\TestCase { $this->userManager = $this->createMock(IUserManager::class); $this->folderService = $this->createMock(FolderService::class); $this->logger = $this->createMock(LoggerInterface::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->validateHelper = $this->createMock(\OCA\Libresign\Helper\ValidateHelper::class); $this->signerElementsService = $this->createMock(SignerElementsService::class); $this->root = $this->createMock(\OCP\Files\IRootFolder::class); diff --git a/tests/php/Unit/Service/SignatureBackgroundServiceTest.php b/tests/php/Unit/Service/SignatureBackgroundServiceTest.php index a30af60e6..7046dde0f 100644 --- a/tests/php/Unit/Service/SignatureBackgroundServiceTest.php +++ b/tests/php/Unit/Service/SignatureBackgroundServiceTest.php @@ -23,7 +23,7 @@ final class SignatureBackgroundServiceTest extends \OCA\Libresign\Tests\Unit\Tes public function setUp(): void { $this->appData = $this->createMock(IAppData::class); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->config = $this->createMock(IConfig::class); $this->tempManager = $this->createMock(ITempManager::class); } diff --git a/tests/php/Unit/Service/SignatureTextServiceTest.php b/tests/php/Unit/Service/SignatureTextServiceTest.php index 9cc80b076..2518e0db1 100644 --- a/tests/php/Unit/Service/SignatureTextServiceTest.php +++ b/tests/php/Unit/Service/SignatureTextServiceTest.php @@ -30,7 +30,7 @@ final class SignatureTextServiceTest extends \OCA\Libresign\Tests\Unit\TestCase public function setUp(): void { $this->l10n = \OCP\Server::get(IL10NFactory::class)->get(Application::APP_ID); - $this->appConfig = $this->getMockAppConfig(); + $this->appConfig = $this->getMockAppConfigWithReset(); $this->dateTimeZone = \OCP\Server::get(IDateTimeZone::class); $this->request = $this->createMock(IRequest::class); $this->userSession = $this->createMock(IUserSession::class); diff --git a/tests/php/Unit/TestCase.php b/tests/php/Unit/TestCase.php index 8f78585e1..43ba60934 100644 --- a/tests/php/Unit/TestCase.php +++ b/tests/php/Unit/TestCase.php @@ -82,6 +82,14 @@ class TestCase extends \Test\TestCase { return $service; } + public static function getMockAppConfigWithReset(): IAppConfig { + $appConfig = self::getMockAppConfig(); + if ($appConfig instanceof AppConfigOverwrite) { + $appConfig->reset(); + } + return $appConfig; + } + public function mockConfig($config):void { $service = \OCP\Server::get(\OCP\IConfig::class); if (!$service instanceof AllConfigOverwrite) { diff --git a/tests/php/lib/AppConfigOverwrite.php b/tests/php/lib/AppConfigOverwrite.php index b8f206d1d..8b5be9fd3 100644 --- a/tests/php/lib/AppConfigOverwrite.php +++ b/tests/php/lib/AppConfigOverwrite.php @@ -138,6 +138,12 @@ class AppConfigOverwrite extends AppConfig { $this->markDeleted($app, $key); } + public function reset(): self { + $this->overWrite = []; + $this->deleted = []; + return $this; + } + private function isDeleted(string $app, string $key): bool { return isset($this->deleted[$app][$key]); }