mirror of
https://github.com/ZorgCC/lumen-generators.git
synced 2024-12-27 06:25:28 +03:00
Merge pull request #39 from josiahdahl/sequential-model-filenames
Sequential Filenames with Resources Command
This commit is contained in:
commit
014c617cc5
1
.gitignore
vendored
1
.gitignore
vendored
@ -7,3 +7,4 @@ tests/_output/*
|
|||||||
lumen-test/app
|
lumen-test/app
|
||||||
lumen-test/database
|
lumen-test/database
|
||||||
lumen-test/tests/tmp
|
lumen-test/tests/tmp
|
||||||
|
.idea
|
||||||
|
1
lumen-test/.gitignore
vendored
1
lumen-test/.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
/vendor
|
/vendor
|
||||||
.env
|
.env
|
||||||
|
codecept.phar
|
||||||
|
|
||||||
tests/_output/*
|
tests/_output/*
|
||||||
|
|
||||||
|
26
lumen-test/tests/_data/ResourcesTest.yml
Normal file
26
lumen-test/tests/_data/ResourcesTest.yml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
Author:
|
||||||
|
belongsTo: book
|
||||||
|
fields:
|
||||||
|
name:
|
||||||
|
schema: string
|
||||||
|
tags: fillable
|
||||||
|
Book:
|
||||||
|
belongsTo: librarys # Yes I know it's misspelled...
|
||||||
|
hasOne: author
|
||||||
|
fields:
|
||||||
|
title:
|
||||||
|
schema: string
|
||||||
|
tags: fillable
|
||||||
|
published:
|
||||||
|
schema: date
|
||||||
|
tags: fillable
|
||||||
|
Library:
|
||||||
|
hasMany: books
|
||||||
|
fields:
|
||||||
|
name:
|
||||||
|
schema: string
|
||||||
|
tags: fillable
|
||||||
|
address:
|
||||||
|
schema: string
|
||||||
|
tags: fillable
|
@ -1,4 +1,4 @@
|
|||||||
<?php //[STAMP] 6172d62f52ee53bf8d6f975a52df4f0d
|
<?php //[STAMP] d6606f78456705b0875c6b8343fc6a4a
|
||||||
namespace _generated;
|
namespace _generated;
|
||||||
|
|
||||||
// This class was automatically generated by build task
|
// This class was automatically generated by build task
|
||||||
@ -17,6 +17,22 @@ trait AcceptanceTesterActions
|
|||||||
abstract protected function getScenario();
|
abstract protected function getScenario();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
|
*
|
||||||
|
* Checks that array contains subset.
|
||||||
|
*
|
||||||
|
* @param array $subset
|
||||||
|
* @param array $array
|
||||||
|
* @param bool $strict
|
||||||
|
* @param string $message
|
||||||
|
* @see \Codeception\Module::assertArraySubset()
|
||||||
|
*/
|
||||||
|
public function assertArraySubset($subset, $array, $strict = null, $message = null) {
|
||||||
|
return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArraySubset', func_get_args()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [!] Method is generated. Documentation taken from corresponding module.
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
*
|
*
|
||||||
@ -95,7 +111,7 @@ trait AcceptanceTesterActions
|
|||||||
/**
|
/**
|
||||||
* [!] Method is generated. Documentation taken from corresponding module.
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
*
|
*
|
||||||
*
|
* @param $regex
|
||||||
* Conditional Assertion: Test won't be stopped on fail
|
* Conditional Assertion: Test won't be stopped on fail
|
||||||
* @see \Codeception\Module\Cli::seeShellOutputMatches()
|
* @see \Codeception\Module\Cli::seeShellOutputMatches()
|
||||||
*/
|
*/
|
||||||
@ -105,7 +121,7 @@ trait AcceptanceTesterActions
|
|||||||
/**
|
/**
|
||||||
* [!] Method is generated. Documentation taken from corresponding module.
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
*
|
*
|
||||||
*
|
* @param $regex
|
||||||
* @see \Codeception\Module\Cli::seeShellOutputMatches()
|
* @see \Codeception\Module\Cli::seeShellOutputMatches()
|
||||||
*/
|
*/
|
||||||
public function seeShellOutputMatches($regex) {
|
public function seeShellOutputMatches($regex) {
|
||||||
@ -113,13 +129,83 @@ trait AcceptanceTesterActions
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
|
*
|
||||||
|
* Checks result code
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* <?php
|
||||||
|
* $I->seeResultCodeIs(0);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param $code
|
||||||
|
* Conditional Assertion: Test won't be stopped on fail
|
||||||
|
* @see \Codeception\Module\Cli::seeResultCodeIs()
|
||||||
|
*/
|
||||||
|
public function canSeeResultCodeIs($code) {
|
||||||
|
return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResultCodeIs', func_get_args()));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
|
*
|
||||||
|
* Checks result code
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* <?php
|
||||||
|
* $I->seeResultCodeIs(0);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param $code
|
||||||
|
* @see \Codeception\Module\Cli::seeResultCodeIs()
|
||||||
|
*/
|
||||||
|
public function seeResultCodeIs($code) {
|
||||||
|
return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResultCodeIs', func_get_args()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
|
*
|
||||||
|
* Checks result code
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* <?php
|
||||||
|
* $I->seeResultCodeIsNot(0);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param $code
|
||||||
|
* Conditional Assertion: Test won't be stopped on fail
|
||||||
|
* @see \Codeception\Module\Cli::seeResultCodeIsNot()
|
||||||
|
*/
|
||||||
|
public function canSeeResultCodeIsNot($code) {
|
||||||
|
return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeResultCodeIsNot', func_get_args()));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
|
*
|
||||||
|
* Checks result code
|
||||||
|
*
|
||||||
|
* ```php
|
||||||
|
* <?php
|
||||||
|
* $I->seeResultCodeIsNot(0);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @param $code
|
||||||
|
* @see \Codeception\Module\Cli::seeResultCodeIsNot()
|
||||||
|
*/
|
||||||
|
public function seeResultCodeIsNot($code) {
|
||||||
|
return $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResultCodeIsNot', func_get_args()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [!] Method is generated. Documentation taken from corresponding module.
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
*
|
*
|
||||||
* Enters a directory In local filesystem.
|
* Enters a directory In local filesystem.
|
||||||
* Project root directory is used by default
|
* Project root directory is used by default
|
||||||
*
|
*
|
||||||
* @param $path
|
* @param string $path
|
||||||
* @see \Codeception\Module\Filesystem::amInPath()
|
* @see \Codeception\Module\Filesystem::amInPath()
|
||||||
*/
|
*/
|
||||||
public function amInPath($path) {
|
public function amInPath($path) {
|
||||||
@ -141,7 +227,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $filename
|
* @param string $filename
|
||||||
* @see \Codeception\Module\Filesystem::openFile()
|
* @see \Codeception\Module\Filesystem::openFile()
|
||||||
*/
|
*/
|
||||||
public function openFile($filename) {
|
public function openFile($filename) {
|
||||||
@ -160,7 +246,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $filename
|
* @param string $filename
|
||||||
* @see \Codeception\Module\Filesystem::deleteFile()
|
* @see \Codeception\Module\Filesystem::deleteFile()
|
||||||
*/
|
*/
|
||||||
public function deleteFile($filename) {
|
public function deleteFile($filename) {
|
||||||
@ -179,7 +265,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $dirname
|
* @param string $dirname
|
||||||
* @see \Codeception\Module\Filesystem::deleteDir()
|
* @see \Codeception\Module\Filesystem::deleteDir()
|
||||||
*/
|
*/
|
||||||
public function deleteDir($dirname) {
|
public function deleteDir($dirname) {
|
||||||
@ -198,8 +284,8 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $src
|
* @param string $src
|
||||||
* @param $dst
|
* @param string $dst
|
||||||
* @see \Codeception\Module\Filesystem::copyDir()
|
* @see \Codeception\Module\Filesystem::copyDir()
|
||||||
*/
|
*/
|
||||||
public function copyDir($src, $dst) {
|
public function copyDir($src, $dst) {
|
||||||
@ -221,7 +307,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $text
|
* @param string $text
|
||||||
* Conditional Assertion: Test won't be stopped on fail
|
* Conditional Assertion: Test won't be stopped on fail
|
||||||
* @see \Codeception\Module\Filesystem::seeInThisFile()
|
* @see \Codeception\Module\Filesystem::seeInThisFile()
|
||||||
*/
|
*/
|
||||||
@ -242,7 +328,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $text
|
* @param string $text
|
||||||
* @see \Codeception\Module\Filesystem::seeInThisFile()
|
* @see \Codeception\Module\Filesystem::seeInThisFile()
|
||||||
*/
|
*/
|
||||||
public function seeInThisFile($text) {
|
public function seeInThisFile($text) {
|
||||||
@ -298,7 +384,7 @@ trait AcceptanceTesterActions
|
|||||||
*
|
*
|
||||||
* Checks that contents of currently opened file matches $regex
|
* Checks that contents of currently opened file matches $regex
|
||||||
*
|
*
|
||||||
* @param $regex
|
* @param string $regex
|
||||||
* Conditional Assertion: Test won't be stopped on fail
|
* Conditional Assertion: Test won't be stopped on fail
|
||||||
* @see \Codeception\Module\Filesystem::seeThisFileMatches()
|
* @see \Codeception\Module\Filesystem::seeThisFileMatches()
|
||||||
*/
|
*/
|
||||||
@ -310,7 +396,7 @@ trait AcceptanceTesterActions
|
|||||||
*
|
*
|
||||||
* Checks that contents of currently opened file matches $regex
|
* Checks that contents of currently opened file matches $regex
|
||||||
*
|
*
|
||||||
* @param $regex
|
* @param string $regex
|
||||||
* @see \Codeception\Module\Filesystem::seeThisFileMatches()
|
* @see \Codeception\Module\Filesystem::seeThisFileMatches()
|
||||||
*/
|
*/
|
||||||
public function seeThisFileMatches($regex) {
|
public function seeThisFileMatches($regex) {
|
||||||
@ -333,7 +419,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $text
|
* @param string $text
|
||||||
* Conditional Assertion: Test won't be stopped on fail
|
* Conditional Assertion: Test won't be stopped on fail
|
||||||
* @see \Codeception\Module\Filesystem::seeFileContentsEqual()
|
* @see \Codeception\Module\Filesystem::seeFileContentsEqual()
|
||||||
*/
|
*/
|
||||||
@ -355,7 +441,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $text
|
* @param string $text
|
||||||
* @see \Codeception\Module\Filesystem::seeFileContentsEqual()
|
* @see \Codeception\Module\Filesystem::seeFileContentsEqual()
|
||||||
*/
|
*/
|
||||||
public function seeFileContentsEqual($text) {
|
public function seeFileContentsEqual($text) {
|
||||||
@ -375,7 +461,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $text
|
* @param string $text
|
||||||
* Conditional Assertion: Test won't be stopped on fail
|
* Conditional Assertion: Test won't be stopped on fail
|
||||||
* @see \Codeception\Module\Filesystem::dontSeeInThisFile()
|
* @see \Codeception\Module\Filesystem::dontSeeInThisFile()
|
||||||
*/
|
*/
|
||||||
@ -394,7 +480,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $text
|
* @param string $text
|
||||||
* @see \Codeception\Module\Filesystem::dontSeeInThisFile()
|
* @see \Codeception\Module\Filesystem::dontSeeInThisFile()
|
||||||
*/
|
*/
|
||||||
public function dontSeeInThisFile($text) {
|
public function dontSeeInThisFile($text) {
|
||||||
@ -425,7 +511,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $filename
|
* @param string $filename
|
||||||
* @param string $path
|
* @param string $path
|
||||||
* Conditional Assertion: Test won't be stopped on fail
|
* Conditional Assertion: Test won't be stopped on fail
|
||||||
* @see \Codeception\Module\Filesystem::seeFileFound()
|
* @see \Codeception\Module\Filesystem::seeFileFound()
|
||||||
@ -445,7 +531,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $filename
|
* @param string $filename
|
||||||
* @param string $path
|
* @param string $path
|
||||||
* @see \Codeception\Module\Filesystem::seeFileFound()
|
* @see \Codeception\Module\Filesystem::seeFileFound()
|
||||||
*/
|
*/
|
||||||
@ -459,7 +545,7 @@ trait AcceptanceTesterActions
|
|||||||
*
|
*
|
||||||
* Checks if file does not exist in path
|
* Checks if file does not exist in path
|
||||||
*
|
*
|
||||||
* @param $filename
|
* @param string $filename
|
||||||
* @param string $path
|
* @param string $path
|
||||||
* Conditional Assertion: Test won't be stopped on fail
|
* Conditional Assertion: Test won't be stopped on fail
|
||||||
* @see \Codeception\Module\Filesystem::dontSeeFileFound()
|
* @see \Codeception\Module\Filesystem::dontSeeFileFound()
|
||||||
@ -472,7 +558,7 @@ trait AcceptanceTesterActions
|
|||||||
*
|
*
|
||||||
* Checks if file does not exist in path
|
* Checks if file does not exist in path
|
||||||
*
|
*
|
||||||
* @param $filename
|
* @param string $filename
|
||||||
* @param string $path
|
* @param string $path
|
||||||
* @see \Codeception\Module\Filesystem::dontSeeFileFound()
|
* @see \Codeception\Module\Filesystem::dontSeeFileFound()
|
||||||
*/
|
*/
|
||||||
@ -492,7 +578,7 @@ trait AcceptanceTesterActions
|
|||||||
* ?>
|
* ?>
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
* @param $dirname
|
* @param string $dirname
|
||||||
* @see \Codeception\Module\Filesystem::cleanDir()
|
* @see \Codeception\Module\Filesystem::cleanDir()
|
||||||
*/
|
*/
|
||||||
public function cleanDir($dirname) {
|
public function cleanDir($dirname) {
|
||||||
@ -505,8 +591,8 @@ trait AcceptanceTesterActions
|
|||||||
*
|
*
|
||||||
* Saves contents to file
|
* Saves contents to file
|
||||||
*
|
*
|
||||||
* @param $filename
|
* @param string $filename
|
||||||
* @param $contents
|
* @param string $contents
|
||||||
* @see \Codeception\Module\Filesystem::writeToFile()
|
* @see \Codeception\Module\Filesystem::writeToFile()
|
||||||
*/
|
*/
|
||||||
public function writeToFile($filename, $contents) {
|
public function writeToFile($filename, $contents) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?php //[STAMP] 113b78942a9c8ce85a7c18397003b17c
|
<?php //[STAMP] d2a298893573661fdbd787dcfa27a7b0
|
||||||
namespace _generated;
|
namespace _generated;
|
||||||
|
|
||||||
// This class was automatically generated by build task
|
// This class was automatically generated by build task
|
||||||
@ -15,4 +15,18 @@ trait FunctionalTesterActions
|
|||||||
abstract protected function getScenario();
|
abstract protected function getScenario();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
|
*
|
||||||
|
* Checks that array contains subset.
|
||||||
|
*
|
||||||
|
* @param array $subset
|
||||||
|
* @param array $array
|
||||||
|
* @param bool $strict
|
||||||
|
* @param string $message
|
||||||
|
* @see \Codeception\Module::assertArraySubset()
|
||||||
|
*/
|
||||||
|
public function assertArraySubset($subset, $array, $strict = null, $message = null) {
|
||||||
|
return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArraySubset', func_get_args()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?php //[STAMP] afa4f0350422fae145b4236dce66191a
|
<?php //[STAMP] 1467e0d5027bbc2413077351642a21f3
|
||||||
namespace _generated;
|
namespace _generated;
|
||||||
|
|
||||||
// This class was automatically generated by build task
|
// This class was automatically generated by build task
|
||||||
@ -19,14 +19,29 @@ trait UnitTesterActions
|
|||||||
/**
|
/**
|
||||||
* [!] Method is generated. Documentation taken from corresponding module.
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
*
|
*
|
||||||
* Checks that two variables are equal.
|
* Checks that two variables are equal. If you're comparing floating-point values,
|
||||||
|
* you can specify the optional "delta" parameter which dictates how great of a precision
|
||||||
|
* error are you willing to tolerate in order to consider the two values equal.
|
||||||
|
*
|
||||||
|
* Regular example:
|
||||||
|
* ```php
|
||||||
|
* <?php
|
||||||
|
* $I->assertEquals($element->getChildrenCount(), 5);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Floating-point example:
|
||||||
|
* ```php
|
||||||
|
* <?php
|
||||||
|
* $I->assertEquals($calculator->add(0.1, 0.2), 0.3, 'Calculator should add the two numbers correctly.', 0.01);
|
||||||
|
* ```
|
||||||
*
|
*
|
||||||
* @param $expected
|
* @param $expected
|
||||||
* @param $actual
|
* @param $actual
|
||||||
* @param string $message
|
* @param string $message
|
||||||
|
* @param float $delta
|
||||||
* @see \Codeception\Module\Asserts::assertEquals()
|
* @see \Codeception\Module\Asserts::assertEquals()
|
||||||
*/
|
*/
|
||||||
public function assertEquals($expected, $actual, $message = null) {
|
public function assertEquals($expected, $actual, $message = null, $delta = null) {
|
||||||
return $this->getScenario()->runStep(new \Codeception\Step\Action('assertEquals', func_get_args()));
|
return $this->getScenario()->runStep(new \Codeception\Step\Action('assertEquals', func_get_args()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,14 +49,29 @@ trait UnitTesterActions
|
|||||||
/**
|
/**
|
||||||
* [!] Method is generated. Documentation taken from corresponding module.
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
*
|
*
|
||||||
* Checks that two variables are not equal
|
* Checks that two variables are not equal. If you're comparing floating-point values,
|
||||||
|
* you can specify the optional "delta" parameter which dictates how great of a precision
|
||||||
|
* error are you willing to tolerate in order to consider the two values not equal.
|
||||||
|
*
|
||||||
|
* Regular example:
|
||||||
|
* ```php
|
||||||
|
* <?php
|
||||||
|
* $I->assertNotEquals($element->getChildrenCount(), 0);
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Floating-point example:
|
||||||
|
* ```php
|
||||||
|
* <?php
|
||||||
|
* $I->assertNotEquals($calculator->add(0.1, 0.2), 0.4, 'Calculator should add the two numbers correctly.', 0.01);
|
||||||
|
* ```
|
||||||
*
|
*
|
||||||
* @param $expected
|
* @param $expected
|
||||||
* @param $actual
|
* @param $actual
|
||||||
* @param string $message
|
* @param string $message
|
||||||
|
* @param float $delta
|
||||||
* @see \Codeception\Module\Asserts::assertNotEquals()
|
* @see \Codeception\Module\Asserts::assertNotEquals()
|
||||||
*/
|
*/
|
||||||
public function assertNotEquals($expected, $actual, $message = null) {
|
public function assertNotEquals($expected, $actual, $message = null, $delta = null) {
|
||||||
return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotEquals', func_get_args()));
|
return $this->getScenario()->runStep(new \Codeception\Step\Action('assertNotEquals', func_get_args()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,7 +84,6 @@ trait UnitTesterActions
|
|||||||
* @param $expected
|
* @param $expected
|
||||||
* @param $actual
|
* @param $actual
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @return mixed|void
|
|
||||||
* @see \Codeception\Module\Asserts::assertSame()
|
* @see \Codeception\Module\Asserts::assertSame()
|
||||||
*/
|
*/
|
||||||
public function assertSame($expected, $actual, $message = null) {
|
public function assertSame($expected, $actual, $message = null) {
|
||||||
@ -197,6 +226,36 @@ trait UnitTesterActions
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
|
*
|
||||||
|
* Checks that a string starts with the given prefix.
|
||||||
|
*
|
||||||
|
* @param string $prefix
|
||||||
|
* @param string $string
|
||||||
|
* @param string $message
|
||||||
|
* @see \Codeception\Module\Asserts::assertStringStartsWith()
|
||||||
|
*/
|
||||||
|
public function assertStringStartsWith($prefix, $string, $message = null) {
|
||||||
|
return $this->getScenario()->runStep(new \Codeception\Step\Action('assertStringStartsWith', func_get_args()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
|
*
|
||||||
|
* Checks that a string doesn't start with the given prefix.
|
||||||
|
*
|
||||||
|
* @param string $prefix
|
||||||
|
* @param string $string
|
||||||
|
* @param string $message
|
||||||
|
* @see \Codeception\Module\Asserts::assertStringStartsNotWith()
|
||||||
|
*/
|
||||||
|
public function assertStringStartsNotWith($prefix, $string, $message = null) {
|
||||||
|
return $this->getScenario()->runStep(new \Codeception\Step\Action('assertStringStartsNotWith', func_get_args()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [!] Method is generated. Documentation taken from corresponding module.
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
*
|
*
|
||||||
@ -373,6 +432,22 @@ trait UnitTesterActions
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
|
*
|
||||||
|
* Checks that array contains subset.
|
||||||
|
*
|
||||||
|
* @param array $subset
|
||||||
|
* @param array $array
|
||||||
|
* @param bool $strict
|
||||||
|
* @param string $message
|
||||||
|
* @see \Codeception\Module::assertArraySubset()
|
||||||
|
*/
|
||||||
|
public function assertArraySubset($subset, $array, $strict = null, $message = null) {
|
||||||
|
return $this->getScenario()->runStep(new \Codeception\Step\Action('assertArraySubset', func_get_args()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [!] Method is generated. Documentation taken from corresponding module.
|
* [!] Method is generated. Documentation taken from corresponding module.
|
||||||
*
|
*
|
||||||
|
136
lumen-test/tests/acceptance/ResourcesCommandCept.php
Normal file
136
lumen-test/tests/acceptance/ResourcesCommandCept.php
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
<?php
|
||||||
|
$I = new AcceptanceTester($scenario);
|
||||||
|
|
||||||
|
$I->wantTo('Generate RESTful resources from a file');
|
||||||
|
$I->writeToFile('database/database.sqlite', '');
|
||||||
|
|
||||||
|
$I->runShellCommand('php artisan wn:resources tests/_data/ResourcesTest.yml');
|
||||||
|
|
||||||
|
// Checking the model
|
||||||
|
$I->seeInShellOutput('Author model generated');
|
||||||
|
$I->seeInShellOutput('Book model generated');
|
||||||
|
$I->seeInShellOutput('Library model generated');
|
||||||
|
$I->seeFileFound('./app/Author.php');
|
||||||
|
$I->seeFileFound('./app/Book.php');
|
||||||
|
$I->seeFileFound('./app/Library.php');
|
||||||
|
$I->deleteFile('./app/Author.php');
|
||||||
|
$I->deleteFile('./app/Book.php');
|
||||||
|
$I->deleteFile('./app/Library.php');
|
||||||
|
|
||||||
|
// Checking the migration
|
||||||
|
$I->seeInShellOutput('authors migration generated');
|
||||||
|
$I->seeInShellOutput('books migration generated');
|
||||||
|
$I->seeInShellOutput('libraries migration generated');
|
||||||
|
// Can't check for specific file names, so we'll just strip the directory
|
||||||
|
$I->cleanDir('database/migrations');
|
||||||
|
$I->writeToFile('database/migrations/.gitkeep', '');
|
||||||
|
|
||||||
|
// Checking the RESTActions trait
|
||||||
|
$I->seeFileFound('./app/Http/Controllers/RESTActions.php');
|
||||||
|
$I->deleteFile('./app/Http/Controllers/RESTActions.php');
|
||||||
|
|
||||||
|
// Checking the controller
|
||||||
|
$I->seeInShellOutput('AuthorsController generated');
|
||||||
|
$I->seeInShellOutput('LibrariesController generated');
|
||||||
|
$I->seeInShellOutput('BooksController generated');
|
||||||
|
$I->seeFileFound('./app/Http/Controllers/AuthorsController.php');
|
||||||
|
$I->seeFileFound('./app/Http/Controllers/LibrariesController.php');
|
||||||
|
$I->seeFileFound('./app/Http/Controllers/BooksController.php');
|
||||||
|
|
||||||
|
$I->deleteFile('./app/Http/Controllers/AuthorsController.php');
|
||||||
|
$I->deleteFile('./app/Http/Controllers/LibrariesController.php');
|
||||||
|
$I->deleteFile('./app/Http/Controllers/BooksController.php');
|
||||||
|
|
||||||
|
|
||||||
|
// Checking routes
|
||||||
|
$I->openFile('./app/Http/routes.php');
|
||||||
|
$I->seeInThisFile('
|
||||||
|
$app->get(\'author\', \'AuthorsController@all\');
|
||||||
|
$app->get(\'author/{id}\', \'AuthorsController@get\');
|
||||||
|
$app->post(\'author\', \'AuthorsController@add\');
|
||||||
|
$app->put(\'author/{id}\', \'AuthorsController@put\');
|
||||||
|
$app->delete(\'author/{id}\', \'AuthorsController@remove\');');
|
||||||
|
|
||||||
|
$I->seeInThisFile('
|
||||||
|
$app->get(\'book\', \'BooksController@all\');
|
||||||
|
$app->get(\'book/{id}\', \'BooksController@get\');
|
||||||
|
$app->post(\'book\', \'BooksController@add\');
|
||||||
|
$app->put(\'book/{id}\', \'BooksController@put\');
|
||||||
|
$app->delete(\'book/{id}\', \'BooksController@remove\');');
|
||||||
|
|
||||||
|
$I->seeInThisFile('
|
||||||
|
$app->get(\'library\', \'LibrariesController@all\');
|
||||||
|
$app->get(\'library/{id}\', \'LibrariesController@get\');
|
||||||
|
$app->post(\'library\', \'LibrariesController@add\');
|
||||||
|
$app->put(\'library/{id}\', \'LibrariesController@put\');
|
||||||
|
$app->delete(\'library/{id}\', \'LibrariesController@remove\');');
|
||||||
|
$I->writeToFile('./app/Http/routes.php', '<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Application Routes
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here is where you can register all of the routes for an application.
|
||||||
|
| It is a breeze. Simply tell Lumen the URIs it should respond to
|
||||||
|
| and give it the Closure to call when that URI is requested.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
$app->get("/", function () use ($app) {
|
||||||
|
return $app->welcome();
|
||||||
|
});
|
||||||
|
');
|
||||||
|
|
||||||
|
// Checking model factory
|
||||||
|
// $I->openFile('./database/factories/ModelFactory.php');
|
||||||
|
// $I->seeInThisFile(
|
||||||
|
// "/**
|
||||||
|
// * Factory definition for model App\TaskCategory.
|
||||||
|
// */
|
||||||
|
// \$factory->define(App\TaskCategory::class, function (\$faker) {
|
||||||
|
// return [
|
||||||
|
// 'name' => \$faker->word,
|
||||||
|
// 'descr' => \$faker->paragraph,
|
||||||
|
// 'due' => \$faker->date,
|
||||||
|
// ];
|
||||||
|
// });");
|
||||||
|
$I->writeToFile('./database/factories/ModelFactory.php', "<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Model Factories
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you may define all of your model factories. Model factories give
|
||||||
|
| you a convenient way to create models for testing and seeding your
|
||||||
|
| database. Just tell the factory how a default model should look.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
\$factory->define(App\User::class, function (\$faker) {
|
||||||
|
return [
|
||||||
|
'name' => \$faker->name,
|
||||||
|
'email' => \$faker->email,
|
||||||
|
'password' => str_random(10),
|
||||||
|
'remember_token' => str_random(10),
|
||||||
|
];
|
||||||
|
});
|
||||||
|
");
|
||||||
|
|
||||||
|
$I->deleteFile('database/database.sqlite');
|
||||||
|
|
||||||
|
|
||||||
|
// Checking database seeder
|
||||||
|
// $I->openFile('./database/seeds/TaskCategoriesTableSeeder.php');
|
||||||
|
// $I->seeInThisFile('
|
||||||
|
// use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
|
// class TaskCategoriesTableSeeder extends Seeder
|
||||||
|
// {
|
||||||
|
// public function run()
|
||||||
|
// {
|
||||||
|
// factory(App\TaskCategory::class, 10)->create();
|
||||||
|
// }
|
||||||
|
// }');
|
||||||
|
// $I->deleteFile('./database/seeds/TaskCategoriesTableSeeder.php');
|
@ -20,8 +20,12 @@ class ResourcesCommand extends BaseCommand {
|
|||||||
$content = $this->fs->get($this->argument('file'));
|
$content = $this->fs->get($this->argument('file'));
|
||||||
$content = Yaml::parse($content);
|
$content = Yaml::parse($content);
|
||||||
|
|
||||||
|
$modelIndex = 0;
|
||||||
foreach ($content as $model => $i){
|
foreach ($content as $model => $i){
|
||||||
$i = $this->getResourceParams($model, $i);
|
$i = $this->getResourceParams($model, $i);
|
||||||
|
$migrationName = 'Create' . ucwords(str_plural($i['name']));
|
||||||
|
$migrationFile = date('Y_m_d_His') . '-' . str_pad($modelIndex , 3, 0, STR_PAD_LEFT) . '_' . snake_case($migrationName) . '_table';
|
||||||
|
|
||||||
|
|
||||||
$this->call('wn:resource', [
|
$this->call('wn:resource', [
|
||||||
'name' => $i['name'],
|
'name' => $i['name'],
|
||||||
@ -32,8 +36,10 @@ class ResourcesCommand extends BaseCommand {
|
|||||||
'--belongs-to' => $i['belongsTo'],
|
'--belongs-to' => $i['belongsTo'],
|
||||||
'--belongs-to-many' => $i['belongsToMany'],
|
'--belongs-to-many' => $i['belongsToMany'],
|
||||||
'--path' => $this->option('path'),
|
'--path' => $this->option('path'),
|
||||||
'--force' => $this->option('force')
|
'--force' => $this->option('force'),
|
||||||
|
'--migration-file' => $migrationFile
|
||||||
]);
|
]);
|
||||||
|
$modelIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// $this->call('migrate'); // actually needed for pivot seeders !
|
// $this->call('migrate'); // actually needed for pivot seeders !
|
||||||
|
Loading…
Reference in New Issue
Block a user