<?php 
 
/* 
 * Queasy PHP Framework - Configuration - Tests 
 * 
 * (c) Vitaly Demyanenko <[email protected]> 
 * 
 * For the full copyright and license information, please view the LICENSE file that was distributed with this source code. 
 */ 
 
namespace queasy\config\tests\loader; 
 
use PHPUnit\Framework\TestCase; 
use queasy\config\loader\CliLoader; 
use queasy\config\loader\NotFoundException; 
use queasy\config\loader\CorruptedException; 
 
class CliLoaderTest extends TestCase 
{ 
    public function testCorrect() 
    { 
        global $argv; 
 
        $argv = [ 
            '[command line, to be skipped]', 
            'key1=value1', 
            'key2=value2', 
            'key3' 
        ]; 
 
        $loader = new CliLoader(); 
        $result = $loader(); 
 
        $this->assertTrue(is_array($result)); 
        $this->assertGreaterThan(0, count($result)); 
        $this->assertCount(3, $result); 
        $this->assertArrayHasKey('key1', $result); 
        $this->assertEquals('value1', $result['key1']); 
        $this->assertArrayHasKey('key2', $result); 
        $this->assertEquals('value2', $result['key2']); 
        $this->assertArrayHasKey('key3', $result); 
        $this->assertEquals(true, $result['key3']); 
    } 
 
    public function testCorrectWithSections() 
    { 
        global $argv; 
 
        $argv = [ 
            '[command line, to be skipped]', 
            'section1.key1=value11', 
            'section1.key2=value12', 
            'key3=value3' 
        ]; 
 
        $loader = new CliLoader(); 
        $result = $loader(); 
 
        $this->assertTrue(is_array($result)); 
        $this->assertGreaterThan(0, count($result)); 
        $this->assertCount(2, $result); 
        $this->assertArrayHasKey('section1', $result); 
        $this->assertIsArray($result['section1']); 
        $this->assertArrayHasKey('key1', $result['section1']); 
        $this->assertEquals('value11', $result['section1']['key1']); 
        $this->assertArrayHasKey('key2', $result['section1']); 
        $this->assertEquals('value12', $result['section1']['key2']); 
        $this->assertArrayHasKey('key3', $result); 
        $this->assertEquals('value3', $result['key3']); 
    } 
} 
 
 
 |