7 Commits

Author SHA1 Message Date
Ismo Vuorinen
83a07b225e Added new tests, updated composer.json and added auto-discovery 2017-11-22 11:57:25 +02:00
Ismo Vuorinen
9ca5301b77 CS 2017-11-22 11:56:49 +02:00
Ismo Vuorinen
5d3aab30c0 Merge branch 'release/1.2.0' into develop 2017-10-19 10:58:52 +03:00
Ismo Vuorinen
06039cdcfd Changelog 2017-10-19 10:58:37 +03:00
Ismo Vuorinen
fcb274d3d6 Upgrading required PHP version to >=7.0
This bump is because it took really long time to find suitable packages
for PHP 5.6.
2017-10-19 10:40:05 +03:00
Ismo Vuorinen
8bc16492f6 Changed require-dev phpunit version limits to include ^4.0 2017-10-03 08:20:24 +03:00
Ismo Vuorinen
662acf0b48 Merge branch 'release/1.1.2' into develop 2017-09-15 19:24:49 +03:00
12 changed files with 3653 additions and 41 deletions

3
.gitignore vendored
View File

@@ -1,2 +1 @@
vendor vendor
composer.lock

View File

@@ -1,12 +1,10 @@
language: php language: php
php: php:
- 5.6
- 7.0 - 7.0
- 7.1 - 7.1
- nightly - nightly
matrix: matrix:
allow_failures: allow_failures:
- php: 5.6
- php: nightly - php: nightly
fast_finish: true fast_finish: true
cache: cache:

View File

@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/) The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/). and this project adheres to [Semantic Versioning](http://semver.org/).
## [1.2.0](https://github.com/superhelio/commands/tree/1.2.0) (2017-10-19)
- Bumped PHP version requirement to >=7.0, PHP5.6 was taking really long time to resolve
- Included composer.lock, which is generated with PHP v7.0.23
## [1.1.2](https://github.com/superhelio/commands/tree/1.1.2) (2017-09-15) ## [1.1.2](https://github.com/superhelio/commands/tree/1.1.2) (2017-09-15)
- Removed composer.lock, only to enable correct CI builds - Removed composer.lock, only to enable correct CI builds
- Reworked travis-ci.org configuration, builds should now go green - Reworked travis-ci.org configuration, builds should now go green

View File

@@ -10,6 +10,8 @@
This is a collection of Laravel Artisan commands created to help everyone This is a collection of Laravel Artisan commands created to help everyone
in their development work. We try to keep these as useful as possible. in their development work. We try to keep these as useful as possible.
This package requires PHP 7.0 or later. `composer.lock` has been generated with PHP v7.0.23.
## Install ## Install
### Step 1: Install Through Composer ### Step 1: Install Through Composer
@@ -77,3 +79,4 @@ The MIT License (MIT). Please see [License File](LICENSE.md) for more informatio
[link-downloads]: https://packagist.org/packages/superhelio/commands [link-downloads]: https://packagist.org/packages/superhelio/commands
[link-author]: https://github.com/superhelio [link-author]: https://github.com/superhelio
[link-contributors]: https://github.com/superhelio/commands/graphs/contributors [link-contributors]: https://github.com/superhelio/commands/graphs/contributors
[link-dbal]: https://packagist.org/packages/doctrine/dbal

View File

@@ -17,13 +17,13 @@
} }
], ],
"require": { "require": {
"php" : ">=5.5.0", "php" : ">=7.0",
"illuminate/support": "~5.2" "illuminate/support": "^5.3|^5.4|^5.5",
"doctrine/dbal": "^2.5|^2.6"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit" : "~5.7", "phpunit/phpunit" : "^5.0",
"orchestra/testbench": "~3.0", "orchestra/testbench": "~3.0"
"doctrine/dbal": "~2.3"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@@ -41,6 +41,11 @@
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.0-dev" "dev-master": "1.0-dev"
},
"laravel": {
"providers": [
"Superhelio\\Commands\\ServiceProvider"
]
} }
} }
} }

3489
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -11,7 +11,9 @@ class Reload extends Command
* *
* @var string * @var string
*/ */
protected $signature = 'superhelio:reload'; protected $signature = 'superhelio:reload
{--automate=false : Should run without questions?}
{--loud=true : Should output reset and migrate outputs?}';
/** /**
* The console command description. * The console command description.
@@ -27,26 +29,51 @@ class Reload extends Command
*/ */
public function handle() public function handle()
{ {
if ($this->confirm('Rollback all your database tables, recreate them and seed?')) { $automated = $this->automate();
$this->call(
'migrate:reset',
[
'--no-interaction' => true,
'--env' => 'development',
'--verbose' => 3
]
);
$this->call(
'migrate',
[
'--seed' => true,
'--no-interaction' => true,
'--env' => 'development',
'--verbose' => 3
]
);
return true; if ($automated && $this->confirm('Rollback all your database tables, recreate them and seed?')) {
return $this->runReload();
}
if (!$automated) {
return $this->runReload();
} }
} }
public function automate()
{
$automate = $this->option('automate');
return !($automate === '1' || $automate === 1 || $automate === 'yes' || $automate === 'true');
}
public function outputVerbosity()
{
$output = $this->option('loud');
return ($output === '1' || $output === 1 || $output == 'yes' || $output == 'true');
}
public function runReload()
{
$verbose = ($this->outputVerbosity() ? 3 : 0);
$this->call(
'migrate:reset',
[
'--no-interaction' => true,
'--env' => 'development',
'--verbose' => $verbose
]
);
$this->call(
'migrate',
[
'--seed' => true,
'--no-interaction' => true,
'--env' => 'development',
'--verbose' => $verbose
]
);
return true;
}
} }

View File

@@ -1,4 +1,5 @@
<?php <?php
namespace Superhelio\Commands; namespace Superhelio\Commands;
class Facade extends \Illuminate\Support\Facades\Facade class Facade extends \Illuminate\Support\Facades\Facade

View File

@@ -1,4 +1,5 @@
<?php <?php
namespace Superhelio\Commands; namespace Superhelio\Commands;
use ReflectionClass; use ReflectionClass;
@@ -101,12 +102,12 @@ class GozerTest extends \Orchestra\Testbench\TestCase
$connection = $gozer->getConnection(); $connection = $gozer->getConnection();
$tables = $gozer->getTables($connection); $tables = $gozer->getTables($connection);
$this->assertTrue(in_array('gozerTest__users', $tables, false)); $this->assertTrue(\in_array('gozerTest__users', $tables, false));
$gozer->setDatabasePrefix('gozerTest__'); $gozer->setDatabasePrefix('gozerTest__');
$filteredTables = $gozer->getFilteredTables($tables); $filteredTables = $gozer->getFilteredTables($tables);
$this->assertTrue(is_a($filteredTables, \Illuminate\Support\Collection::class)); $this->assertTrue(is_a($filteredTables, \Illuminate\Support\Collection::class));
$this->assertTrue(in_array('gozerTest__users', $filteredTables->toArray(), false)); $this->assertTrue(\in_array('gozerTest__users', $filteredTables->toArray(), false));
} }
public function test_gozer_table_filtering_works() public function test_gozer_table_filtering_works()
@@ -123,9 +124,9 @@ class GozerTest extends \Orchestra\Testbench\TestCase
$filtered = $gozer->getFilteredTables($tables); $filtered = $gozer->getFilteredTables($tables);
$array = $filtered->toArray(); $array = $filtered->toArray();
$this->assertFalse(in_array('this_should_be_filtered', $array, false)); $this->assertFalse(\in_array('this_should_be_filtered', $array, false));
$this->assertFalse(in_array('filter_me_too', $array, false)); $this->assertFalse(\in_array('filter_me_too', $array, false));
$this->assertTrue(in_array('gozerTest__users', $array, false)); $this->assertTrue(\in_array('gozerTest__users', $array, false));
$this->assertTrue(in_array('gozerTest__migrations', $array, false)); $this->assertTrue(\in_array('gozerTest__migrations', $array, false));
} }
} }

24
tests/PackageTest.php Normal file
View File

@@ -0,0 +1,24 @@
<?php
namespace Superhelio\Commands;
use ReflectionClass;
class PackageTest extends \Orchestra\Testbench\TestCase
{
public function test_facade()
{
$facade = new ReflectionClass(Facade::class);
$this->assertTrue($facade->hasMethod('getFacadeAccessor'));
$this->assertTrue($facade->getMethod('getFacadeAccessor')->isProtected());
$this->assertTrue($facade->getMethod('getFacadeAccessor')->isStatic());
}
public function test_service_provider()
{
$sp = new ReflectionClass(\Superhelio\Commands\ServiceProvider::class);
$this->assertTrue($sp->hasMethod('register'));
$this->assertTrue($sp->hasMethod('registerReloader'));
$this->assertTrue($sp->hasMethod('registerGozer'));
}
}

View File

@@ -1,14 +1,75 @@
<?php <?php
namespace Superhelio\Commands; namespace Superhelio\Commands;
use ReflectionClass;
use Superhelio\Commands\Commands\Reload; use Superhelio\Commands\Commands\Reload;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ReloadTest extends \PHPUnit_Framework_TestCase class ReloadTest extends \Orchestra\Testbench\TestCase
{ {
public function testReloadTest() /**
* Setup the test environment.
*/
public function setUp()
{ {
$this->assertTrue(true); parent::setUp();
$this->artisan('migrate', ['--database' => 'testbench']);
}
/**
* Define environment setup.
*
* @param \Illuminate\Foundation\Application $app
*
* @return void
*/
protected function getEnvironmentSetUp($app)
{
// Setup default database to use sqlite :memory:
$app['config']->set('database.default', 'testbench');
$app['config']->set('database.connections.testbench', [
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => 'reloadTest__',
]);
}
/**
* Get package providers.
* At a minimum this is the package being tested, but also
* would include packages upon which our package depends.
* In a normal app environment these would be added to
* the 'providers' array in the config/app.php file.
*
* @param \Illuminate\Foundation\Application $app
*
* @return array
*/
protected function getPackageProviders($app)
{
return [
'\Superhelio\Commands\Tests\Stubs\ServiceProvider',
'\Superhelio\Commands\ServiceProvider'
];
}
public function test_reload_exists()
{
$this->assertTrue(class_exists(Reload::class));
$reload = new Reload();
$this->assertInstanceOf(Reload::class, $reload);
}
public function test_reload_has_required_methods_and_properties()
{
$reload = new Reload();
$this->assertTrue(method_exists($reload, 'handle'), 'handle');
$this->assertTrue(method_exists($reload, 'runReload'), 'runReload');
$this->assertTrue(method_exists($reload, 'automate'), 'automate');
$reload = new ReflectionClass(Reload::class);
$this->assertTrue($reload->hasProperty('signature'), 'signature');
$this->assertTrue($reload->hasProperty('description'), 'description');
} }
} }

View File

@@ -5,6 +5,6 @@ class ServiceProvider extends \Illuminate\Support\ServiceProvider
{ {
public function boot() public function boot()
{ {
$this->loadMigrationsFrom(dirname(__DIR__) . '/migrations'); $this->loadMigrationsFrom(\dirname(__DIR__) . '/migrations');
} }
} }