@@ -2039,6 +2039,17 @@ public function testGetEnvReturnsStringFromMapFactory(): void
20392039 $ this ->assertEquals ('bar ' , $ container ->getEnv ('X_FOO ' ));
20402040 }
20412041
2042+ public function testGetEnvReturnsStringFromGlobalEnvIfNotSetInMap (): void
2043+ {
2044+ $ container = new Container ([]);
2045+
2046+ $ _ENV ['X_FOO ' ] = 'bar ' ;
2047+ $ ret = $ container ->getEnv ('X_FOO ' );
2048+ unset($ _ENV ['X_FOO ' ]);
2049+
2050+ $ this ->assertEquals ('bar ' , $ ret );
2051+ }
2052+
20422053 public function testGetEnvReturnsStringFromGlobalServerIfNotSetInMap (): void
20432054 {
20442055 $ container = new Container ([]);
@@ -2050,6 +2061,18 @@ public function testGetEnvReturnsStringFromGlobalServerIfNotSetInMap(): void
20502061 $ this ->assertEquals ('bar ' , $ ret );
20512062 }
20522063
2064+ public function testGetEnvReturnsStringFromGlobalEnvBeforeServerIfNotSetInMap (): void
2065+ {
2066+ $ container = new Container ([]);
2067+
2068+ $ _ENV ['X_FOO ' ] = 'foo ' ;
2069+ $ _SERVER ['X_FOO ' ] = 'bar ' ;
2070+ $ ret = $ container ->getEnv ('X_FOO ' );
2071+ unset($ _ENV ['X_FOO ' ], $ _SERVER ['X_FOO ' ]);
2072+
2073+ $ this ->assertEquals ('foo ' , $ ret );
2074+ }
2075+
20532076 public function testGetEnvReturnsStringFromPsrContainer (): void
20542077 {
20552078 $ psr = $ this ->createMock (ContainerInterface::class);
@@ -2074,6 +2097,22 @@ public function testGetEnvReturnsNullIfPsrContainerHasNoEntry(): void
20742097 $ this ->assertNull ($ container ->getEnv ('X_FOO ' ));
20752098 }
20762099
2100+ public function testGetEnvReturnsStringFromGlobalEnvIfPsrContainerHasNoEntry (): void
2101+ {
2102+ $ psr = $ this ->createMock (ContainerInterface::class);
2103+ $ psr ->expects ($ this ->atLeastOnce ())->method ('has ' )->with ('X_FOO ' )->willReturn (false );
2104+ $ psr ->expects ($ this ->never ())->method ('get ' );
2105+
2106+ assert ($ psr instanceof ContainerInterface);
2107+ $ container = new Container ($ psr );
2108+
2109+ $ _ENV ['X_FOO ' ] = 'bar ' ;
2110+ $ ret = $ container ->getEnv ('X_FOO ' );
2111+ unset($ _ENV ['X_FOO ' ]);
2112+
2113+ $ this ->assertEquals ('bar ' , $ ret );
2114+ }
2115+
20772116 public function testGetEnvReturnsStringFromGlobalServerIfPsrContainerHasNoEntry (): void
20782117 {
20792118 $ psr = $ this ->createMock (ContainerInterface::class);
@@ -2090,6 +2129,23 @@ public function testGetEnvReturnsStringFromGlobalServerIfPsrContainerHasNoEntry(
20902129 $ this ->assertEquals ('bar ' , $ ret );
20912130 }
20922131
2132+ public function testGetEnvReturnsStringFromGlobalEnvBeforeServerIfPsrContainerHasNoEntry (): void
2133+ {
2134+ $ psr = $ this ->createMock (ContainerInterface::class);
2135+ $ psr ->expects ($ this ->atLeastOnce ())->method ('has ' )->with ('X_FOO ' )->willReturn (false );
2136+ $ psr ->expects ($ this ->never ())->method ('get ' );
2137+
2138+ assert ($ psr instanceof ContainerInterface);
2139+ $ container = new Container ($ psr );
2140+
2141+ $ _ENV ['X_FOO ' ] = 'foo ' ;
2142+ $ _SERVER ['X_FOO ' ] = 'bar ' ;
2143+ $ ret = $ container ->getEnv ('X_FOO ' );
2144+ unset($ _ENV ['X_FOO ' ], $ _SERVER ['X_FOO ' ]);
2145+
2146+ $ this ->assertEquals ('foo ' , $ ret );
2147+ }
2148+
20932149 public function testGetEnvThrowsIfMapContainsInvalidType (): void
20942150 {
20952151 $ container = new Container ([
0 commit comments