11 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
Ismo Vuorinen
37f35eeb26 CHANGELOG 2017-09-15 19:24:17 +03:00
Ismo Vuorinen
8fe5df77fb PHP5.6 composer install takes a long time... 2017-09-15 18:35:46 +03:00
Ismo Vuorinen
6140c7b999 Testing settings for travis-ci build config 2017-09-15 07:20:25 +03:00
Ismo Vuorinen
4f51fd8c51 Typo fixes, composer.lock and removal of dead code. Ready for v1.1.1. 2017-08-27 19:48:06 +03:00
13 changed files with 3682 additions and 82 deletions

3
.gitignore vendored
View File

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

View File

@@ -1,30 +1,20 @@
language: php language: php
sudo: false
php: php:
- 7.0 - 7.0
- 7.1 - 7.1
- nightly
env: matrix:
global: allow_failures:
- setup=basic - php: nightly
- coverage=no fast_finish: true
cache: cache:
directories: directories:
- $HOME/.composer/cache/files - $HOME/.composer/cache/files
before_script: before_script:
- composer config discard-changes true - phpenv global "$TRAVIS_PHP_VERSION"
- if [[ $setup = 'basic' ]]; then travis_retry composer install --prefer-dist --no-interaction; fi - composer config extra.platform.php $TRAVIS_PHP_VERSION
- if [[ $setup = 'stable' ]]; then travis_retry composer update --prefer-dist --no-interaction --prefer-stable; fi install:
- if [[ $setup = 'lowest' ]]; then travis_retry composer update --prefer-dist --no-interaction --prefer-lowest --prefer-stable; fi - flags="--ansi --prefer-dist --no-interaction --optimize-autoloader --no-suggest --no-progress"
- if [[ $setup = 'coveralls' ]]; then travis_retry composer require "satooshi/php-coveralls=~0.7" --prefer-dist --no-interaction --dev; fi - travis_wait 30 composer install $flags
script: script:
- if [[ $coverage = 'yes' ]]; then ./vendor/bin/phpunit -c phpunit.xml --coverage-clover build/logs/clover.xml; fi - ./vendor/bin/phpunit -c phpunit.xml
- if [[ $coverage = 'no' ]]; then ./vendor/bin/phpunit -c phpunit.xml; fi
after_script:
- if [[ $setup = 'coveralls' ]]; then php vendor/bin/coveralls -v; fi

View File

@@ -4,7 +4,20 @@ 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.1.0](https://github.com/superhelio/commands/tree/2.0.0) (2017-08-27) ## [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)
- Removed composer.lock, only to enable correct CI builds
- Reworked travis-ci.org configuration, builds should now go green
## [1.1.1](https://github.com/superhelio/commands/tree/1.1.1) (2017-08-27)
- Typo fixes
- Removal of dead/unnecessary code
- Added composer.lock for faster builds
## [1.1.0](https://github.com/superhelio/commands/tree/1.1.0) (2017-08-27)
- New command: `superhelio:gozer` with tests - New command: `superhelio:gozer` with tests
## [1.0.0](https://github.com/superhelio/commands/tree/1.0.0) (2017-02-08) ## [1.0.0](https://github.com/superhelio/commands/tree/1.0.0) (2017-02-08)

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
@@ -34,7 +36,7 @@ public function register()
## Usage ## Usage
- *superhelio:gozer* - *superhelio:gozer*
- Force delete database tables that has your table prefix - Force delete database tables that have your table prefix
- `php artisan superhelio:gozer` - `php artisan superhelio:gozer`
- *superhelio:reload* - *superhelio:reload*
- Reset database, migrate and seed - Reset database, migrate and seed
@@ -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

@@ -1,6 +1,6 @@
{ {
"name": "superhelio/commands", "name": "superhelio/commands",
"description": "Laravel Commands", "description": "This is a collection of Laravel Artisan commands created to help everyone in their development work.",
"keywords": [ "keywords": [
"laravel", "laravel",
"superhelio", "superhelio",
@@ -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" : "4.*", "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

@@ -20,21 +20,13 @@ class Gozer extends Command
* *
* @var string * @var string
*/ */
protected $description = 'Force delete database tables that has your table prefix'; protected $description = 'Force delete database tables that have your table prefix';
/** /**
* @var string Database table prefix * @var string Database table prefix
*/ */
private $dbPrefix = ''; private $dbPrefix = '';
/**
* Create a new command instance.
*/
public function __construct()
{
parent::__construct();
}
/** /**
* Execute the console command. * Execute the console command.
* *
@@ -51,12 +43,12 @@ class Gozer extends Command
$this->info(' $this->info('
________ ________
/ _____/ ____________ ___________ / _____/ ____________ ___________
/ \ ___ / _ \___ // __ \_ __ \ / \ ___ / _ \___ // __ \_ __ \
\ \_\ ( <_> ) /\ ___/| | \/ \ \_\ ( <_> ) /\ ___/| | \/
\______ /\____/_____ \\___ >__| \______ /\____/_____ \\___ >__|
\/ \/ \/ \/ \/ \/
'); ');
@@ -88,6 +80,7 @@ class Gozer extends Command
*/ */
if ($tables->count() < 1) { if ($tables->count() < 1) {
$this->info('There are no tables, only Zuul.'); $this->info('There are no tables, only Zuul.');
return true; return true;
} }

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.
@@ -20,14 +22,6 @@ class Reload extends Command
*/ */
protected $description = 'Rollback migrations, migrate and run seeds'; protected $description = 'Rollback migrations, migrate and run seeds';
/**
* Create a new command instance.
*/
public function __construct()
{
parent::__construct();
}
/** /**
* Execute the console command. * Execute the console command.
* *
@@ -35,24 +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', if ($automated && $this->confirm('Rollback all your database tables, recreate them and seed?')) {
[ return $this->runReload();
'--no-interaction' => true, }
'--env' => 'development', if (!$automated) {
'--verbose' => 3 return $this->runReload();
]
);
$this->call(
'migrate',
[
'--seed' => true,
'--no-interaction' => true,
'--env' => 'development',
'--verbose' => 3
]
);
} }
} }
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(realpath(__DIR__ . '/../migrations')); $this->loadMigrationsFrom(\dirname(__DIR__) . '/migrations');
} }
} }