@@ -74,4 +74,48 @@ public function testInvalidInputIniSizeToBytes($input)
7474 $ this ->expectException (\InvalidArgumentException::class);
7575 IniUtil::iniSizeToBytes ($ input );
7676 }
77+
78+ public function testIniSizeViaEnvVariableWorks ()
79+ {
80+ self ::assertArrayNotHasKey ('INIUTIL_ENV_VAR_WITH_PHP_SIZE_VALUE ' , $ _ENV );
81+ $ _ENV ['INIUTIL_ENV_VAR_WITH_PHP_SIZE_VALUE ' ] = '23M ' ;
82+ $ this ->assertSame (23 * 1024 * 1024 , IniUtil::iniSizeToBytes ('${INIUTIL_ENV_VAR_WITH_PHP_SIZE_VALUE} ' ));
83+ }
84+
85+ public function testIniSizeViaSimpleEnvVariableWorks ()
86+ {
87+ self ::assertArrayNotHasKey ('INIUTIL_SIMPLE_ENV_VAR_WITH_PHP_SIZE_VALUE ' , $ _ENV );
88+ $ _ENV ['INIUTIL_SIMPLE_ENV_VAR_WITH_PHP_SIZE_VALUE ' ] = '42M ' ;
89+ $ this ->assertSame (42 * 1024 * 1024 , IniUtil::iniSizeToBytes ('$INIUTIL_SIMPLE_ENV_VAR_WITH_PHP_SIZE_VALUE ' ));
90+ }
91+
92+ public function testIniSizeViaEnvVariableFailsForNonSizeValue ()
93+ {
94+ self ::assertArrayNotHasKey ('INIUTIL_ENV_VAR_WITHOUT_PHP_SIZE_VALUE ' , $ _ENV );
95+ $ _ENV ['INIUTIL_ENV_VAR_WITHOUT_PHP_SIZE_VALUE ' ] = 'no-size ' ;
96+ $ this ->expectException (\InvalidArgumentException::class);
97+ IniUtil::iniSizeToBytes ('${INIUTIL_ENV_VAR_WITHOUT_PHP_SIZE_VALUE} ' );
98+ }
99+
100+ public function testIniSizeViaEnvVariableIgnoresInvalidSizeModifier ()
101+ {
102+ self ::assertArrayNotHasKey ('INIUTIL_ENV_VAR_WITH_PHP_SIZE_VALUE_AND_INVALID_MODIFIER ' , $ _ENV );
103+ $ _ENV ['INIUTIL_ENV_VAR_WITH_PHP_SIZE_VALUE_AND_INVALID_MODIFIER ' ] = '1337V ' ;
104+ $ this ->assertSame (1337 , IniUtil::iniSizeToBytes ('${INIUTIL_ENV_VAR_WITH_PHP_SIZE_VALUE_AND_INVALID_MODIFIER} ' ));
105+ }
106+
107+ public function testIniSizeViaEnvVariableFailsForNonNumericValue ()
108+ {
109+ self ::assertArrayNotHasKey ('INIUTIL_ENV_VAR_WITH_NON_NUMERIC_PHP_SIZE_VALUE ' , $ _ENV );
110+ $ _ENV ['INIUTIL_ENV_VAR_WITH_NON_NUMERIC_PHP_SIZE_VALUE ' ] = 'V1337V ' ;
111+ $ this ->expectException (\InvalidArgumentException::class);
112+ IniUtil::iniSizeToBytes ('${INIUTIL_ENV_VAR_WITH_NON_NUMERIC_PHP_SIZE_VALUE} ' );
113+ }
114+
115+ public function testIniSizeViaMissingEnvVariableFails ()
116+ {
117+ self ::assertArrayNotHasKey ('INIUTIL_ENV_VAR_MISSING_WITH_NON_NUMERIC_PHP_SIZE_VALUE ' , $ _ENV );
118+ $ this ->expectException (\InvalidArgumentException::class);
119+ IniUtil::iniSizeToBytes ('${INIUTIL_ENV_VAR_MISSING_WITH_NON_NUMERIC_PHP_SIZE_VALUE} ' );
120+ }
77121}
0 commit comments