<?php
namespace Yjtec\Consul\Tests\Commands;

use Yjtec\Consul\Commands\InitCommand;
use Yjtec\Consul\Tests\TestCase;

class InitCommandTest extends TestCase
{
    public function testHasInitFlase()
    {
        $this->mockMethod('storage_path', function () {
            return '123.php';
        });
        $command = new InitCommand;

        $this->assertFalse($command->hasInit());
    }
    
    public function testHasInitTrue(){
        $this->mockMethod('storage_path',function(){
            return __FILE__;
        });
        $command = new InitCommand;
        $this->assertTrue($command->hasInit());
    }
    /**
     * @expectedException \RunTimeException
     * @expectedExceptionMessage Consul Has Initizlized
     */
    public function testHandleInitTrue(){
        $this->mockMethod('storage_path', function () {
            return __FILE__;
        });

        $command = new InitCommand;
        $command->handle();
        $this->assertTrue(true);

    }
    protected function mockMethod($name, \Closure $function, $namespace = null)
    {
        return parent::mockMethod($name, $function, 'Yjtec\Consul\Commands');
    }
}