From 73fa6c8ff470f8da932bc4132fed083b7d30fb95 Mon Sep 17 00:00:00 2001 From: "lenaick.moreira" Date: Tue, 2 Jun 2026 08:54:54 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B09597=20-=20Switch=20environment=20to=20a?= =?UTF-8?q?=20build=20environment=20must=20not=20be=20available?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/startup.inc.php | 2 +- sources/Service/Startup/StartupService.php | 8 ++++---- .../Service/Startup/StartupServiceTest.php | 15 +++++++++------ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/application/startup.inc.php b/application/startup.inc.php index 11385173d..2eecc35ea 100644 --- a/application/startup.inc.php +++ b/application/startup.inc.php @@ -70,7 +70,7 @@ $oKPI->ComputeAndReport("Session Start"); $sSwitchEnv = utils::ReadParam('switch_env', null); $bAllowCache = true; -$sEnv = StartupService::SetItopEnvironment($sSwitchEnv, $bAllowCache); +$sEnv = (new StartupService())->SetItopEnvironment($sSwitchEnv, $bAllowCache); $sConfigFile = APPCONF.$sEnv.'/'.ITOP_CONFIG_FILE; try { MetaModel::Startup($sConfigFile, false /* $bModelOnly */, $bAllowCache, false /* $bTraceSourceFiles */, $sEnv); diff --git a/sources/Service/Startup/StartupService.php b/sources/Service/Startup/StartupService.php index 89e48ec5e..7b81c6a6c 100644 --- a/sources/Service/Startup/StartupService.php +++ b/sources/Service/Startup/StartupService.php @@ -10,14 +10,14 @@ class StartupService { /** * @param string|null $sSwitchEnv - * @param bool $bAllowCache + * @param bool $bAllowCache - whether to allow cache or not (will be set to false if the environment is switched) * * @return string * @throws CoreException */ - public static function SetItopEnvironment(?string $sSwitchEnv, bool &$bAllowCache): string + public function SetItopEnvironment(?string $sSwitchEnv, bool &$bAllowCache): string { - if (static::IsBuildEnvironment($sSwitchEnv)) { + if ($this->IsBuildEnvironment($sSwitchEnv)) { $oException = new CoreException("Switching to environment '$sSwitchEnv' is not allowed since it is a build environment"); IssueLog::Exception("Trying to switch to environment '$sSwitchEnv' is not allowed since it is a build environment", $oException); throw $oException; @@ -51,7 +51,7 @@ class StartupService return $sEnv; } - public static function IsBuildEnvironment(?string $sEnv): bool + public function IsBuildEnvironment(?string $sEnv): bool { return $sEnv != null && str_ends_with($sEnv, '-build'); } diff --git a/tests/php-unit-tests/unitary-tests/sources/Service/Startup/StartupServiceTest.php b/tests/php-unit-tests/unitary-tests/sources/Service/Startup/StartupServiceTest.php index 881a5c147..25f01f10b 100644 --- a/tests/php-unit-tests/unitary-tests/sources/Service/Startup/StartupServiceTest.php +++ b/tests/php-unit-tests/unitary-tests/sources/Service/Startup/StartupServiceTest.php @@ -8,16 +8,19 @@ use CoreException; class StartupServiceTest extends ItopTestCase { + private StartupService $oStartupService; + protected function setUp(): void { parent::setUp(); $this->RequireOnceItopFile('application/utils.inc.php'); + $this->oStartupService = new StartupService(); } public function testSetItopEnvironmentUsesDefaultWhenEnvironmentIsNull(): void { $bAllowCache = true; - $sEnv = StartupService::SetItopEnvironment(null, $bAllowCache); + $sEnv = $this->oStartupService->SetItopEnvironment(null, $bAllowCache); $this->assertEquals(ITOP_DEFAULT_ENV, $sEnv); $this->assertTrue($bAllowCache); } @@ -25,7 +28,7 @@ class StartupServiceTest extends ItopTestCase public function testSetItopEnvironmentWithValidEnvironment(): void { $bAllowCache = true; - $sEnv = StartupService::SetItopEnvironment('test', $bAllowCache); + $sEnv = $this->oStartupService->SetItopEnvironment('test', $bAllowCache); $this->assertEquals('test', $sEnv); $this->assertFalse($bAllowCache); } @@ -35,13 +38,13 @@ class StartupServiceTest extends ItopTestCase $bAllowCache = true; $this->expectException(CoreException::class); $this->expectExceptionMessage("Switching to environment 'test-build' is not allowed since it is a build environment"); - StartupService::SetItopEnvironment('test-build', $bAllowCache); + $this->oStartupService->SetItopEnvironment('test-build', $bAllowCache); } public function testIsBuildEnvironment() { - $this->assertTrue(StartupService::IsBuildEnvironment('test-build')); - $this->assertFalse(StartupService::IsBuildEnvironment('test')); - $this->assertFalse(StartupService::IsBuildEnvironment(null)); + $this->assertTrue($this->oStartupService->IsBuildEnvironment('test-build')); + $this->assertFalse($this->oStartupService->IsBuildEnvironment('test')); + $this->assertFalse($this->oStartupService->IsBuildEnvironment(null)); } }