47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| 
 | |
| namespace Songshenzong\Support\Test\Core;
 | |
| 
 | |
| use ReflectionClass;
 | |
| use ReflectionException;
 | |
| use Songshenzong\Support\OS;
 | |
| use PHPUnit\Framework\TestCase;
 | |
| 
 | |
| /**
 | |
|  * Class OSTest
 | |
|  *
 | |
|  * @package Songshenzong\Support\Test\Core
 | |
|  */
 | |
| class OSTest extends TestCase
 | |
| {
 | |
| 
 | |
|     /**
 | |
|      * @throws ReflectionException
 | |
|      */
 | |
|     public function testGetsHomeDirectoryForWindowsUser()
 | |
|     {
 | |
|         putenv('HOME=');
 | |
|         putenv('HOMEDRIVE=C:');
 | |
|         putenv('HOMEPATH=\\Users\\Support');
 | |
|         $ref    = new ReflectionClass(OS::class);
 | |
|         $method = $ref->getMethod('getHomeDirectory');
 | |
|         $method->setAccessible(true);
 | |
|         $this->assertEquals('C:\\Users\\Support', $method->invoke(null));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @depends testGetsHomeDirectoryForWindowsUser
 | |
|      * @throws ReflectionException
 | |
|      */
 | |
|     public function testGetsHomeDirectoryForLinuxUser()
 | |
|     {
 | |
|         putenv('HOME=/root');
 | |
|         putenv('HOMEDRIVE=');
 | |
|         putenv('HOMEPATH=');
 | |
|         $ref    = new ReflectionClass(OS::class);
 | |
|         $method = $ref->getMethod('getHomeDirectory');
 | |
|         $method->setAccessible(true);
 | |
|         $this->assertEquals('/root', $method->invoke(null));
 | |
|     }
 | |
| }
 |