@@ -2061,6 +2061,17 @@ public function testGetEnvReturnsStringFromGlobalServerIfNotSetInMap(): void
20612061 $ this ->assertEquals ('bar ' , $ ret );
20622062 }
20632063
2064+ public function testGetEnvReturnsStringFromProcessEnvIfNotSetInMap (): void
2065+ {
2066+ $ container = new Container ([]);
2067+
2068+ putenv ('X_FOO=bar ' );
2069+ $ ret = $ container ->getEnv ('X_FOO ' );
2070+ putenv ('X_FOO ' );
2071+
2072+ $ this ->assertEquals ('bar ' , $ ret );
2073+ }
2074+
20642075 public function testGetEnvReturnsStringFromGlobalEnvBeforeServerIfNotSetInMap (): void
20652076 {
20662077 $ container = new Container ([]);
@@ -2073,6 +2084,19 @@ public function testGetEnvReturnsStringFromGlobalEnvBeforeServerIfNotSetInMap():
20732084 $ this ->assertEquals ('foo ' , $ ret );
20742085 }
20752086
2087+ public function testGetEnvReturnsStringFromGlobalEnvBeforeProcessEnvIfNotSetInMap (): void
2088+ {
2089+ $ container = new Container ([]);
2090+
2091+ $ _ENV ['X_FOO ' ] = 'foo ' ;
2092+ putenv ('X_FOO=bar ' );
2093+ $ ret = $ container ->getEnv ('X_FOO ' );
2094+ unset($ _ENV ['X_FOO ' ]);
2095+ putenv ('X_FOO ' );
2096+
2097+ $ this ->assertEquals ('foo ' , $ ret );
2098+ }
2099+
20762100 public function testGetEnvReturnsStringFromPsrContainer (): void
20772101 {
20782102 $ psr = $ this ->createMock (ContainerInterface::class);
@@ -2097,6 +2121,22 @@ public function testGetEnvReturnsNullIfPsrContainerHasNoEntry(): void
20972121 $ this ->assertNull ($ container ->getEnv ('X_FOO ' ));
20982122 }
20992123
2124+ public function testGetEnvReturnsStringFromProcessEnvIfPsrContainerHasNoEntry (): void
2125+ {
2126+ $ psr = $ this ->createMock (ContainerInterface::class);
2127+ $ psr ->expects ($ this ->atLeastOnce ())->method ('has ' )->with ('X_FOO ' )->willReturn (false );
2128+ $ psr ->expects ($ this ->never ())->method ('get ' );
2129+
2130+ assert ($ psr instanceof ContainerInterface);
2131+ $ container = new Container ($ psr );
2132+
2133+ putenv ('X_FOO=bar ' );
2134+ $ ret = $ container ->getEnv ('X_FOO ' );
2135+ putenv ('X_FOO ' );
2136+
2137+ $ this ->assertEquals ('bar ' , $ ret );
2138+ }
2139+
21002140 public function testGetEnvReturnsStringFromGlobalEnvIfPsrContainerHasNoEntry (): void
21012141 {
21022142 $ psr = $ this ->createMock (ContainerInterface::class);
@@ -2146,6 +2186,24 @@ public function testGetEnvReturnsStringFromGlobalEnvBeforeServerIfPsrContainerHa
21462186 $ this ->assertEquals ('foo ' , $ ret );
21472187 }
21482188
2189+ public function testGetEnvReturnsStringFromGlobalEnvBeforeProcessEnvIfPsrContainerHasNoEntry (): void
2190+ {
2191+ $ psr = $ this ->createMock (ContainerInterface::class);
2192+ $ psr ->expects ($ this ->atLeastOnce ())->method ('has ' )->with ('X_FOO ' )->willReturn (false );
2193+ $ psr ->expects ($ this ->never ())->method ('get ' );
2194+
2195+ assert ($ psr instanceof ContainerInterface);
2196+ $ container = new Container ($ psr );
2197+
2198+ $ _ENV ['X_FOO ' ] = 'foo ' ;
2199+ putenv ('X_FOO=bar ' );
2200+ $ ret = $ container ->getEnv ('X_FOO ' );
2201+ unset($ _ENV ['X_FOO ' ]);
2202+ putenv ('X_FOO ' );
2203+
2204+ $ this ->assertEquals ('foo ' , $ ret );
2205+ }
2206+
21492207 public function testGetEnvThrowsIfMapContainsInvalidType (): void
21502208 {
21512209 $ container = new Container ([
0 commit comments