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));
 | 
						|
    }
 | 
						|
}
 |