Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Install/tests/TestCase/Model/InstallTest.php
<?php
namespace Croogo\Install\Test\TestCase\Model;

use
Croogo\TestSuite\CroogoTestCase;
use
Migrations\Lib\MigrationVersion;
use
Users\Model\User;

class
InstallTest extends CroogoTestCase
{

    public
$fixtures = [
       
'plugin.Croogo/Users.Aro',
       
'plugin.Croogo/Install.InstallUser',
       
'plugin.Croogo/Install.InstallRole',
    ];

    public function
setUp()
    {
       
parent::setUp();

       
Plugin::load('Install');
       
$this->Install = ClassRegistry::init('Install.Install');
    }

    public function
testRunMigrationsOk()
    {
       
$croogoPlugin = $this->getMock('CroogoPlugin');
       
$croogoPlugin->expects($this->any())
                ->
method('migrate')
                ->
will($this->returnValue(true));
       
$this->_runProtectedMethod('_setCroogoPlugin', [$croogoPlugin]);
       
$this->assertEquals(true, $this->Install->runMigrations('Users'));
    }

    public function
testRunMigrationsFailed()
    {
       
$croogoPlugin = $this->getMock('CroogoPlugin');
       
$croogoPlugin->expects($this->any())
                ->
method('migrate')
                ->
will($this->returnValue(false));
       
$this->_runProtectedMethod('_setCroogoPlugin', [$croogoPlugin]);
       
$this->assertEquals(false, $this->Install->runMigrations('Users'));
    }

    public function
testAddAdminUserOk()
    {
       
$user = ['User' => [
           
'username' => 'admin',
           
'password' => '123456',
        ]];
       
$this->Install->addAdminUser($user);
       
$User = ClassRegistry::init('Users.User');

       
$count = $User->find('count');
       
$this->assertEqual($count, 1);

       
$saved = $User->findByUsername('admin');
       
$expected = AuthComponent::password($user['User']['password']);
       
$this->assertEqual($expected, $saved['User']['password'], 'Password mismatch');
    }

    public function
testAddAdminUserBadPassword()
    {
       
$user = ['User' => [
           
'username' => 'admin',
           
'password' => '1234',
        ]];
       
$this->Install->addAdminUser($user);
       
$count = ClassRegistry::init('Users.User')->find('count');
       
$this->assertEqual($count, 0);
    }

    protected function
_runProtectedMethod($name, $args = [])
    {
       
$this->skipIf(version_compare(PHP_VERSION, '5.3.0', '<'), 'PHP >= 5.3.0 required to run this test.');
       
$method = new ReflectionMethod(get_class($this->Install), $name);
       
$method->setAccessible(true);

        return
$method->invokeArgs($this->Install, $args);
    }
}