Browse Source
Restructure test cases into individual generator test
Restructure test cases into individual generator test
Added namespaces to test casestags/0.1.0
8 changed files with 286 additions and 233 deletions
-
5composer.json
-
234tests/CrudMakeCommandTest.php
-
89tests/Generators/ControllerGeneratorTest.php
-
43tests/Generators/FeatureTestGeneratorTest.php
-
58tests/Generators/MigrationGeneratorTest.php
-
34tests/Generators/ModelGeneratorTest.php
-
43tests/Generators/ModelTestGeneratorTest.php
-
13tests/TestCase.php
@ -0,0 +1,89 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace Tests\Generators; |
||||
|
|
||||
|
use Tests\TestCase; |
||||
|
|
||||
|
class ControllerGeneratorTest extends TestCase |
||||
|
{ |
||||
|
/** @test */ |
||||
|
public function it_creates_correct_controller_class_content() |
||||
|
{ |
||||
|
$this->artisan('make:crud', ['name' => 'Item', '--no-interaction' => true]); |
||||
|
|
||||
|
$this->assertFileExists(app_path('Item.php')); |
||||
|
$ctrlClassContent = "<?php
|
||||
|
|
||||
|
namespace App\Http\Controllers; |
||||
|
|
||||
|
use App\Item; |
||||
|
use Illuminate\Http\Request; |
||||
|
use App\Http\Controllers\Controller; |
||||
|
|
||||
|
class ItemsController extends Controller |
||||
|
{ |
||||
|
/** |
||||
|
* Display a listing of the resource. |
||||
|
* |
||||
|
* @return \Illuminate\Http\Response |
||||
|
*/ |
||||
|
public function index() |
||||
|
{ |
||||
|
//
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Store a newly created resource in storage. |
||||
|
* |
||||
|
* @param \Illuminate\Http\Request \$request |
||||
|
* @return \Illuminate\Http\Response |
||||
|
*/ |
||||
|
public function store(Request \$request) |
||||
|
{ |
||||
|
//
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Display the specified resource. |
||||
|
* |
||||
|
* @param \App\Item \$item |
||||
|
* @return \Illuminate\Http\Response |
||||
|
*/ |
||||
|
public function show(Item \$item) |
||||
|
{ |
||||
|
//
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Update the specified resource in storage. |
||||
|
* |
||||
|
* @param \Illuminate\Http\Request \$request |
||||
|
* @param \App\Item \$item |
||||
|
* @return \Illuminate\Http\Response |
||||
|
*/ |
||||
|
public function update(Request \$request, Item \$item) |
||||
|
{ |
||||
|
//
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Remove the specified resource from storage. |
||||
|
* |
||||
|
* @param \App\Item \$item |
||||
|
* @return \Illuminate\Http\Response |
||||
|
*/ |
||||
|
public function destroy(Item \$item) |
||||
|
{ |
||||
|
//
|
||||
|
} |
||||
|
} |
||||
|
";
|
||||
|
$this->assertEquals($ctrlClassContent, file_get_contents(app_path('Http/Controllers/ItemsController.php'))); |
||||
|
exec('rm '.app_path('Item.php')); |
||||
|
exec('rm -r '.app_path('Http')); |
||||
|
exec('rm '.database_path('migrations/*')); |
||||
|
exec('rm -r '.resource_path('views/items')); |
||||
|
exec('rm -r '.base_path('tests/Feature')); |
||||
|
exec('rm -r '.base_path('tests/Unit')); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,43 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace Tests\Generators; |
||||
|
|
||||
|
use Tests\TestCase; |
||||
|
|
||||
|
class FeatureTestGeneratorTest extends TestCase |
||||
|
{ |
||||
|
/** @test */ |
||||
|
public function it_creates_correct_feature_test_class_content() |
||||
|
{ |
||||
|
$this->artisan('make:crud', ['name' => 'Item', '--no-interaction' => true]); |
||||
|
|
||||
|
$this->assertFileExists(base_path('tests/Feature/ManageItemsTest.php')); |
||||
|
$modelClassContent = "<?php
|
||||
|
|
||||
|
namespace Tests\Feature; |
||||
|
|
||||
|
use Tests\TestCase; |
||||
|
use Illuminate\Foundation\Testing\DatabaseMigrations; |
||||
|
|
||||
|
class ManageItemsTest extends TestCase |
||||
|
{ |
||||
|
/** |
||||
|
* A basic test example. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function testExample() |
||||
|
{ |
||||
|
\$this->assertTrue(true); |
||||
|
} |
||||
|
} |
||||
|
";
|
||||
|
$this->assertEquals($modelClassContent, file_get_contents(base_path('tests/Feature/ManageItemsTest.php'))); |
||||
|
exec('rm '.app_path('Item.php')); |
||||
|
exec('rm -r '.app_path('Http')); |
||||
|
exec('rm '.database_path('migrations/*')); |
||||
|
exec('rm -r '.resource_path('views/items')); |
||||
|
exec('rm -r '.base_path('tests/Feature')); |
||||
|
exec('rm -r '.base_path('tests/Unit')); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,58 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace Tests\Generators; |
||||
|
|
||||
|
use Tests\TestCase; |
||||
|
|
||||
|
class MigrationGeneratorTest extends TestCase |
||||
|
{ |
||||
|
/** @test */ |
||||
|
public function it_creates_correct_migration_class_content() |
||||
|
{ |
||||
|
$this->artisan('make:crud', ['name' => 'Item', '--no-interaction' => true]); |
||||
|
|
||||
|
$migrationFilePath = database_path('migrations/'.date('Y_m_d_His').'_create_items_table.php'); |
||||
|
$this->assertFileExists($migrationFilePath); |
||||
|
$modelClassContent = "<?php
|
||||
|
|
||||
|
use Illuminate\Support\Facades\Schema; |
||||
|
use Illuminate\Database\Schema\Blueprint; |
||||
|
use Illuminate\Database\Migrations\Migration; |
||||
|
|
||||
|
class CreateItemsTable extends Migration |
||||
|
{ |
||||
|
/** |
||||
|
* Run the migrations. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function up() |
||||
|
{ |
||||
|
Schema::create('items', function (Blueprint \$table) { |
||||
|
\$table->increments('id'); |
||||
|
\$table->string('name', 60); |
||||
|
\$table->string('description'); |
||||
|
\$table->timestamps(); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Reverse the migrations. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function down() |
||||
|
{ |
||||
|
Schema::dropIfExists('items'); |
||||
|
} |
||||
|
} |
||||
|
";
|
||||
|
$this->assertEquals($modelClassContent, file_get_contents($migrationFilePath)); |
||||
|
exec('rm '.app_path('Item.php')); |
||||
|
exec('rm -r '.app_path('Http')); |
||||
|
exec('rm '.database_path('migrations/*')); |
||||
|
exec('rm -r '.resource_path('views/items')); |
||||
|
exec('rm -r '.base_path('tests/Feature')); |
||||
|
exec('rm -r '.base_path('tests/Unit')); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,34 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace Tests\Generators; |
||||
|
|
||||
|
use Tests\TestCase; |
||||
|
|
||||
|
class ModelGeneratorTest extends TestCase |
||||
|
{ |
||||
|
/** @test */ |
||||
|
public function it_creates_correct_model_class_content() |
||||
|
{ |
||||
|
$this->artisan('make:crud', ['name' => 'Item', '--no-interaction' => true]); |
||||
|
|
||||
|
$this->assertFileExists(app_path('Item.php')); |
||||
|
$modelClassContent = "<?php
|
||||
|
|
||||
|
namespace App; |
||||
|
|
||||
|
use Illuminate\Database\Eloquent\Model; |
||||
|
|
||||
|
class Item extends Model |
||||
|
{ |
||||
|
//
|
||||
|
} |
||||
|
";
|
||||
|
$this->assertEquals($modelClassContent, file_get_contents(app_path('Item.php'))); |
||||
|
exec('rm '.app_path('Item.php')); |
||||
|
exec('rm -r '.app_path('Http')); |
||||
|
exec('rm '.database_path('migrations/*')); |
||||
|
exec('rm -r '.resource_path('views/items')); |
||||
|
exec('rm -r '.base_path('tests/Feature')); |
||||
|
exec('rm -r '.base_path('tests/Unit')); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,43 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace Tests\Generators; |
||||
|
|
||||
|
use Tests\TestCase; |
||||
|
|
||||
|
class ModelTestGeneratorTest extends TestCase |
||||
|
{ |
||||
|
/** @test */ |
||||
|
public function it_creates_correct_unit_test_class_content() |
||||
|
{ |
||||
|
$this->artisan('make:crud', ['name' => 'Item', '--no-interaction' => true]); |
||||
|
|
||||
|
$this->assertFileExists(base_path('tests/Unit/Models/ItemTest.php')); |
||||
|
$modelClassContent = "<?php
|
||||
|
|
||||
|
namespace DummyNamespace; |
||||
|
|
||||
|
use Tests\TestCase; |
||||
|
use Illuminate\Foundation\Testing\DatabaseMigrations; |
||||
|
|
||||
|
class ItemTest extends TestCase |
||||
|
{ |
||||
|
/** |
||||
|
* A basic test example. |
||||
|
* |
||||
|
* @return void |
||||
|
*/ |
||||
|
public function testExample() |
||||
|
{ |
||||
|
\$this->assertTrue(true); |
||||
|
} |
||||
|
} |
||||
|
";
|
||||
|
$this->assertEquals($modelClassContent, file_get_contents(base_path('tests/Unit/Models/ItemTest.php'))); |
||||
|
exec('rm '.app_path('Item.php')); |
||||
|
exec('rm -r '.app_path('Http')); |
||||
|
exec('rm '.database_path('migrations/*')); |
||||
|
exec('rm -r '.resource_path('views/items')); |
||||
|
exec('rm -r '.base_path('tests/Feature')); |
||||
|
exec('rm -r '.base_path('tests/Unit')); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace Tests; |
||||
|
|
||||
|
use Orchestra\Testbench\TestCase as BaseTestCase; |
||||
|
|
||||
|
abstract class TestCase extends BaseTestCase |
||||
|
{ |
||||
|
protected function getPackageProviders($app) |
||||
|
{ |
||||
|
return ['Luthfi\CrudGenerator\ServiceProvider']; |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue