From e27d9a0822e169145070ef254fe465c10f334bfc Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Sat, 17 Aug 2024 20:35:41 +0530 Subject: [PATCH 01/11] Initial commit to create PR --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1cd2090b..3bb79307 100644 --- a/README.md +++ b/README.md @@ -568,3 +568,4 @@ Professional support, consulting as well as software development services are av https://www.cebe.cc/en/contact Development of this library is sponsored by [cebe.:cloud: "Your Professional Deployment Platform"](https://cebe.cloud). + From 1bfc499f46a3ff538d924140c9acd07f8b5cfba3 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Sun, 18 Aug 2024 19:31:34 +0530 Subject: [PATCH 02/11] Fix issue and other failing tests --- README.md | 1 - TODO.taskpaper | 9 +++++ src/lib/ValidationRulesBuilder.php | 8 ++--- tests/DbTestCase.php | 7 ++-- tests/specs/blog/models/base/Category.php | 2 +- tests/specs/blog/models/base/Comment.php | 2 +- tests/specs/blog/models/base/Post.php | 2 +- tests/specs/blog/models/base/User.php | 2 +- tests/specs/blog_v2/models/base/Category.php | 2 +- tests/specs/blog_v2/models/base/Comment.php | 2 +- tests/specs/blog_v2/models/base/Post.php | 2 +- tests/specs/blog_v2/models/base/Tag.php | 2 +- tests/specs/blog_v2/models/base/User.php | 2 +- .../app/models/base/ColumnNameChange.php | 2 +- .../app/models/base/ColumnNameChange.php | 2 +- .../app/models/base/ColumnNameChange.php | 2 +- .../fk_col_name/app/models/base/User.php | 2 +- .../app/models/base/User.php | 2 +- .../id_not_in_rules/app/models/base/Fruit.php | 2 +- .../app/models/base/Pristine.php | 2 +- .../maria/models/base/Mailing.php | 2 +- .../maria/models/base/Contact.php | 2 +- .../maria/models/base/Mailing.php | 2 +- .../pgsql/models/base/Account.php | 2 +- .../pgsql/models/base/Contact.php | 2 +- .../pgsql/models/base/PaymentMethod.php | 2 +- .../index.php | 13 +++++++ .../index.yaml | 35 +++++++++++++++++++ .../app/models/base/Account.php | 2 +- tests/specs/many2many/models/base/Photo.php | 2 +- tests/specs/many2many/models/base/Post.php | 2 +- tests/specs/many2many/models/base/Tag.php | 2 +- tests/specs/menu/models/base/Menu.php | 2 +- tests/specs/petstore/models/base/Pet.php | 2 +- tests/specs/petstore/models/base/Store.php | 2 +- .../petstore_arrayref/models/base/Pet.php | 2 +- .../petstore_jsonapi/models/base/Doctor.php | 2 +- .../petstore_jsonapi/models/base/Pet.php | 2 +- .../petstore_namespace/mymodels/base/Pet.php | 2 +- .../mymodels/base/Store.php | 2 +- .../petstore_wrapped/models/base/Pet.php | 2 +- .../specs/petstore_xtable/models/base/Pet.php | 2 +- .../app/models/base/Account.php | 2 +- .../app/models/base/Domain.php | 2 +- .../app/models/base/Routing.php | 2 +- .../models/mariamodel/base/Alldbdatatype.php | 2 +- .../app/models/mariamodel/base/Editcolumn.php | 2 +- .../app/models/mariamodel/base/Newcolumn.php | 2 +- .../app/models/mariamodel/base/Pristine.php | 2 +- .../mysql/app/models/base/Alldbdatatype.php | 2 +- .../mysql/app/models/base/Editcolumn.php | 2 +- .../mysql/app/models/base/Newcolumn.php | 2 +- .../mysql/app/models/base/Pristine.php | 2 +- .../models/pgsqlmodel/base/Alldbdatatype.php | 2 +- .../app/models/pgsqlmodel/base/Editcolumn.php | 2 +- .../app/models/pgsqlmodel/base/Newcolumn.php | 2 +- .../app/models/pgsqlmodel/base/Pristine.php | 2 +- tests/unit/IssueFixTest.php | 14 ++++++++ 58 files changed, 129 insertions(+), 60 deletions(-) create mode 100644 TODO.taskpaper create mode 100644 tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.php create mode 100644 tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.yaml diff --git a/README.md b/README.md index 3bb79307..1cd2090b 100644 --- a/README.md +++ b/README.md @@ -568,4 +568,3 @@ Professional support, consulting as well as software development services are av https://www.cebe.cc/en/contact Development of this library is sponsored by [cebe.:cloud: "Your Professional Deployment Platform"](https://cebe.cloud). - diff --git a/TODO.taskpaper b/TODO.taskpaper new file mode 100644 index 00000000..6fc7c133 --- /dev/null +++ b/TODO.taskpaper @@ -0,0 +1,9 @@ +TODO.taskpaper + +### Bug: rules() "required" is generated before "*_default" #22 + ✔ create failing test @done (24-08-18 19:21) + ✔ implement the solution @done (24-08-18 19:21) + ☐ fix failing tests if any + ☐ resolve TODOs if any + ☐ review PR + ☐ delete this file and submit PR diff --git a/src/lib/ValidationRulesBuilder.php b/src/lib/ValidationRulesBuilder.php index 3f3c1398..f0b1f90d 100644 --- a/src/lib/ValidationRulesBuilder.php +++ b/src/lib/ValidationRulesBuilder.php @@ -10,8 +10,6 @@ use cebe\yii2openapi\lib\items\Attribute; use cebe\yii2openapi\lib\items\DbModel; use cebe\yii2openapi\lib\items\ValidationRule; -use yii\helpers\VarDumper; -use yii\validators\DateValidator; use function count; use function implode; use function in_array; @@ -53,9 +51,6 @@ public function build():array $this->rules['trim'] = new ValidationRule($this->typeScope['trim'], 'trim'); } - if (!empty($this->typeScope['required'])) { - $this->rules['required'] = new ValidationRule($this->typeScope['required'], 'required'); - } if (!empty($this->typeScope['ref'])) { $this->addExistRules($this->typeScope['ref']); } @@ -77,6 +72,9 @@ public function build():array if (!empty($this->typeScope['safe'])) { $this->rules['safe'] = new ValidationRule($this->typeScope['safe'], 'safe'); } + if (!empty($this->typeScope['required'])) { + $this->rules['required'] = new ValidationRule($this->typeScope['required'], 'required'); + } return $this->rules; } diff --git a/tests/DbTestCase.php b/tests/DbTestCase.php index ca7b17ff..c28a314c 100644 --- a/tests/DbTestCase.php +++ b/tests/DbTestCase.php @@ -3,12 +3,12 @@ namespace tests; use cebe\yii2openapi\generator\ApiGenerator; +use SamIT\Yii2\MariaDb\Schema as MariaDbSchema; use Yii; -use yii\di\Container; use yii\db\mysql\Schema as MySqlSchema; use yii\db\pgsql\Schema as PgSqlSchema; -use \SamIT\Yii2\MariaDb\Schema as MariaDbSchema; -use yii\helpers\{ArrayHelper, VarDumper, StringHelper, Console}; +use yii\di\Container; +use yii\helpers\{ArrayHelper, StringHelper}; use yii\helpers\FileHelper; class DbTestCase extends \PHPUnit\Framework\TestCase @@ -127,6 +127,7 @@ protected function checkFiles(array $actual, array $expected) ); } + // exec('cp '.$file.' '.$expectedFilePath); $this->assertFileEquals($expectedFilePath, $file, "Failed asserting that file contents of\n$file\nare equal to file contents of\n$expectedFilePath \n\n cp $file $expectedFilePath \n\n "); } } diff --git a/tests/specs/blog/models/base/Category.php b/tests/specs/blog/models/base/Category.php index f22e0014..0debe57d 100644 --- a/tests/specs/blog/models/base/Category.php +++ b/tests/specs/blog/models/base/Category.php @@ -22,11 +22,11 @@ public function rules() { return [ 'trim' => [['title'], 'trim'], - 'required' => [['title', 'active'], 'required'], 'title_unique' => [['title'], 'unique'], 'title_string' => [['title'], 'string', 'max' => 255], 'active_boolean' => [['active'], 'boolean'], 'active_default' => [['active'], 'default', 'value' => false], + 'required' => [['title', 'active'], 'required'], ]; } diff --git a/tests/specs/blog/models/base/Comment.php b/tests/specs/blog/models/base/Comment.php index 44cd42fc..d74131cb 100644 --- a/tests/specs/blog/models/base/Comment.php +++ b/tests/specs/blog/models/base/Comment.php @@ -26,7 +26,6 @@ public function rules() { return [ 'trim' => [['post_id'], 'trim'], - 'required' => [['post_id', 'author_id', 'message', 'created_at'], 'required'], 'post_id_string' => [['post_id'], 'string', 'max' => 128], 'post_id_exist' => [['post_id'], 'exist', 'targetRelation' => 'Post'], 'author_id_integer' => [['author_id'], 'integer'], @@ -35,6 +34,7 @@ public function rules() 'meta_data_default' => [['meta_data'], 'default', 'value' => []], 'created_at_integer' => [['created_at'], 'integer'], 'safe' => [['message', 'meta_data'], 'safe'], + 'required' => [['post_id', 'author_id', 'message', 'created_at'], 'required'], ]; } diff --git a/tests/specs/blog/models/base/Post.php b/tests/specs/blog/models/base/Post.php index 457978b5..c961a2b0 100644 --- a/tests/specs/blog/models/base/Post.php +++ b/tests/specs/blog/models/base/Post.php @@ -28,7 +28,6 @@ public function rules() { return [ 'trim' => [['title', 'slug', 'created_at'], 'trim'], - 'required' => [['title', 'category_id', 'active'], 'required'], 'category_id_integer' => [['category_id'], 'integer'], 'category_id_exist' => [['category_id'], 'exist', 'targetRelation' => 'Category'], 'created_by_id_integer' => [['created_by_id'], 'integer'], @@ -40,6 +39,7 @@ public function rules() 'active_boolean' => [['active'], 'boolean'], 'active_default' => [['active'], 'default', 'value' => false], 'created_at_date' => [['created_at'], 'date', 'format' => 'php:Y-m-d'], + 'required' => [['title', 'category_id', 'active'], 'required'], ]; } diff --git a/tests/specs/blog/models/base/User.php b/tests/specs/blog/models/base/User.php index f0e484e8..bf30a8bd 100644 --- a/tests/specs/blog/models/base/User.php +++ b/tests/specs/blog/models/base/User.php @@ -25,7 +25,6 @@ public function rules() { return [ 'trim' => [['username', 'email', 'password', 'role', 'created_at'], 'trim'], - 'required' => [['username', 'email', 'password'], 'required'], 'username_unique' => [['username'], 'unique'], 'email_unique' => [['email'], 'unique'], 'username_string' => [['username'], 'string', 'max' => 200], @@ -37,6 +36,7 @@ public function rules() 'flags_integer' => [['flags'], 'integer'], 'flags_default' => [['flags'], 'default', 'value' => 0], 'created_at_datetime' => [['created_at'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'required' => [['username', 'email', 'password'], 'required'], ]; } } diff --git a/tests/specs/blog_v2/models/base/Category.php b/tests/specs/blog_v2/models/base/Category.php index a70be3ff..a3ef9567 100644 --- a/tests/specs/blog_v2/models/base/Category.php +++ b/tests/specs/blog_v2/models/base/Category.php @@ -23,10 +23,10 @@ public function rules() { return [ 'trim' => [['title', 'cover'], 'trim'], - 'required' => [['title', 'cover', 'active'], 'required'], 'title_string' => [['title'], 'string', 'max' => 100], 'cover_string' => [['cover'], 'string'], 'active_boolean' => [['active'], 'boolean'], + 'required' => [['title', 'cover', 'active'], 'required'], ]; } diff --git a/tests/specs/blog_v2/models/base/Comment.php b/tests/specs/blog_v2/models/base/Comment.php index a732c5c0..8f634180 100644 --- a/tests/specs/blog_v2/models/base/Comment.php +++ b/tests/specs/blog_v2/models/base/Comment.php @@ -26,7 +26,6 @@ public function rules() { return [ 'trim' => [['message', 'meta_data', 'created_at'], 'trim'], - 'required' => [['post_id', 'message', 'created_at'], 'required'], 'post_id_integer' => [['post_id'], 'integer'], 'post_id_exist' => [['post_id'], 'exist', 'targetRelation' => 'Post'], 'user_id_integer' => [['user_id'], 'integer'], @@ -35,6 +34,7 @@ public function rules() 'meta_data_string' => [['meta_data'], 'string', 'min' => 1, 'max' => 300], 'meta_data_default' => [['meta_data'], 'default', 'value' => ''], 'created_at_datetime' => [['created_at'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'required' => [['post_id', 'message', 'created_at'], 'required'], ]; } diff --git a/tests/specs/blog_v2/models/base/Post.php b/tests/specs/blog_v2/models/base/Post.php index 44fe4275..17f3c8c4 100644 --- a/tests/specs/blog_v2/models/base/Post.php +++ b/tests/specs/blog_v2/models/base/Post.php @@ -30,7 +30,6 @@ public function rules() { return [ 'trim' => [['title', 'slug', 'created_at'], 'trim'], - 'required' => [['title', 'category_id', 'active'], 'required'], 'category_id_integer' => [['category_id'], 'integer'], 'category_id_exist' => [['category_id'], 'exist', 'targetRelation' => 'Category'], 'created_by_id_integer' => [['created_by_id'], 'integer'], @@ -46,6 +45,7 @@ public function rules() 'lang_default' => [['lang'], 'default', 'value' => 'ru'], 'active_boolean' => [['active'], 'boolean'], 'created_at_date' => [['created_at'], 'date', 'format' => 'php:Y-m-d'], + 'required' => [['title', 'category_id', 'active'], 'required'], ]; } diff --git a/tests/specs/blog_v2/models/base/Tag.php b/tests/specs/blog_v2/models/base/Tag.php index f1a57778..2a971ebc 100644 --- a/tests/specs/blog_v2/models/base/Tag.php +++ b/tests/specs/blog_v2/models/base/Tag.php @@ -22,7 +22,6 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name', 'lang'], 'required'], 'name_unique' => [['name'], 'unique'], 'name_string' => [['name'], 'string', 'max' => 100], 'lang_string' => [['lang'], 'string'], @@ -30,6 +29,7 @@ public function rules() 'ru', 'eng', ]], + 'required' => [['name', 'lang'], 'required'], ]; } diff --git a/tests/specs/blog_v2/models/base/User.php b/tests/specs/blog_v2/models/base/User.php index 195b5b5e..eddb7448 100644 --- a/tests/specs/blog_v2/models/base/User.php +++ b/tests/specs/blog_v2/models/base/User.php @@ -25,7 +25,6 @@ public function rules() { return [ 'trim' => [['login', 'email', 'password', 'created_at'], 'trim'], - 'required' => [['login', 'email', 'password'], 'required'], 'login_unique' => [['login'], 'unique'], 'email_unique' => [['email'], 'unique'], 'login_string' => [['login'], 'string'], @@ -41,6 +40,7 @@ public function rules() 'flags_integer' => [['flags'], 'integer'], 'flags_default' => [['flags'], 'default', 'value' => 0], 'created_at_datetime' => [['created_at'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'required' => [['login', 'email', 'password'], 'required'], ]; } } diff --git a/tests/specs/change_column_name/maria/app/models/base/ColumnNameChange.php b/tests/specs/change_column_name/maria/app/models/base/ColumnNameChange.php index a5393546..79574d97 100644 --- a/tests/specs/change_column_name/maria/app/models/base/ColumnNameChange.php +++ b/tests/specs/change_column_name/maria/app/models/base/ColumnNameChange.php @@ -21,8 +21,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 255], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/change_column_name/mysql/app/models/base/ColumnNameChange.php b/tests/specs/change_column_name/mysql/app/models/base/ColumnNameChange.php index a5393546..79574d97 100644 --- a/tests/specs/change_column_name/mysql/app/models/base/ColumnNameChange.php +++ b/tests/specs/change_column_name/mysql/app/models/base/ColumnNameChange.php @@ -21,8 +21,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 255], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/change_column_name/pgsql/app/models/base/ColumnNameChange.php b/tests/specs/change_column_name/pgsql/app/models/base/ColumnNameChange.php index 426b5a1f..4040250f 100644 --- a/tests/specs/change_column_name/pgsql/app/models/base/ColumnNameChange.php +++ b/tests/specs/change_column_name/pgsql/app/models/base/ColumnNameChange.php @@ -21,8 +21,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 255], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/fk_col_name/app/models/base/User.php b/tests/specs/fk_col_name/app/models/base/User.php index d76c3f4d..3b1bc8d1 100644 --- a/tests/specs/fk_col_name/app/models/base/User.php +++ b/tests/specs/fk_col_name/app/models/base/User.php @@ -20,8 +20,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/fk_col_name_index/app/models/base/User.php b/tests/specs/fk_col_name_index/app/models/base/User.php index d76c3f4d..3b1bc8d1 100644 --- a/tests/specs/fk_col_name_index/app/models/base/User.php +++ b/tests/specs/fk_col_name_index/app/models/base/User.php @@ -20,8 +20,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/id_not_in_rules/app/models/base/Fruit.php b/tests/specs/id_not_in_rules/app/models/base/Fruit.php index 4b1fcd72..9ecdbcf2 100644 --- a/tests/specs/id_not_in_rules/app/models/base/Fruit.php +++ b/tests/specs/id_not_in_rules/app/models/base/Fruit.php @@ -20,8 +20,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/issue_fix/153_nullable_false_in_required/app/models/base/Pristine.php b/tests/specs/issue_fix/153_nullable_false_in_required/app/models/base/Pristine.php index 8cc79e6f..58324717 100644 --- a/tests/specs/issue_fix/153_nullable_false_in_required/app/models/base/Pristine.php +++ b/tests/specs/issue_fix/153_nullable_false_in_required/app/models/base/Pristine.php @@ -19,9 +19,9 @@ public static function tableName() public function rules() { return [ - 'required' => [['billing_factor'], 'required'], 'billing_factor_integer' => [['billing_factor'], 'integer'], 'billing_factor_default' => [['billing_factor'], 'default', 'value' => 100], + 'required' => [['billing_factor'], 'required'], ]; } } diff --git a/tests/specs/issue_fix/158_bug_giiapi_generated_rules_enum_with_trim/maria/models/base/Mailing.php b/tests/specs/issue_fix/158_bug_giiapi_generated_rules_enum_with_trim/maria/models/base/Mailing.php index 2839c526..de55cf39 100644 --- a/tests/specs/issue_fix/158_bug_giiapi_generated_rules_enum_with_trim/maria/models/base/Mailing.php +++ b/tests/specs/issue_fix/158_bug_giiapi_generated_rules_enum_with_trim/maria/models/base/Mailing.php @@ -21,7 +21,6 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 128], 'paymentMethodName_string' => [['paymentMethodName'], 'string'], 'paymentMethodName_in' => [['paymentMethodName'], 'in', 'range' => [ @@ -29,6 +28,7 @@ public function rules() 'cash', 'ewallet', ]], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Contact.php b/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Contact.php index efbd8b32..2186badc 100644 --- a/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Contact.php +++ b/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Contact.php @@ -23,12 +23,12 @@ public function rules() { return [ 'trim' => [['nickname'], 'trim'], - 'required' => [['mailing_id'], 'required'], 'mailing_id_integer' => [['mailing_id'], 'integer'], 'mailing_id_exist' => [['mailing_id'], 'exist', 'targetRelation' => 'Mailing'], 'active_boolean' => [['active'], 'boolean'], 'active_default' => [['active'], 'default', 'value' => false], 'nickname_string' => [['nickname'], 'string'], + 'required' => [['mailing_id'], 'required'], ]; } diff --git a/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Mailing.php b/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Mailing.php index 77049b23..5dcaec74 100644 --- a/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Mailing.php +++ b/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Mailing.php @@ -21,9 +21,9 @@ public function rules() { return [ 'trim' => [['name', 'paymentMethodName'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 128], 'paymentMethodName_string' => [['paymentMethodName'], 'string'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Account.php b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Account.php index f3dae5db..c671a556 100644 --- a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Account.php +++ b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Account.php @@ -21,9 +21,9 @@ public function rules() { return [ 'trim' => [['name', 'paymentMethodName'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 128], 'paymentMethodName_string' => [['paymentMethodName'], 'string'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Contact.php b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Contact.php index 21a2e7f1..c3a42a9a 100644 --- a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Contact.php +++ b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Contact.php @@ -23,12 +23,12 @@ public function rules() { return [ 'trim' => [['nickname'], 'trim'], - 'required' => [['account_id'], 'required'], 'account_id_integer' => [['account_id'], 'integer'], 'account_id_exist' => [['account_id'], 'exist', 'targetRelation' => 'Account'], 'active_boolean' => [['active'], 'boolean'], 'active_default' => [['active'], 'default', 'value' => false], 'nickname_string' => [['nickname'], 'string'], + 'required' => [['account_id'], 'required'], ]; } diff --git a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/PaymentMethod.php b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/PaymentMethod.php index 79e8c05b..6e18e8cd 100644 --- a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/PaymentMethod.php +++ b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/PaymentMethod.php @@ -20,9 +20,9 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_unique' => [['name'], 'unique'], 'name_string' => [['name'], 'string', 'max' => 150], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.php b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.php new file mode 100644 index 00000000..ebfdd29d --- /dev/null +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.php @@ -0,0 +1,13 @@ + '@specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.yaml', + 'generateUrls' => false, + 'generateModels' => true, + 'excludeModels' => [ + 'Error', + ], + 'generateControllers' => false, + 'generateMigrations' => true, + 'generateModelFaker' => true, // `generateModels` must be `true` in order to use `generateModelFaker` as `true` +]; diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.yaml b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.yaml new file mode 100644 index 00000000..889ab5b3 --- /dev/null +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.yaml @@ -0,0 +1,35 @@ +openapi: 3.0.3 + +info: + title: 'Bug: rules() "required" is generated before "*_default" #22' + version: 1.0.0 + +components: + schemas: + Account: + description: Account + type: object + required: + - id + - name + - verified + properties: + id: + type: integer + readOnly: true + name: + description: account name + type: string + maxLength: 128 + paymentMethodName: + type: string + verified: + type: boolean + default: false + +paths: + '/account': + get: + responses: + '200': + description: Account info diff --git a/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/Account.php b/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/Account.php index 0ee4adc0..52b589e1 100644 --- a/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/Account.php +++ b/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/Account.php @@ -20,8 +20,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 40], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/many2many/models/base/Photo.php b/tests/specs/many2many/models/base/Photo.php index eb08fec7..b7d13e2e 100644 --- a/tests/specs/many2many/models/base/Photo.php +++ b/tests/specs/many2many/models/base/Photo.php @@ -26,8 +26,8 @@ public function rules() { return [ 'trim' => [['filename'], 'trim'], - 'required' => [['filename'], 'required'], 'filename_string' => [['filename'], 'string'], + 'required' => [['filename'], 'required'], ]; } diff --git a/tests/specs/many2many/models/base/Post.php b/tests/specs/many2many/models/base/Post.php index 6ecfc3ce..c9c37e06 100644 --- a/tests/specs/many2many/models/base/Post.php +++ b/tests/specs/many2many/models/base/Post.php @@ -27,8 +27,8 @@ public function rules() { return [ 'trim' => [['title'], 'trim'], - 'required' => [['title'], 'required'], 'title_string' => [['title'], 'string'], + 'required' => [['title'], 'required'], ]; } diff --git a/tests/specs/many2many/models/base/Tag.php b/tests/specs/many2many/models/base/Tag.php index 8d7cfc24..5f15a84c 100644 --- a/tests/specs/many2many/models/base/Tag.php +++ b/tests/specs/many2many/models/base/Tag.php @@ -21,8 +21,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], + 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/menu/models/base/Menu.php b/tests/specs/menu/models/base/Menu.php index 582d952d..f3e10612 100644 --- a/tests/specs/menu/models/base/Menu.php +++ b/tests/specs/menu/models/base/Menu.php @@ -25,7 +25,6 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'parent_id_integer' => [['parent_id'], 'integer'], 'parent_id_exist' => [['parent_id'], 'exist', 'targetRelation' => 'Parent'], 'name_string' => [['name'], 'string', 'min' => 3, 'max' => 100], @@ -43,6 +42,7 @@ public function rules() ], ]], 'safe' => [['args', 'kwargs'], 'safe'], + 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/petstore/models/base/Pet.php b/tests/specs/petstore/models/base/Pet.php index 039764d2..27566a9b 100644 --- a/tests/specs/petstore/models/base/Pet.php +++ b/tests/specs/petstore/models/base/Pet.php @@ -23,11 +23,11 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], - 'required' => [['name'], 'required'], 'store_id_integer' => [['store_id'], 'integer'], 'store_id_exist' => [['store_id'], 'exist', 'targetRelation' => 'Store'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], + 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/petstore/models/base/Store.php b/tests/specs/petstore/models/base/Store.php index b1f6bc0f..432fed31 100644 --- a/tests/specs/petstore/models/base/Store.php +++ b/tests/specs/petstore/models/base/Store.php @@ -20,8 +20,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/petstore_arrayref/models/base/Pet.php b/tests/specs/petstore_arrayref/models/base/Pet.php index 660237dd..6e67994d 100644 --- a/tests/specs/petstore_arrayref/models/base/Pet.php +++ b/tests/specs/petstore_arrayref/models/base/Pet.php @@ -22,9 +22,9 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], + 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/petstore_jsonapi/models/base/Doctor.php b/tests/specs/petstore_jsonapi/models/base/Doctor.php index b13bdaa5..32f6ca70 100644 --- a/tests/specs/petstore_jsonapi/models/base/Doctor.php +++ b/tests/specs/petstore_jsonapi/models/base/Doctor.php @@ -29,10 +29,10 @@ public function rules() { return [ 'trim' => [['name', 'surname'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 200], 'surname_string' => [['surname'], 'string', 'max' => 200], 'safe' => [['phones'], 'safe'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/petstore_jsonapi/models/base/Pet.php b/tests/specs/petstore_jsonapi/models/base/Pet.php index f0e3138a..e75f31ce 100644 --- a/tests/specs/petstore_jsonapi/models/base/Pet.php +++ b/tests/specs/petstore_jsonapi/models/base/Pet.php @@ -48,10 +48,10 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'petCode'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], 'petCode_string' => [['petCode'], 'string', 'max' => 50], + 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/petstore_namespace/mymodels/base/Pet.php b/tests/specs/petstore_namespace/mymodels/base/Pet.php index 58750645..9a6be041 100644 --- a/tests/specs/petstore_namespace/mymodels/base/Pet.php +++ b/tests/specs/petstore_namespace/mymodels/base/Pet.php @@ -23,11 +23,11 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], - 'required' => [['name'], 'required'], 'store_id_integer' => [['store_id'], 'integer'], 'store_id_exist' => [['store_id'], 'exist', 'targetRelation' => 'Store'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], + 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/petstore_namespace/mymodels/base/Store.php b/tests/specs/petstore_namespace/mymodels/base/Store.php index 6ecc3e47..ecce86b6 100644 --- a/tests/specs/petstore_namespace/mymodels/base/Store.php +++ b/tests/specs/petstore_namespace/mymodels/base/Store.php @@ -20,8 +20,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/petstore_wrapped/models/base/Pet.php b/tests/specs/petstore_wrapped/models/base/Pet.php index fc84b808..fadf9d48 100644 --- a/tests/specs/petstore_wrapped/models/base/Pet.php +++ b/tests/specs/petstore_wrapped/models/base/Pet.php @@ -21,9 +21,9 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/petstore_xtable/models/base/Pet.php b/tests/specs/petstore_xtable/models/base/Pet.php index fc84b808..fadf9d48 100644 --- a/tests/specs/petstore_xtable/models/base/Pet.php +++ b/tests/specs/petstore_xtable/models/base/Pet.php @@ -21,9 +21,9 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/relations_in_faker/app/models/base/Account.php b/tests/specs/relations_in_faker/app/models/base/Account.php index 0ee4adc0..52b589e1 100644 --- a/tests/specs/relations_in_faker/app/models/base/Account.php +++ b/tests/specs/relations_in_faker/app/models/base/Account.php @@ -20,8 +20,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 40], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/relations_in_faker/app/models/base/Domain.php b/tests/specs/relations_in_faker/app/models/base/Domain.php index 3f861f9e..c51b5163 100644 --- a/tests/specs/relations_in_faker/app/models/base/Domain.php +++ b/tests/specs/relations_in_faker/app/models/base/Domain.php @@ -24,10 +24,10 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'required' => [['name', 'account_id'], 'required'], 'account_id_integer' => [['account_id'], 'integer'], 'account_id_exist' => [['account_id'], 'exist', 'targetRelation' => 'Account'], 'name_string' => [['name'], 'string', 'max' => 128], + 'required' => [['name', 'account_id'], 'required'], ]; } diff --git a/tests/specs/relations_in_faker/app/models/base/Routing.php b/tests/specs/relations_in_faker/app/models/base/Routing.php index 71a31b81..1731d234 100644 --- a/tests/specs/relations_in_faker/app/models/base/Routing.php +++ b/tests/specs/relations_in_faker/app/models/base/Routing.php @@ -30,7 +30,6 @@ public function rules() { return [ 'trim' => [['path', 'service'], 'trim'], - 'required' => [['domain_id'], 'required'], 'domain_id_integer' => [['domain_id'], 'integer'], 'domain_id_exist' => [['domain_id'], 'exist', 'targetRelation' => 'Domain'], 'd123_id_integer' => [['d123_id'], 'integer'], @@ -41,6 +40,7 @@ public function rules() 'ssl_boolean' => [['ssl'], 'boolean'], 'redirect_to_ssl_boolean' => [['redirect_to_ssl'], 'boolean'], 'service_string' => [['service'], 'string', 'max' => 255], + 'required' => [['domain_id'], 'required'], ]; } diff --git a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Alldbdatatype.php b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Alldbdatatype.php index 6a35d601..0077fb3a 100644 --- a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Alldbdatatype.php +++ b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Alldbdatatype.php @@ -62,7 +62,6 @@ public function rules() { return [ 'trim' => [['string_col', 'varchar_col', 'text_col', 'varchar_4_col', 'char_4_col', 'char_5_col', 'char_6_col', 'char_7_col', 'char_8_col', 'date_col', 'time_col', 'datetime_col', 'timestamp_col', 'year_col', 'text_def'], 'trim'], - 'required' => [['char_6_col', 'char_7_col'], 'required'], 'string_col_string' => [['string_col'], 'string', 'max' => 255], 'varchar_col_string' => [['varchar_col'], 'string', 'max' => 132], 'text_col_string' => [['text_col'], 'string'], @@ -109,6 +108,7 @@ public function rules() 'a' => 'b', ]], 'safe' => [['varbinary_col', 'blob_col', 'json_col', 'json_col_def', 'json_col_def_2', 'blob_def', 'json_def'], 'safe'], + 'required' => [['char_6_col', 'char_7_col'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Editcolumn.php b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Editcolumn.php index 62f98624..1c49081a 100644 --- a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Editcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Editcolumn.php @@ -30,7 +30,6 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'first_name', 'string_col', 'str_col_def', 'json_col'], 'trim'], - 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], 'name_string' => [['name'], 'string', 'max' => 254], 'name_default' => [['name'], 'default', 'value' => 'Horse-2'], 'tag_string' => [['tag'], 'string'], @@ -46,6 +45,7 @@ public function rules() 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], 'safe' => [['json_col_2', 'json_col_def_n', 'json_col_def_n_2'], 'safe'], + 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Newcolumn.php b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Newcolumn.php index 15da0af8..4df93c0c 100644 --- a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Newcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Newcolumn.php @@ -26,7 +26,6 @@ public function rules() { return [ 'trim' => [['name', 'last_name', 'varchar_col'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 255], 'last_name_string' => [['last_name'], 'string'], 'dec_col_double' => [['dec_col'], 'double'], @@ -34,6 +33,7 @@ public function rules() 'numeric_col_double' => [['numeric_col'], 'double'], 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], 'safe' => [['json_col', 'json_col_def_n'], 'safe'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Pristine.php b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Pristine.php index a5d7c1ef..a8ce93d2 100644 --- a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Pristine.php +++ b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Pristine.php @@ -30,7 +30,6 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'new_col', 'col_9', 'col_10', 'col_11'], 'trim'], - 'required' => [['custom_id_col', 'name'], 'required'], 'custom_id_col_integer' => [['custom_id_col'], 'integer'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], @@ -45,6 +44,7 @@ public function rules() 'price_double' => [['price'], 'double'], 'price_default' => [['price'], 'default', 'value' => 0], 'safe' => [['col_8'], 'safe'], + 'required' => [['custom_id_col', 'name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Alldbdatatype.php b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Alldbdatatype.php index 41326222..02e39bc6 100644 --- a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Alldbdatatype.php +++ b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Alldbdatatype.php @@ -62,7 +62,6 @@ public function rules() { return [ 'trim' => [['string_col', 'varchar_col', 'text_col', 'varchar_4_col', 'char_4_col', 'char_5_col', 'char_6_col', 'char_7_col', 'char_8_col', 'date_col', 'time_col', 'datetime_col', 'timestamp_col', 'year_col', 'text_def'], 'trim'], - 'required' => [['char_6_col', 'char_7_col'], 'required'], 'string_col_string' => [['string_col'], 'string', 'max' => 255], 'varchar_col_string' => [['varchar_col'], 'string', 'max' => 132], 'text_col_string' => [['text_col'], 'string'], @@ -109,6 +108,7 @@ public function rules() 'a' => 'b', ]], 'safe' => [['varbinary_col', 'blob_col', 'json_col', 'json_col_def', 'json_col_def_2', 'blob_def', 'json_def'], 'safe'], + 'required' => [['char_6_col', 'char_7_col'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Editcolumn.php b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Editcolumn.php index 2b630e67..677d16a9 100644 --- a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Editcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Editcolumn.php @@ -30,7 +30,6 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'first_name', 'string_col', 'str_col_def', 'json_col'], 'trim'], - 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], 'name_string' => [['name'], 'string', 'max' => 254], 'name_default' => [['name'], 'default', 'value' => 'Horse-2'], 'tag_string' => [['tag'], 'string'], @@ -46,6 +45,7 @@ public function rules() 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], 'safe' => [['json_col_2', 'json_col_def_n', 'json_col_def_n_2'], 'safe'], + 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Newcolumn.php b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Newcolumn.php index 186ef3fe..0569715e 100644 --- a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Newcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Newcolumn.php @@ -26,7 +26,6 @@ public function rules() { return [ 'trim' => [['name', 'last_name', 'varchar_col'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 255], 'last_name_string' => [['last_name'], 'string'], 'dec_col_double' => [['dec_col'], 'double'], @@ -34,6 +33,7 @@ public function rules() 'numeric_col_double' => [['numeric_col'], 'double'], 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], 'safe' => [['json_col', 'json_col_def_n'], 'safe'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Pristine.php b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Pristine.php index 87c54d6c..891a4ef9 100644 --- a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Pristine.php +++ b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Pristine.php @@ -30,7 +30,6 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'new_col', 'col_9', 'col_10', 'col_11'], 'trim'], - 'required' => [['custom_id_col', 'name'], 'required'], 'custom_id_col_integer' => [['custom_id_col'], 'integer'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], @@ -45,6 +44,7 @@ public function rules() 'price_double' => [['price'], 'double'], 'price_default' => [['price'], 'default', 'value' => 0], 'safe' => [['col_8'], 'safe'], + 'required' => [['custom_id_col', 'name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Alldbdatatype.php b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Alldbdatatype.php index 5311af96..74c9dc17 100644 --- a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Alldbdatatype.php +++ b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Alldbdatatype.php @@ -112,7 +112,6 @@ public function rules() { return [ 'trim' => [['string_col', 'varchar_col', 'text_col', 'varchar_4_col', 'varchar_5_col', 'char_4_col', 'char_5_col', 'char_6_col', 'char_7_col', 'char_8_col', 'date_col', 'time_col', 'time_col_2', 'time_col_3', 'time_col_4', 'timetz_col', 'timetz_col_2', 'timestamp_col', 'timestamp_col_2', 'timestamp_col_3', 'timestamp_col_4', 'timestamptz_col', 'timestamptz_col_2', 'date2', 'timestamp_col_z', 'box_col', 'character_col', 'character_n', 'character_varying', 'character_varying_n', 'text_def', 'cidr_col', 'circle_col', 'date_col_z', 'inet_col', 'interval_col', 'interval_col_2', 'interval_col_3', 'line_col', 'lseg_col', 'macaddr_col', 'money_col', 'path_col', 'point_col', 'polygon_col', 'tsquery_col', 'tsvector_col', 'txid_snapshot_col', 'uuid_col', 'xml_col'], 'trim'], - 'required' => [['char_6_col', 'char_7_col', 'smallserial_col', 'serial2_col', 'bigserial_col', 'bigserial_col_2', 'serial_col', 'serial4_col'], 'required'], 'string_col_string' => [['string_col'], 'string'], 'varchar_col_string' => [['varchar_col'], 'string'], 'text_col_string' => [['text_col'], 'string'], @@ -209,6 +208,7 @@ public function rules() 'uuid_col_string' => [['uuid_col'], 'string'], 'xml_col_string' => [['xml_col'], 'string'], 'safe' => [['text_col_array', 'bytea_col_2', 'json_col', 'jsonb_col', 'json_col_def', 'json_col_def_2', 'bytea_def', 'json_def', 'jsonb_def'], 'safe'], + 'required' => [['char_6_col', 'char_7_col', 'smallserial_col', 'serial2_col', 'bigserial_col', 'bigserial_col_2', 'serial_col', 'serial4_col'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Editcolumn.php b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Editcolumn.php index 730bff5a..94500d7c 100644 --- a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Editcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Editcolumn.php @@ -31,7 +31,6 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'first_name', 'string_col', 'str_col_def', 'json_col'], 'trim'], - 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], 'name_string' => [['name'], 'string', 'max' => 254], 'name_default' => [['name'], 'default', 'value' => 'Horse-2'], 'tag_string' => [['tag'], 'string'], @@ -47,6 +46,7 @@ public function rules() 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], 'safe' => [['json_col_2', 'json_col_def_n', 'json_col_def_n_2', 'text_col_array'], 'safe'], + 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Newcolumn.php b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Newcolumn.php index 09b54731..35cf841e 100644 --- a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Newcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Newcolumn.php @@ -29,7 +29,6 @@ public function rules() { return [ 'trim' => [['name', 'first_name', 'last_name', 'varchar_col'], 'trim'], - 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'first_name_string' => [['first_name'], 'string'], 'last_name_string' => [['last_name'], 'string'], @@ -39,6 +38,7 @@ public function rules() 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], 'safe' => [['json_col', 'json_col_def_n', 'json_col_def_n_2', 'text_col_array'], 'safe'], + 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Pristine.php b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Pristine.php index c24d65b9..430adcec 100644 --- a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Pristine.php +++ b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Pristine.php @@ -30,7 +30,6 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'new_col', 'col_9', 'col_10', 'col_11'], 'trim'], - 'required' => [['custom_id_col', 'name'], 'required'], 'custom_id_col_integer' => [['custom_id_col'], 'integer'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], @@ -45,6 +44,7 @@ public function rules() 'price_double' => [['price'], 'double'], 'price_default' => [['price'], 'default', 'value' => 0], 'safe' => [['col_8'], 'safe'], + 'required' => [['custom_id_col', 'name'], 'required'], ]; } } diff --git a/tests/unit/IssueFixTest.php b/tests/unit/IssueFixTest.php index b6c7abdb..eeeeffad 100644 --- a/tests/unit/IssueFixTest.php +++ b/tests/unit/IssueFixTest.php @@ -360,4 +360,18 @@ public function test158BugGiiapiGeneratedRulesEnumWithTrim() ]); $this->checkFiles($actualFiles, $expectedFiles); } + + // https://github.com/php-openapi/yii2-openapi/issues/22 + public function test22BugRulesRequiredIsGeneratedBeforeDefault() + { + $testFile = Yii::getAlias("@specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.php"); + $this->runGenerator($testFile); + // $actualFiles = FileHelper::findFiles(Yii::getAlias('@app'), [ + // 'recursive' => true, + // ]); + // $expectedFiles = FileHelper::findFiles(Yii::getAlias("@specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql"), [ + // 'recursive' => true, + // ]); + // $this->checkFiles($actualFiles, $expectedFiles); + } } From 1beb4d67e30375c09d47b27c0d28e226bb6317df Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Sun, 18 Aug 2024 19:41:54 +0530 Subject: [PATCH 03/11] Complete test --- TODO.taskpaper | 2 +- tests/DbTestCase.php | 1 - .../m200000_000000_create_table_accounts.php | 22 +++ .../mysql/models/Account.php | 10 ++ .../mysql/models/AccountFaker.php | 43 ++++++ .../mysql/models/BaseModelFaker.php | 144 ++++++++++++++++++ .../mysql/models/base/Account.php | 32 ++++ tests/unit/IssueFixTest.php | 14 +- 8 files changed, 259 insertions(+), 9 deletions(-) create mode 100644 tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/migrations_mysql_db/m200000_000000_create_table_accounts.php create mode 100644 tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/Account.php create mode 100644 tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/AccountFaker.php create mode 100644 tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/BaseModelFaker.php create mode 100644 tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php diff --git a/TODO.taskpaper b/TODO.taskpaper index 6fc7c133..54e63549 100644 --- a/TODO.taskpaper +++ b/TODO.taskpaper @@ -3,7 +3,7 @@ TODO.taskpaper ### Bug: rules() "required" is generated before "*_default" #22 ✔ create failing test @done (24-08-18 19:21) ✔ implement the solution @done (24-08-18 19:21) - ☐ fix failing tests if any + ✔ fix failing tests if any @done (24-08-18 19:39) ☐ resolve TODOs if any ☐ review PR ☐ delete this file and submit PR diff --git a/tests/DbTestCase.php b/tests/DbTestCase.php index c28a314c..d3e466aa 100644 --- a/tests/DbTestCase.php +++ b/tests/DbTestCase.php @@ -101,7 +101,6 @@ protected function compareFiles(array $actual, string $testFile) foreach ($actual as $file) { $expectedFile = str_replace('@app', substr($testFile, 0, -4), $file); $actualFile = str_replace('@app', Yii::getAlias('@app'), $file); - // exec('cp '.$actualFile.' '.$expectedFile); $this->checkFiles([$actualFile], [$expectedFile]); } } diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/migrations_mysql_db/m200000_000000_create_table_accounts.php b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/migrations_mysql_db/m200000_000000_create_table_accounts.php new file mode 100644 index 00000000..e59c2946 --- /dev/null +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/migrations_mysql_db/m200000_000000_create_table_accounts.php @@ -0,0 +1,22 @@ +createTable('{{%accounts}}', [ + 'id' => $this->primaryKey(), + 'name' => $this->string(128)->notNull(), + 'paymentMethodName' => $this->text()->null(), + 'verified' => $this->boolean()->notNull()->defaultValue(false), + ]); + } + + public function down() + { + $this->dropTable('{{%accounts}}'); + } +} diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/Account.php b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/Account.php new file mode 100644 index 00000000..2d25d7fc --- /dev/null +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/Account.php @@ -0,0 +1,10 @@ +generateModels(['author_id' => 1]); + * $model = (new PostFaker())->generateModels(function($model, $faker, $uniqueFaker) { + * $model->scenario = 'create'; + * $model->author_id = 1; + * return $model; + * }); + **/ + public function generateModel($attributes = []) + { + $faker = $this->faker; + $uniqueFaker = $this->uniqueFaker; + $model = new Account(); + //$model->id = $uniqueFaker->numberBetween(0, 1000000); + $model->name = substr($faker->text(128), 0, 128); + $model->paymentMethodName = $faker->sentence; + $model->verified = $faker->boolean; + if (!is_callable($attributes)) { + $model->setAttributes($attributes, false); + } else { + $model = $attributes($model, $faker, $uniqueFaker); + } + return $model; + } +} diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/BaseModelFaker.php b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/BaseModelFaker.php new file mode 100644 index 00000000..c367fbb4 --- /dev/null +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/BaseModelFaker.php @@ -0,0 +1,144 @@ +faker = FakerFactory::create(str_replace('-', '_', \Yii::$app->language)); + $this->uniqueFaker = new UniqueGenerator($this->faker); + } + + abstract public function generateModel($attributes = []); + + public function getFaker():Generator + { + return $this->faker; + } + + public function getUniqueFaker():UniqueGenerator + { + return $this->uniqueFaker; + } + + public function setFaker(Generator $faker):void + { + $this->faker = $faker; + } + + public function setUniqueFaker(UniqueGenerator $faker):void + { + $this->uniqueFaker = $faker; + } + + /** + * Generate and return model + * @param array|callable $attributes + * @param UniqueGenerator|null $uniqueFaker + * @return \yii\db\ActiveRecord + * @example MyFaker::makeOne(['user_id' => 1, 'title' => 'foo']); + * @example MyFaker::makeOne( function($model, $faker) { + * $model->scenario = 'create'; + * $model->setAttributes(['user_id' => 1, 'title' => $faker->sentence]); + * return $model; + * }); + */ + public static function makeOne($attributes = [], ?UniqueGenerator $uniqueFaker = null) + { + $fakeBuilder = new static(); + if ($uniqueFaker !== null) { + $fakeBuilder->setUniqueFaker($uniqueFaker); + } + $model = $fakeBuilder->generateModel($attributes); + return $model; + } + + /** + * Generate, save and return model + * @param array|callable $attributes + * @param UniqueGenerator|null $uniqueFaker + * @return \yii\db\ActiveRecord + * @example MyFaker::saveOne(['user_id' => 1, 'title' => 'foo']); + * @example MyFaker::saveOne( function($model, $faker) { + * $model->scenario = 'create'; + * $model->setAttributes(['user_id' => 1, 'title' => $faker->sentence]); + * return $model; + * }); + */ + public static function saveOne($attributes = [], ?UniqueGenerator $uniqueFaker = null) + { + $model = static::makeOne($attributes, $uniqueFaker); + $model->save(); + return $model; + } + + /** + * Generate and return multiple models + * @param int $number + * @param array|callable $commonAttributes + * @return \yii\db\ActiveRecord[]|array + * @example TaskFaker::make(5, ['project_id'=>1, 'user_id' => 2]); + * @example TaskFaker::make(5, function($model, $faker, $uniqueFaker) { + * $model->setAttributes(['name' => $uniqueFaker->username, 'state'=>$faker->boolean(20)]); + * return $model; + * }); + */ + public static function make(int $number, $commonAttributes = [], ?UniqueGenerator $uniqueFaker = null):array + { + if ($number < 1) { + return []; + } + $fakeBuilder = new static(); + if ($uniqueFaker !== null) { + $fakeBuilder->setUniqueFaker($uniqueFaker); + } + return array_map(function () use ($commonAttributes, $fakeBuilder) { + $model = $fakeBuilder->generateModel($commonAttributes); + return $model; + }, range(0, $number -1)); + } + + /** + * Generate, save and return multiple models + * @param int $number + * @param array|callable $commonAttributes + * @return \yii\db\ActiveRecord[]|array + * @example TaskFaker::save(5, ['project_id'=>1, 'user_id' => 2]); + * @example TaskFaker::save(5, function($model, $faker, $uniqueFaker) { + * $model->setAttributes(['name' => $uniqueFaker->username, 'state'=>$faker->boolean(20)]); + * return $model; + * }); + */ + public static function save(int $number, $commonAttributes = [], ?UniqueGenerator $uniqueFaker = null):array + { + if ($number < 1) { + return []; + } + $fakeBuilder = new static(); + if ($uniqueFaker !== null) { + $fakeBuilder->setUniqueFaker($uniqueFaker); + } + return array_map(function () use ($commonAttributes, $fakeBuilder) { + $model = $fakeBuilder->generateModel($commonAttributes); + $model->save(); + return $model; + }, range(0, $number -1)); + } +} diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php new file mode 100644 index 00000000..96b515cf --- /dev/null +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php @@ -0,0 +1,32 @@ + [['name', 'paymentMethodName'], 'trim'], + 'name_string' => [['name'], 'string', 'max' => 128], + 'paymentMethodName_string' => [['paymentMethodName'], 'string'], + 'verified_boolean' => [['verified'], 'boolean'], + 'verified_default' => [['verified'], 'default', 'value' => false], + 'required' => [['name', 'verified'], 'required'], + ]; + } +} diff --git a/tests/unit/IssueFixTest.php b/tests/unit/IssueFixTest.php index eeeeffad..30968b32 100644 --- a/tests/unit/IssueFixTest.php +++ b/tests/unit/IssueFixTest.php @@ -366,12 +366,12 @@ public function test22BugRulesRequiredIsGeneratedBeforeDefault() { $testFile = Yii::getAlias("@specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.php"); $this->runGenerator($testFile); - // $actualFiles = FileHelper::findFiles(Yii::getAlias('@app'), [ - // 'recursive' => true, - // ]); - // $expectedFiles = FileHelper::findFiles(Yii::getAlias("@specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql"), [ - // 'recursive' => true, - // ]); - // $this->checkFiles($actualFiles, $expectedFiles); + $actualFiles = FileHelper::findFiles(Yii::getAlias('@app'), [ + 'recursive' => true, + ]); + $expectedFiles = FileHelper::findFiles(Yii::getAlias("@specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql"), [ + 'recursive' => true, + ]); + $this->checkFiles($actualFiles, $expectedFiles); } } From 99e51928a881be53e20ed1c423b399233b86f77a Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Sun, 18 Aug 2024 19:44:10 +0530 Subject: [PATCH 04/11] Delete TODO.taskpaper file --- TODO.taskpaper | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 TODO.taskpaper diff --git a/TODO.taskpaper b/TODO.taskpaper deleted file mode 100644 index 54e63549..00000000 --- a/TODO.taskpaper +++ /dev/null @@ -1,9 +0,0 @@ -TODO.taskpaper - -### Bug: rules() "required" is generated before "*_default" #22 - ✔ create failing test @done (24-08-18 19:21) - ✔ implement the solution @done (24-08-18 19:21) - ✔ fix failing tests if any @done (24-08-18 19:39) - ☐ resolve TODOs if any - ☐ review PR - ☐ delete this file and submit PR From 0f9c0979047aa545edf44ac82a63c89b76826f2e Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Wed, 19 Feb 2025 16:23:55 +0530 Subject: [PATCH 05/11] Implement feedback --- src/lib/ValidationRulesBuilder.php | 55 +++++++++++++------ .../index.yaml | 1 + .../m200000_000000_create_table_accounts.php | 2 +- .../mysql/models/base/Account.php | 6 +- tests/unit/IssueFixTest.php | 3 +- 5 files changed, 45 insertions(+), 22 deletions(-) diff --git a/src/lib/ValidationRulesBuilder.php b/src/lib/ValidationRulesBuilder.php index ee82d546..b7d5ef47 100644 --- a/src/lib/ValidationRulesBuilder.php +++ b/src/lib/ValidationRulesBuilder.php @@ -53,30 +53,38 @@ public function build():array $this->rules['trim'] = new ValidationRule($this->typeScope['trim'], 'trim'); } - if (!empty($this->typeScope['ref'])) { - $this->addExistRules($this->typeScope['ref']); - } - foreach ($this->model->indexes as $index) { - if ($index->isUnique) { - $this->addUniqueRule($index->columns); + foreach ($this->model->attributes as $attribute) { + if ($this->isIdColumn($attribute)) { + continue; } + $this->defaultRule($attribute); + } + + if (!empty($this->typeScope['required'])) { + $this->rules['required'] = new ValidationRule($this->typeScope['required'], 'required'); } + foreach ($this->model->attributes as $attribute) { - // column/field/property with name `id` is considered as Primary Key by this library, and it is automatically handled by DB/Yii; so remove it from validation `rules()` - if (in_array($attribute->columnName, ['id', $this->model->pkName]) || - in_array($attribute->propertyName, ['id', $this->model->pkName]) - ) { + if ($this->isIdColumn($attribute)) { continue; } $this->resolveAttributeRules($attribute); } + foreach ($this->model->indexes as $index) { + if ($index->isUnique) { + $this->addUniqueRule($index->columns); + } + } + + if (!empty($this->typeScope['ref'])) { + $this->addExistRules($this->typeScope['ref']); + } + if (!empty($this->typeScope['safe'])) { $this->rules['safe'] = new ValidationRule($this->typeScope['safe'], 'safe'); } - if (!empty($this->typeScope['required'])) { - $this->rules['required'] = new ValidationRule($this->typeScope['required'], 'required'); - } + return $this->rules; } @@ -93,7 +101,7 @@ private function resolveAttributeRules(Attribute $attribute):void } if ($attribute->phpType === 'bool' || $attribute->phpType === 'boolean') { $this->rules[$attribute->columnName . '_boolean'] = new ValidationRule([$attribute->columnName], 'boolean'); - $this->defaultRule($attribute); +// $this->defaultRule($attribute); return; } @@ -111,13 +119,13 @@ private function resolveAttributeRules(Attribute $attribute):void } $this->rules[$key] = new ValidationRule([$attribute->columnName], $attribute->dbType, $params); - $this->defaultRule($attribute); +// $this->defaultRule($attribute); return; } if (in_array($attribute->phpType, ['int', 'integer', 'double', 'float']) && !$attribute->isReference()) { $this->addNumericRule($attribute); - $this->defaultRule($attribute); +// $this->defaultRule($attribute); return; } if ($attribute->phpType === 'string' && !$attribute->isReference()) { @@ -127,10 +135,10 @@ private function resolveAttributeRules(Attribute $attribute):void $key = $attribute->columnName . '_in'; $this->rules[$key] = new ValidationRule([$attribute->columnName], 'in', ['range' => $attribute->enumValues]); - $this->defaultRule($attribute); +// $this->defaultRule($attribute); // TODO remove return; } - $this->defaultRule($attribute); +// $this->defaultRule($attribute); $this->addRulesByAttributeName($attribute); } @@ -278,4 +286,15 @@ public function __toString() } }; } + + private function isIdColumn(Attribute $attribute): bool + { + // column/field/property with name `id` is considered as Primary Key by this library, and it is automatically handled by DB/Yii; so remove it from validation `rules()` + if (in_array($attribute->columnName, ['id', $this->model->pkName]) || + in_array($attribute->propertyName, ['id', $this->model->pkName]) + ) { + return true; + } + return false; + } } diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.yaml b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.yaml index 889ab5b3..7081de94 100644 --- a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.yaml +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.yaml @@ -23,6 +23,7 @@ components: maxLength: 128 paymentMethodName: type: string + default: card verified: type: boolean default: false diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/migrations_mysql_db/m200000_000000_create_table_accounts.php b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/migrations_mysql_db/m200000_000000_create_table_accounts.php index e59c2946..584fc0ee 100644 --- a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/migrations_mysql_db/m200000_000000_create_table_accounts.php +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/migrations_mysql_db/m200000_000000_create_table_accounts.php @@ -9,7 +9,7 @@ public function up() { $this->createTable('{{%accounts}}', [ 'id' => $this->primaryKey(), - 'name' => $this->string(128)->notNull(), + 'name' => $this->string(128)->notNull()->comment('account name'), 'paymentMethodName' => $this->text()->null(), 'verified' => $this->boolean()->notNull()->defaultValue(false), ]); diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php index 96b515cf..ef3aba9e 100644 --- a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php @@ -1,5 +1,9 @@ [['name', 'paymentMethodName'], 'trim'], + 'required' => [['name', 'verified'], 'required'], 'name_string' => [['name'], 'string', 'max' => 128], 'paymentMethodName_string' => [['paymentMethodName'], 'string'], 'verified_boolean' => [['verified'], 'boolean'], 'verified_default' => [['verified'], 'default', 'value' => false], - 'required' => [['name', 'verified'], 'required'], ]; } } diff --git a/tests/unit/IssueFixTest.php b/tests/unit/IssueFixTest.php index dc67b4a9..ad3ff8fd 100644 --- a/tests/unit/IssueFixTest.php +++ b/tests/unit/IssueFixTest.php @@ -1001,7 +1001,7 @@ public function test74InvalidSchemaReferenceError() $this->runActualMigrations(); } - // https://github.com/php-openapi/yii2-openapi/issues/22 + // https://github.com/php-openapi/yii2-openapi/issues/22 public function test22BugRulesRequiredIsGeneratedBeforeDefault() { $testFile = Yii::getAlias("@specs/issue_fix/22_bug_rules_required_is_generated_before_default/index.php"); @@ -1014,5 +1014,4 @@ public function test22BugRulesRequiredIsGeneratedBeforeDefault() ]); $this->checkFiles($actualFiles, $expectedFiles); } - } From 6dd3242b93528c563582e72595c3aff509e32428 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Thu, 20 Feb 2025 15:16:56 +0530 Subject: [PATCH 06/11] Fix test --- .../mysql/models/base/Account.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php index ef3aba9e..dc19672e 100644 --- a/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php +++ b/tests/specs/issue_fix/22_bug_rules_required_is_generated_before_default/mysql/models/base/Account.php @@ -26,11 +26,12 @@ public function rules() { return [ 'trim' => [['name', 'paymentMethodName'], 'trim'], + 'paymentMethodName_default' => [['paymentMethodName'], 'default', 'value' => 'card'], + 'verified_default' => [['verified'], 'default', 'value' => false], 'required' => [['name', 'verified'], 'required'], 'name_string' => [['name'], 'string', 'max' => 128], 'paymentMethodName_string' => [['paymentMethodName'], 'string'], 'verified_boolean' => [['verified'], 'boolean'], - 'verified_default' => [['verified'], 'default', 'value' => false], ]; } } From bfaae12f1e8c753310dd464312de8894acec72cc Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Thu, 20 Feb 2025 15:44:38 +0530 Subject: [PATCH 07/11] Fix failing tests --- tests/specs/blog/models/base/Category.php | 6 +++--- tests/specs/blog/models/base/Comment.php | 8 ++++---- tests/specs/blog/models/base/Fakerable.php | 2 +- tests/specs/blog/models/base/Post.php | 16 +++++++-------- tests/specs/blog/models/base/User.php | 12 +++++------ tests/specs/blog_v2/models/base/Category.php | 2 +- tests/specs/blog_v2/models/base/Comment.php | 10 +++++----- tests/specs/blog_v2/models/base/Post.php | 14 ++++++------- tests/specs/blog_v2/models/base/Tag.php | 4 ++-- tests/specs/blog_v2/models/base/User.php | 8 ++++---- .../app/models/base/ColumnNameChange.php | 2 +- .../app/models/base/ColumnNameChange.php | 2 +- .../app/models/base/ColumnNameChange.php | 2 +- .../fk_col_name/app/models/base/User.php | 2 +- .../fk_col_name/app/models/base/Webhook.php | 2 +- .../app/models/base/User.php | 2 +- .../app/models/base/Webhook.php | 14 ++++++------- tests/specs/many2many/models/base/Photo.php | 2 +- tests/specs/many2many/models/base/Post.php | 2 +- .../many2many/models/base/PostsGallery.php | 2 +- tests/specs/many2many/models/base/Tag.php | 2 +- tests/specs/menu/models/base/Menu.php | 8 ++++---- tests/specs/petstore/models/base/Pet.php | 6 +++--- tests/specs/petstore/models/base/Store.php | 2 +- .../petstore_arrayref/models/base/Pet.php | 2 +- .../petstore_jsonapi/models/base/Doctor.php | 2 +- .../petstore_jsonapi/models/base/Pet.php | 2 +- .../models/base/PetStatistic.php | 4 ++-- .../petstore_namespace/mymodels/base/Pet.php | 6 +++--- .../mymodels/base/Store.php | 2 +- .../petstore_wrapped/models/base/Pet.php | 2 +- .../specs/petstore_xtable/models/base/Pet.php | 2 +- .../postgres_custom/models/base/Custom.php | 6 +++--- .../maria/edit/app/models/base/Fruit.php | 20 +++++++++---------- .../edit_expression/app/models/base/Fruit.php | 20 +++++++++---------- .../maria/simple/app/models/base/Fruit.php | 20 +++++++++---------- .../mysql/edit/app/models/base/Fruit.php | 20 +++++++++---------- .../edit_expression/app/models/base/Fruit.php | 20 +++++++++---------- .../mysql/simple/app/models/base/Fruit.php | 20 +++++++++---------- .../pgsql/edit/app/models/base/Fruit.php | 20 +++++++++---------- .../edit_expression/app/models/base/Fruit.php | 20 +++++++++---------- .../pgsql/simple/app/models/base/Fruit.php | 20 +++++++++---------- 42 files changed, 170 insertions(+), 170 deletions(-) diff --git a/tests/specs/blog/models/base/Category.php b/tests/specs/blog/models/base/Category.php index f232a812..188ec03c 100644 --- a/tests/specs/blog/models/base/Category.php +++ b/tests/specs/blog/models/base/Category.php @@ -26,11 +26,11 @@ public function rules() { return [ 'trim' => [['title'], 'trim'], - 'title_unique' => [['title'], 'unique'], - 'title_string' => [['title'], 'string', 'max' => 255], - 'active_boolean' => [['active'], 'boolean'], 'active_default' => [['active'], 'default', 'value' => false], 'required' => [['title', 'active'], 'required'], + 'title_string' => [['title'], 'string', 'max' => 255], + 'active_boolean' => [['active'], 'boolean'], + 'title_unique' => [['title'], 'unique'], ]; } diff --git a/tests/specs/blog/models/base/Comment.php b/tests/specs/blog/models/base/Comment.php index 8c61d482..f6e03bca 100644 --- a/tests/specs/blog/models/base/Comment.php +++ b/tests/specs/blog/models/base/Comment.php @@ -30,15 +30,15 @@ public function rules() { return [ 'trim' => [['post_id'], 'trim'], + 'message_default' => [['message'], 'default', 'value' => []], + 'meta_data_default' => [['meta_data'], 'default', 'value' => []], + 'required' => [['post_id', 'author_id', 'message', 'created_at'], 'required'], + 'created_at_integer' => [['created_at'], 'integer'], 'post_id_string' => [['post_id'], 'string', 'max' => 128], 'post_id_exist' => [['post_id'], 'exist', 'targetRelation' => 'post'], 'author_id_integer' => [['author_id'], 'integer'], 'author_id_exist' => [['author_id'], 'exist', 'targetRelation' => 'author'], - 'message_default' => [['message'], 'default', 'value' => []], - 'meta_data_default' => [['meta_data'], 'default', 'value' => []], - 'created_at_integer' => [['created_at'], 'integer'], 'safe' => [['message', 'meta_data'], 'safe'], - 'required' => [['post_id', 'author_id', 'message', 'created_at'], 'required'], ]; } diff --git a/tests/specs/blog/models/base/Fakerable.php b/tests/specs/blog/models/base/Fakerable.php index a00ac9ae..9ba7a049 100644 --- a/tests/specs/blog/models/base/Fakerable.php +++ b/tests/specs/blog/models/base/Fakerable.php @@ -37,12 +37,12 @@ public function rules() { return [ 'trim' => [['str_text', 'str_varchar', 'str_date', 'str_datetime', 'str_country'], 'trim'], + 'int_min_default' => [['int_min'], 'default', 'value' => 3], 'active_boolean' => [['active'], 'boolean'], 'floatval_double' => [['floatval'], 'double'], 'floatval_lim_double' => [['floatval_lim'], 'double', 'min' => 0, 'max' => 1], 'doubleval_double' => [['doubleval'], 'double'], 'int_min_integer' => [['int_min'], 'integer', 'min' => 5], - 'int_min_default' => [['int_min'], 'default', 'value' => 3], 'int_max_integer' => [['int_max'], 'integer', 'max' => 5], 'int_minmax_integer' => [['int_minmax'], 'integer', 'min' => 5, 'max' => 25], 'int_created_at_integer' => [['int_created_at'], 'integer'], diff --git a/tests/specs/blog/models/base/Post.php b/tests/specs/blog/models/base/Post.php index 88bcb422..633de3f4 100644 --- a/tests/specs/blog/models/base/Post.php +++ b/tests/specs/blog/models/base/Post.php @@ -32,18 +32,18 @@ public function rules() { return [ 'trim' => [['title', 'slug', 'created_at'], 'trim'], - 'category_id_integer' => [['category_id'], 'integer'], - 'category_id_exist' => [['category_id'], 'exist', 'targetRelation' => 'category'], - 'created_by_id_integer' => [['created_by_id'], 'integer'], - 'created_by_id_exist' => [['created_by_id'], 'exist', 'targetRelation' => 'createdBy'], - 'title_unique' => [['title'], 'unique'], - 'slug_unique' => [['slug'], 'unique'], + 'active_default' => [['active'], 'default', 'value' => false], + 'required' => [['title', 'category_id', 'active'], 'required'], 'title_string' => [['title'], 'string', 'max' => 255], 'slug_string' => [['slug'], 'string', 'min' => 1, 'max' => 200], 'active_boolean' => [['active'], 'boolean'], - 'active_default' => [['active'], 'default', 'value' => false], 'created_at_date' => [['created_at'], 'date', 'format' => 'php:Y-m-d'], - 'required' => [['title', 'category_id', 'active'], 'required'], + 'title_unique' => [['title'], 'unique'], + 'slug_unique' => [['slug'], 'unique'], + 'category_id_integer' => [['category_id'], 'integer'], + 'category_id_exist' => [['category_id'], 'exist', 'targetRelation' => 'category'], + 'created_by_id_integer' => [['created_by_id'], 'integer'], + 'created_by_id_exist' => [['created_by_id'], 'exist', 'targetRelation' => 'createdBy'], ]; } diff --git a/tests/specs/blog/models/base/User.php b/tests/specs/blog/models/base/User.php index 7d864029..dbd3a708 100644 --- a/tests/specs/blog/models/base/User.php +++ b/tests/specs/blog/models/base/User.php @@ -29,19 +29,19 @@ public function rules() { return [ 'trim' => [['username', 'email', 'password', 'role', 'created_at'], 'trim'], - 'username_unique' => [['username'], 'unique'], - 'email_unique' => [['email'], 'unique'], + 'role_default' => [['role'], 'default', 'value' => 'reader'], + 'flags_default' => [['flags'], 'default', 'value' => 0], + 'created_at_default' => [['created_at'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], + 'required' => [['username', 'email', 'password'], 'required'], 'username_string' => [['username'], 'string', 'max' => 200], 'email_string' => [['email'], 'string', 'max' => 200], 'email_email' => [['email'], 'email'], 'password_string' => [['password'], 'string'], 'role_string' => [['role'], 'string', 'max' => 20], - 'role_default' => [['role'], 'default', 'value' => 'reader'], 'flags_integer' => [['flags'], 'integer'], - 'flags_default' => [['flags'], 'default', 'value' => 0], 'created_at_datetime' => [['created_at'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], - 'required' => [['username', 'email', 'password'], 'required'], - 'created_at_default' => [['created_at'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], + 'username_unique' => [['username'], 'unique'], + 'email_unique' => [['email'], 'unique'], ]; } diff --git a/tests/specs/blog_v2/models/base/Category.php b/tests/specs/blog_v2/models/base/Category.php index 30004957..4207f516 100644 --- a/tests/specs/blog_v2/models/base/Category.php +++ b/tests/specs/blog_v2/models/base/Category.php @@ -27,10 +27,10 @@ public function rules() { return [ 'trim' => [['title', 'cover'], 'trim'], + 'required' => [['title', 'cover', 'active'], 'required'], 'title_string' => [['title'], 'string', 'max' => 100], 'cover_string' => [['cover'], 'string'], 'active_boolean' => [['active'], 'boolean'], - 'required' => [['title', 'cover', 'active'], 'required'], ]; } diff --git a/tests/specs/blog_v2/models/base/Comment.php b/tests/specs/blog_v2/models/base/Comment.php index bd8b158b..2b4f404a 100644 --- a/tests/specs/blog_v2/models/base/Comment.php +++ b/tests/specs/blog_v2/models/base/Comment.php @@ -30,15 +30,15 @@ public function rules() { return [ 'trim' => [['message', 'meta_data', 'created_at'], 'trim'], + 'meta_data_default' => [['meta_data'], 'default', 'value' => ''], + 'required' => [['post_id', 'message', 'created_at'], 'required'], + 'message_string' => [['message'], 'string'], + 'meta_data_string' => [['meta_data'], 'string', 'min' => 1, 'max' => 300], + 'created_at_datetime' => [['created_at'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'post_id_integer' => [['post_id'], 'integer'], 'post_id_exist' => [['post_id'], 'exist', 'targetRelation' => 'post'], 'user_id_integer' => [['user_id'], 'integer'], 'user_id_exist' => [['user_id'], 'exist', 'targetRelation' => 'user'], - 'message_string' => [['message'], 'string'], - 'meta_data_string' => [['meta_data'], 'string', 'min' => 1, 'max' => 300], - 'meta_data_default' => [['meta_data'], 'default', 'value' => ''], - 'created_at_datetime' => [['created_at'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], - 'required' => [['post_id', 'message', 'created_at'], 'required'], ]; } diff --git a/tests/specs/blog_v2/models/base/Post.php b/tests/specs/blog_v2/models/base/Post.php index 39abf38a..debc5008 100644 --- a/tests/specs/blog_v2/models/base/Post.php +++ b/tests/specs/blog_v2/models/base/Post.php @@ -34,11 +34,8 @@ public function rules() { return [ 'trim' => [['title', 'slug', 'created_at'], 'trim'], - 'category_id_integer' => [['category_id'], 'integer'], - 'category_id_exist' => [['category_id'], 'exist', 'targetRelation' => 'category'], - 'created_by_id_integer' => [['created_by_id'], 'integer'], - 'created_by_id_exist' => [['created_by_id'], 'exist', 'targetRelation' => 'createdBy'], - 'title_unique' => [['title'], 'unique'], + 'lang_default' => [['lang'], 'default', 'value' => 'ru'], + 'required' => [['title', 'category_id', 'active'], 'required'], 'title_string' => [['title'], 'string', 'max' => 255], 'slug_string' => [['slug'], 'string', 'min' => 1, 'max' => 200], 'lang_string' => [['lang'], 'string'], @@ -46,10 +43,13 @@ public function rules() 'ru', 'eng', ]], - 'lang_default' => [['lang'], 'default', 'value' => 'ru'], 'active_boolean' => [['active'], 'boolean'], 'created_at_date' => [['created_at'], 'date', 'format' => 'php:Y-m-d'], - 'required' => [['title', 'category_id', 'active'], 'required'], + 'title_unique' => [['title'], 'unique'], + 'category_id_integer' => [['category_id'], 'integer'], + 'category_id_exist' => [['category_id'], 'exist', 'targetRelation' => 'category'], + 'created_by_id_integer' => [['created_by_id'], 'integer'], + 'created_by_id_exist' => [['created_by_id'], 'exist', 'targetRelation' => 'createdBy'], ]; } diff --git a/tests/specs/blog_v2/models/base/Tag.php b/tests/specs/blog_v2/models/base/Tag.php index 9dcaeb4e..b81a84b2 100644 --- a/tests/specs/blog_v2/models/base/Tag.php +++ b/tests/specs/blog_v2/models/base/Tag.php @@ -26,14 +26,14 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_unique' => [['name'], 'unique'], + 'required' => [['name', 'lang'], 'required'], 'name_string' => [['name'], 'string', 'max' => 100], 'lang_string' => [['lang'], 'string'], 'lang_in' => [['lang'], 'in', 'range' => [ 'ru', 'eng', ]], - 'required' => [['name', 'lang'], 'required'], + 'name_unique' => [['name'], 'unique'], ]; } diff --git a/tests/specs/blog_v2/models/base/User.php b/tests/specs/blog_v2/models/base/User.php index 761092c8..45c5b4e0 100644 --- a/tests/specs/blog_v2/models/base/User.php +++ b/tests/specs/blog_v2/models/base/User.php @@ -29,8 +29,8 @@ public function rules() { return [ 'trim' => [['login', 'email', 'password', 'created_at'], 'trim'], - 'login_unique' => [['login'], 'unique'], - 'email_unique' => [['email'], 'unique'], + 'flags_default' => [['flags'], 'default', 'value' => 0], + 'required' => [['login', 'email', 'password'], 'required'], 'login_string' => [['login'], 'string'], 'email_string' => [['email'], 'string', 'max' => 255], 'email_email' => [['email'], 'email'], @@ -42,9 +42,9 @@ public function rules() 'reader', ]], 'flags_integer' => [['flags'], 'integer'], - 'flags_default' => [['flags'], 'default', 'value' => 0], 'created_at_datetime' => [['created_at'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], - 'required' => [['login', 'email', 'password'], 'required'], + 'login_unique' => [['login'], 'unique'], + 'email_unique' => [['email'], 'unique'], ]; } diff --git a/tests/specs/change_column_name/maria/app/models/base/ColumnNameChange.php b/tests/specs/change_column_name/maria/app/models/base/ColumnNameChange.php index f563af6d..0bd44cf8 100644 --- a/tests/specs/change_column_name/maria/app/models/base/ColumnNameChange.php +++ b/tests/specs/change_column_name/maria/app/models/base/ColumnNameChange.php @@ -25,8 +25,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string', 'max' => 255], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 255], ]; } } diff --git a/tests/specs/change_column_name/mysql/app/models/base/ColumnNameChange.php b/tests/specs/change_column_name/mysql/app/models/base/ColumnNameChange.php index f563af6d..0bd44cf8 100644 --- a/tests/specs/change_column_name/mysql/app/models/base/ColumnNameChange.php +++ b/tests/specs/change_column_name/mysql/app/models/base/ColumnNameChange.php @@ -25,8 +25,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string', 'max' => 255], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 255], ]; } } diff --git a/tests/specs/change_column_name/pgsql/app/models/base/ColumnNameChange.php b/tests/specs/change_column_name/pgsql/app/models/base/ColumnNameChange.php index f881503c..fc0e1abb 100644 --- a/tests/specs/change_column_name/pgsql/app/models/base/ColumnNameChange.php +++ b/tests/specs/change_column_name/pgsql/app/models/base/ColumnNameChange.php @@ -25,8 +25,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string', 'max' => 255], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 255], ]; } } diff --git a/tests/specs/fk_col_name/app/models/base/User.php b/tests/specs/fk_col_name/app/models/base/User.php index f80a7de5..ede2e7c0 100644 --- a/tests/specs/fk_col_name/app/models/base/User.php +++ b/tests/specs/fk_col_name/app/models/base/User.php @@ -24,8 +24,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string'], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/fk_col_name/app/models/base/Webhook.php b/tests/specs/fk_col_name/app/models/base/Webhook.php index 5360f302..a4176122 100644 --- a/tests/specs/fk_col_name/app/models/base/Webhook.php +++ b/tests/specs/fk_col_name/app/models/base/Webhook.php @@ -28,11 +28,11 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], + 'name_string' => [['name'], 'string'], 'user_id_integer' => [['user_id'], 'integer'], 'user_id_exist' => [['user_id'], 'exist', 'targetRelation' => 'user'], 'redelivery_of_integer' => [['redelivery_of'], 'integer'], 'redelivery_of_exist' => [['redelivery_of'], 'exist', 'targetRelation' => 'redeliveryOf'], - 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/fk_col_name_index/app/models/base/User.php b/tests/specs/fk_col_name_index/app/models/base/User.php index f80a7de5..ede2e7c0 100644 --- a/tests/specs/fk_col_name_index/app/models/base/User.php +++ b/tests/specs/fk_col_name_index/app/models/base/User.php @@ -24,8 +24,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string'], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/fk_col_name_index/app/models/base/Webhook.php b/tests/specs/fk_col_name_index/app/models/base/Webhook.php index 0325e083..433d8098 100644 --- a/tests/specs/fk_col_name_index/app/models/base/Webhook.php +++ b/tests/specs/fk_col_name_index/app/models/base/Webhook.php @@ -30,12 +30,7 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'user_id_integer' => [['user_id'], 'integer'], - 'user_id_exist' => [['user_id'], 'exist', 'targetRelation' => 'user'], - 'redelivery_of_integer' => [['redelivery_of'], 'integer'], - 'redelivery_of_exist' => [['redelivery_of'], 'exist', 'targetRelation' => 'redeliveryOf'], - 'rd_abc_2_integer' => [['rd_abc_2'], 'integer'], - 'rd_abc_2_exist' => [['rd_abc_2'], 'exist', 'targetRelation' => 'rd2'], + 'name_string' => [['name'], 'string', 'max' => 255], 'user_id_name_unique' => [['user_id', 'name'], 'unique', 'targetAttribute' => [ 'user_id', 'name', @@ -48,7 +43,12 @@ public function rules() 'rd_abc_2', 'name', ]], - 'name_string' => [['name'], 'string', 'max' => 255], + 'user_id_integer' => [['user_id'], 'integer'], + 'user_id_exist' => [['user_id'], 'exist', 'targetRelation' => 'user'], + 'redelivery_of_integer' => [['redelivery_of'], 'integer'], + 'redelivery_of_exist' => [['redelivery_of'], 'exist', 'targetRelation' => 'redeliveryOf'], + 'rd_abc_2_integer' => [['rd_abc_2'], 'integer'], + 'rd_abc_2_exist' => [['rd_abc_2'], 'exist', 'targetRelation' => 'rd2'], ]; } diff --git a/tests/specs/many2many/models/base/Photo.php b/tests/specs/many2many/models/base/Photo.php index b8fd3cd4..084ff2b9 100644 --- a/tests/specs/many2many/models/base/Photo.php +++ b/tests/specs/many2many/models/base/Photo.php @@ -30,8 +30,8 @@ public function rules() { return [ 'trim' => [['filename'], 'trim'], - 'filename_string' => [['filename'], 'string'], 'required' => [['filename'], 'required'], + 'filename_string' => [['filename'], 'string'], ]; } diff --git a/tests/specs/many2many/models/base/Post.php b/tests/specs/many2many/models/base/Post.php index 9cfe38cb..c802addc 100644 --- a/tests/specs/many2many/models/base/Post.php +++ b/tests/specs/many2many/models/base/Post.php @@ -31,8 +31,8 @@ public function rules() { return [ 'trim' => [['title'], 'trim'], - 'title_string' => [['title'], 'string'], 'required' => [['title'], 'required'], + 'title_string' => [['title'], 'string'], ]; } diff --git a/tests/specs/many2many/models/base/PostsGallery.php b/tests/specs/many2many/models/base/PostsGallery.php index 30e01949..f92d0508 100644 --- a/tests/specs/many2many/models/base/PostsGallery.php +++ b/tests/specs/many2many/models/base/PostsGallery.php @@ -26,11 +26,11 @@ public static function tableName() public function rules() { return [ + 'is_cover_boolean' => [['is_cover'], 'boolean'], 'image_id_integer' => [['image_id'], 'integer'], 'image_id_exist' => [['image_id'], 'exist', 'targetRelation' => 'image'], 'article_id_integer' => [['article_id'], 'integer'], 'article_id_exist' => [['article_id'], 'exist', 'targetRelation' => 'article'], - 'is_cover_boolean' => [['is_cover'], 'boolean'], ]; } diff --git a/tests/specs/many2many/models/base/Tag.php b/tests/specs/many2many/models/base/Tag.php index 30e370c1..16c0e038 100644 --- a/tests/specs/many2many/models/base/Tag.php +++ b/tests/specs/many2many/models/base/Tag.php @@ -25,8 +25,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string'], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/menu/models/base/Menu.php b/tests/specs/menu/models/base/Menu.php index 1850f2ed..db5a24da 100644 --- a/tests/specs/menu/models/base/Menu.php +++ b/tests/specs/menu/models/base/Menu.php @@ -29,9 +29,6 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'parent_id_integer' => [['parent_id'], 'integer'], - 'parent_id_exist' => [['parent_id'], 'exist', 'targetRelation' => 'parent'], - 'name_string' => [['name'], 'string', 'min' => 3, 'max' => 100], 'args_default' => [['args'], 'default', 'value' => [ 'foo', 'bar', @@ -45,8 +42,11 @@ public function rules() 'buzz' => 'fizz', ], ]], - 'safe' => [['args', 'kwargs'], 'safe'], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string', 'min' => 3, 'max' => 100], + 'parent_id_integer' => [['parent_id'], 'integer'], + 'parent_id_exist' => [['parent_id'], 'exist', 'targetRelation' => 'parent'], + 'safe' => [['args', 'kwargs'], 'safe'], ]; } diff --git a/tests/specs/petstore/models/base/Pet.php b/tests/specs/petstore/models/base/Pet.php index 591cb37d..eb6fc009 100644 --- a/tests/specs/petstore/models/base/Pet.php +++ b/tests/specs/petstore/models/base/Pet.php @@ -27,11 +27,11 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], - 'store_id_integer' => [['store_id'], 'integer'], - 'store_id_exist' => [['store_id'], 'exist', 'targetRelation' => 'store'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], - 'required' => [['name'], 'required'], + 'store_id_integer' => [['store_id'], 'integer'], + 'store_id_exist' => [['store_id'], 'exist', 'targetRelation' => 'store'], ]; } diff --git a/tests/specs/petstore/models/base/Store.php b/tests/specs/petstore/models/base/Store.php index 381b7718..9589d1b8 100644 --- a/tests/specs/petstore/models/base/Store.php +++ b/tests/specs/petstore/models/base/Store.php @@ -24,8 +24,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string'], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/petstore_arrayref/models/base/Pet.php b/tests/specs/petstore_arrayref/models/base/Pet.php index 60a1edab..2256302d 100644 --- a/tests/specs/petstore_arrayref/models/base/Pet.php +++ b/tests/specs/petstore_arrayref/models/base/Pet.php @@ -26,9 +26,9 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], - 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/petstore_jsonapi/models/base/Doctor.php b/tests/specs/petstore_jsonapi/models/base/Doctor.php index 32f6ca70..b13bdaa5 100644 --- a/tests/specs/petstore_jsonapi/models/base/Doctor.php +++ b/tests/specs/petstore_jsonapi/models/base/Doctor.php @@ -29,10 +29,10 @@ public function rules() { return [ 'trim' => [['name', 'surname'], 'trim'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 200], 'surname_string' => [['surname'], 'string', 'max' => 200], 'safe' => [['phones'], 'safe'], - 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/petstore_jsonapi/models/base/Pet.php b/tests/specs/petstore_jsonapi/models/base/Pet.php index fec70af0..6444cf28 100644 --- a/tests/specs/petstore_jsonapi/models/base/Pet.php +++ b/tests/specs/petstore_jsonapi/models/base/Pet.php @@ -52,10 +52,10 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'petCode'], 'trim'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], 'petCode_string' => [['petCode'], 'string', 'max' => 50], - 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/petstore_jsonapi/models/base/PetStatistic.php b/tests/specs/petstore_jsonapi/models/base/PetStatistic.php index adc6e8fd..444acfac 100644 --- a/tests/specs/petstore_jsonapi/models/base/PetStatistic.php +++ b/tests/specs/petstore_jsonapi/models/base/PetStatistic.php @@ -53,12 +53,12 @@ public function rules() { return [ 'trim' => [['title', 'summary'], 'trim'], - 'parentPet_id_integer' => [['parentPet_id'], 'integer'], - 'parentPet_id_exist' => [['parentPet_id'], 'exist', 'targetRelation' => 'parentPet'], 'title_string' => [['title'], 'string'], 'dogsCount_integer' => [['dogsCount'], 'integer'], 'catsCount_integer' => [['catsCount'], 'integer'], 'summary_string' => [['summary'], 'string'], + 'parentPet_id_integer' => [['parentPet_id'], 'integer'], + 'parentPet_id_exist' => [['parentPet_id'], 'exist', 'targetRelation' => 'parentPet'], ]; } } diff --git a/tests/specs/petstore_namespace/mymodels/base/Pet.php b/tests/specs/petstore_namespace/mymodels/base/Pet.php index 7bc2a903..4ab206a3 100644 --- a/tests/specs/petstore_namespace/mymodels/base/Pet.php +++ b/tests/specs/petstore_namespace/mymodels/base/Pet.php @@ -27,11 +27,11 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], - 'store_id_integer' => [['store_id'], 'integer'], - 'store_id_exist' => [['store_id'], 'exist', 'targetRelation' => 'store'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], - 'required' => [['name'], 'required'], + 'store_id_integer' => [['store_id'], 'integer'], + 'store_id_exist' => [['store_id'], 'exist', 'targetRelation' => 'store'], ]; } diff --git a/tests/specs/petstore_namespace/mymodels/base/Store.php b/tests/specs/petstore_namespace/mymodels/base/Store.php index c8ac73b8..24d0f4e4 100644 --- a/tests/specs/petstore_namespace/mymodels/base/Store.php +++ b/tests/specs/petstore_namespace/mymodels/base/Store.php @@ -24,8 +24,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string'], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/petstore_wrapped/models/base/Pet.php b/tests/specs/petstore_wrapped/models/base/Pet.php index aeb66135..9a51e269 100644 --- a/tests/specs/petstore_wrapped/models/base/Pet.php +++ b/tests/specs/petstore_wrapped/models/base/Pet.php @@ -25,9 +25,9 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], - 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/petstore_xtable/models/base/Pet.php b/tests/specs/petstore_xtable/models/base/Pet.php index aeb66135..9a51e269 100644 --- a/tests/specs/petstore_xtable/models/base/Pet.php +++ b/tests/specs/petstore_xtable/models/base/Pet.php @@ -25,9 +25,9 @@ public function rules() { return [ 'trim' => [['name', 'tag'], 'trim'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], - 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/postgres_custom/models/base/Custom.php b/tests/specs/postgres_custom/models/base/Custom.php index aa1eedd7..9f13aace 100644 --- a/tests/specs/postgres_custom/models/base/Custom.php +++ b/tests/specs/postgres_custom/models/base/Custom.php @@ -30,7 +30,6 @@ public static function tableName() public function rules() { return [ - 'num_integer' => [['num'], 'integer'], 'num_default' => [['num'], 'default', 'value' => 0], 'json1_default' => [['json1'], 'default', 'value' => []], 'json2_default' => [['json2'], 'default', 'value' => []], @@ -46,18 +45,19 @@ public function rules() 'foo' => 'bar', 'bar' => 'baz', ]], + 'status_default' => [['status'], 'default', 'value' => 'draft'], + 'status_x_default' => [['status_x'], 'default', 'value' => 'draft'], + 'num_integer' => [['num'], 'integer'], 'status_string' => [['status'], 'string'], 'status_in' => [['status'], 'in', 'range' => [ 'active', 'draft', ]], - 'status_default' => [['status'], 'default', 'value' => 'draft'], 'status_x_string' => [['status_x'], 'string', 'max' => 10], 'status_x_in' => [['status_x'], 'in', 'range' => [ 'active', 'draft', ]], - 'status_x_default' => [['status_x'], 'default', 'value' => 'draft'], 'safe' => [['json1', 'json2', 'json3', 'json4'], 'safe'], ]; } diff --git a/tests/specs/x_db_default_expression/maria/edit/app/models/base/Fruit.php b/tests/specs/x_db_default_expression/maria/edit/app/models/base/Fruit.php index 77c97900..adea7459 100644 --- a/tests/specs/x_db_default_expression/maria/edit/app/models/base/Fruit.php +++ b/tests/specs/x_db_default_expression/maria/edit/app/models/base/Fruit.php @@ -32,26 +32,26 @@ public function rules() { return [ 'trim' => [['ts', 'ts2', 'ts3', 'ts4', 'ts5', 'ts6', 'd', 'd2', 'd3', 'ts7'], 'trim'], - 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts_default' => [['ts'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts2_default' => [['ts2'], 'default', 'value' => '2011-11-11 00:00:00'], - 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts3_default' => [['ts3'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts4_string' => [['ts4'], 'string'], 'ts4_default' => [['ts4'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts5_string' => [['ts5'], 'string'], 'ts5_default' => [['ts5'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts6_string' => [['ts6'], 'string'], 'ts6_default' => [['ts6'], 'default', 'value' => '2000-11-11 00:00:00'], - 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], 'd_default' => [['d'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd2_string' => [['d2'], 'string'], 'd2_default' => [['d2'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd3_string' => [['d3'], 'string'], 'd3_default' => [['d3'], 'default', 'value' => 'text default'], - 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], 'ts7_default' => [['ts7'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], + 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts4_string' => [['ts4'], 'string'], + 'ts5_string' => [['ts5'], 'string'], + 'ts6_string' => [['ts6'], 'string'], + 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], + 'd2_string' => [['d2'], 'string'], + 'd3_string' => [['d3'], 'string'], + 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], ]; } } diff --git a/tests/specs/x_db_default_expression/maria/edit_expression/app/models/base/Fruit.php b/tests/specs/x_db_default_expression/maria/edit_expression/app/models/base/Fruit.php index 77c97900..adea7459 100644 --- a/tests/specs/x_db_default_expression/maria/edit_expression/app/models/base/Fruit.php +++ b/tests/specs/x_db_default_expression/maria/edit_expression/app/models/base/Fruit.php @@ -32,26 +32,26 @@ public function rules() { return [ 'trim' => [['ts', 'ts2', 'ts3', 'ts4', 'ts5', 'ts6', 'd', 'd2', 'd3', 'ts7'], 'trim'], - 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts_default' => [['ts'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts2_default' => [['ts2'], 'default', 'value' => '2011-11-11 00:00:00'], - 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts3_default' => [['ts3'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts4_string' => [['ts4'], 'string'], 'ts4_default' => [['ts4'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts5_string' => [['ts5'], 'string'], 'ts5_default' => [['ts5'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts6_string' => [['ts6'], 'string'], 'ts6_default' => [['ts6'], 'default', 'value' => '2000-11-11 00:00:00'], - 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], 'd_default' => [['d'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd2_string' => [['d2'], 'string'], 'd2_default' => [['d2'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd3_string' => [['d3'], 'string'], 'd3_default' => [['d3'], 'default', 'value' => 'text default'], - 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], 'ts7_default' => [['ts7'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], + 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts4_string' => [['ts4'], 'string'], + 'ts5_string' => [['ts5'], 'string'], + 'ts6_string' => [['ts6'], 'string'], + 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], + 'd2_string' => [['d2'], 'string'], + 'd3_string' => [['d3'], 'string'], + 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], ]; } } diff --git a/tests/specs/x_db_default_expression/maria/simple/app/models/base/Fruit.php b/tests/specs/x_db_default_expression/maria/simple/app/models/base/Fruit.php index 77c97900..adea7459 100644 --- a/tests/specs/x_db_default_expression/maria/simple/app/models/base/Fruit.php +++ b/tests/specs/x_db_default_expression/maria/simple/app/models/base/Fruit.php @@ -32,26 +32,26 @@ public function rules() { return [ 'trim' => [['ts', 'ts2', 'ts3', 'ts4', 'ts5', 'ts6', 'd', 'd2', 'd3', 'ts7'], 'trim'], - 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts_default' => [['ts'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts2_default' => [['ts2'], 'default', 'value' => '2011-11-11 00:00:00'], - 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts3_default' => [['ts3'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts4_string' => [['ts4'], 'string'], 'ts4_default' => [['ts4'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts5_string' => [['ts5'], 'string'], 'ts5_default' => [['ts5'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts6_string' => [['ts6'], 'string'], 'ts6_default' => [['ts6'], 'default', 'value' => '2000-11-11 00:00:00'], - 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], 'd_default' => [['d'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd2_string' => [['d2'], 'string'], 'd2_default' => [['d2'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd3_string' => [['d3'], 'string'], 'd3_default' => [['d3'], 'default', 'value' => 'text default'], - 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], 'ts7_default' => [['ts7'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], + 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts4_string' => [['ts4'], 'string'], + 'ts5_string' => [['ts5'], 'string'], + 'ts6_string' => [['ts6'], 'string'], + 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], + 'd2_string' => [['d2'], 'string'], + 'd3_string' => [['d3'], 'string'], + 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], ]; } } diff --git a/tests/specs/x_db_default_expression/mysql/edit/app/models/base/Fruit.php b/tests/specs/x_db_default_expression/mysql/edit/app/models/base/Fruit.php index 77c97900..adea7459 100644 --- a/tests/specs/x_db_default_expression/mysql/edit/app/models/base/Fruit.php +++ b/tests/specs/x_db_default_expression/mysql/edit/app/models/base/Fruit.php @@ -32,26 +32,26 @@ public function rules() { return [ 'trim' => [['ts', 'ts2', 'ts3', 'ts4', 'ts5', 'ts6', 'd', 'd2', 'd3', 'ts7'], 'trim'], - 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts_default' => [['ts'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts2_default' => [['ts2'], 'default', 'value' => '2011-11-11 00:00:00'], - 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts3_default' => [['ts3'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts4_string' => [['ts4'], 'string'], 'ts4_default' => [['ts4'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts5_string' => [['ts5'], 'string'], 'ts5_default' => [['ts5'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts6_string' => [['ts6'], 'string'], 'ts6_default' => [['ts6'], 'default', 'value' => '2000-11-11 00:00:00'], - 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], 'd_default' => [['d'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd2_string' => [['d2'], 'string'], 'd2_default' => [['d2'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd3_string' => [['d3'], 'string'], 'd3_default' => [['d3'], 'default', 'value' => 'text default'], - 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], 'ts7_default' => [['ts7'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], + 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts4_string' => [['ts4'], 'string'], + 'ts5_string' => [['ts5'], 'string'], + 'ts6_string' => [['ts6'], 'string'], + 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], + 'd2_string' => [['d2'], 'string'], + 'd3_string' => [['d3'], 'string'], + 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], ]; } } diff --git a/tests/specs/x_db_default_expression/mysql/edit_expression/app/models/base/Fruit.php b/tests/specs/x_db_default_expression/mysql/edit_expression/app/models/base/Fruit.php index 77c97900..adea7459 100644 --- a/tests/specs/x_db_default_expression/mysql/edit_expression/app/models/base/Fruit.php +++ b/tests/specs/x_db_default_expression/mysql/edit_expression/app/models/base/Fruit.php @@ -32,26 +32,26 @@ public function rules() { return [ 'trim' => [['ts', 'ts2', 'ts3', 'ts4', 'ts5', 'ts6', 'd', 'd2', 'd3', 'ts7'], 'trim'], - 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts_default' => [['ts'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts2_default' => [['ts2'], 'default', 'value' => '2011-11-11 00:00:00'], - 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts3_default' => [['ts3'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts4_string' => [['ts4'], 'string'], 'ts4_default' => [['ts4'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts5_string' => [['ts5'], 'string'], 'ts5_default' => [['ts5'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts6_string' => [['ts6'], 'string'], 'ts6_default' => [['ts6'], 'default', 'value' => '2000-11-11 00:00:00'], - 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], 'd_default' => [['d'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd2_string' => [['d2'], 'string'], 'd2_default' => [['d2'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd3_string' => [['d3'], 'string'], 'd3_default' => [['d3'], 'default', 'value' => 'text default'], - 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], 'ts7_default' => [['ts7'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], + 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts4_string' => [['ts4'], 'string'], + 'ts5_string' => [['ts5'], 'string'], + 'ts6_string' => [['ts6'], 'string'], + 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], + 'd2_string' => [['d2'], 'string'], + 'd3_string' => [['d3'], 'string'], + 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], ]; } } diff --git a/tests/specs/x_db_default_expression/mysql/simple/app/models/base/Fruit.php b/tests/specs/x_db_default_expression/mysql/simple/app/models/base/Fruit.php index 77c97900..adea7459 100644 --- a/tests/specs/x_db_default_expression/mysql/simple/app/models/base/Fruit.php +++ b/tests/specs/x_db_default_expression/mysql/simple/app/models/base/Fruit.php @@ -32,26 +32,26 @@ public function rules() { return [ 'trim' => [['ts', 'ts2', 'ts3', 'ts4', 'ts5', 'ts6', 'd', 'd2', 'd3', 'ts7'], 'trim'], - 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts_default' => [['ts'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts2_default' => [['ts2'], 'default', 'value' => '2011-11-11 00:00:00'], - 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts3_default' => [['ts3'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts4_string' => [['ts4'], 'string'], 'ts4_default' => [['ts4'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts5_string' => [['ts5'], 'string'], 'ts5_default' => [['ts5'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts6_string' => [['ts6'], 'string'], 'ts6_default' => [['ts6'], 'default', 'value' => '2000-11-11 00:00:00'], - 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], 'd_default' => [['d'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd2_string' => [['d2'], 'string'], 'd2_default' => [['d2'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd3_string' => [['d3'], 'string'], 'd3_default' => [['d3'], 'default', 'value' => 'text default'], - 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], 'ts7_default' => [['ts7'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], + 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts4_string' => [['ts4'], 'string'], + 'ts5_string' => [['ts5'], 'string'], + 'ts6_string' => [['ts6'], 'string'], + 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], + 'd2_string' => [['d2'], 'string'], + 'd3_string' => [['d3'], 'string'], + 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], ]; } } diff --git a/tests/specs/x_db_default_expression/pgsql/edit/app/models/base/Fruit.php b/tests/specs/x_db_default_expression/pgsql/edit/app/models/base/Fruit.php index 77c97900..adea7459 100644 --- a/tests/specs/x_db_default_expression/pgsql/edit/app/models/base/Fruit.php +++ b/tests/specs/x_db_default_expression/pgsql/edit/app/models/base/Fruit.php @@ -32,26 +32,26 @@ public function rules() { return [ 'trim' => [['ts', 'ts2', 'ts3', 'ts4', 'ts5', 'ts6', 'd', 'd2', 'd3', 'ts7'], 'trim'], - 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts_default' => [['ts'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts2_default' => [['ts2'], 'default', 'value' => '2011-11-11 00:00:00'], - 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts3_default' => [['ts3'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts4_string' => [['ts4'], 'string'], 'ts4_default' => [['ts4'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts5_string' => [['ts5'], 'string'], 'ts5_default' => [['ts5'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts6_string' => [['ts6'], 'string'], 'ts6_default' => [['ts6'], 'default', 'value' => '2000-11-11 00:00:00'], - 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], 'd_default' => [['d'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd2_string' => [['d2'], 'string'], 'd2_default' => [['d2'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd3_string' => [['d3'], 'string'], 'd3_default' => [['d3'], 'default', 'value' => 'text default'], - 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], 'ts7_default' => [['ts7'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], + 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts4_string' => [['ts4'], 'string'], + 'ts5_string' => [['ts5'], 'string'], + 'ts6_string' => [['ts6'], 'string'], + 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], + 'd2_string' => [['d2'], 'string'], + 'd3_string' => [['d3'], 'string'], + 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], ]; } } diff --git a/tests/specs/x_db_default_expression/pgsql/edit_expression/app/models/base/Fruit.php b/tests/specs/x_db_default_expression/pgsql/edit_expression/app/models/base/Fruit.php index 77c97900..adea7459 100644 --- a/tests/specs/x_db_default_expression/pgsql/edit_expression/app/models/base/Fruit.php +++ b/tests/specs/x_db_default_expression/pgsql/edit_expression/app/models/base/Fruit.php @@ -32,26 +32,26 @@ public function rules() { return [ 'trim' => [['ts', 'ts2', 'ts3', 'ts4', 'ts5', 'ts6', 'd', 'd2', 'd3', 'ts7'], 'trim'], - 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts_default' => [['ts'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts2_default' => [['ts2'], 'default', 'value' => '2011-11-11 00:00:00'], - 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts3_default' => [['ts3'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts4_string' => [['ts4'], 'string'], 'ts4_default' => [['ts4'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts5_string' => [['ts5'], 'string'], 'ts5_default' => [['ts5'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts6_string' => [['ts6'], 'string'], 'ts6_default' => [['ts6'], 'default', 'value' => '2000-11-11 00:00:00'], - 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], 'd_default' => [['d'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd2_string' => [['d2'], 'string'], 'd2_default' => [['d2'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd3_string' => [['d3'], 'string'], 'd3_default' => [['d3'], 'default', 'value' => 'text default'], - 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], 'ts7_default' => [['ts7'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], + 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts4_string' => [['ts4'], 'string'], + 'ts5_string' => [['ts5'], 'string'], + 'ts6_string' => [['ts6'], 'string'], + 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], + 'd2_string' => [['d2'], 'string'], + 'd3_string' => [['d3'], 'string'], + 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], ]; } } diff --git a/tests/specs/x_db_default_expression/pgsql/simple/app/models/base/Fruit.php b/tests/specs/x_db_default_expression/pgsql/simple/app/models/base/Fruit.php index 77c97900..adea7459 100644 --- a/tests/specs/x_db_default_expression/pgsql/simple/app/models/base/Fruit.php +++ b/tests/specs/x_db_default_expression/pgsql/simple/app/models/base/Fruit.php @@ -32,26 +32,26 @@ public function rules() { return [ 'trim' => [['ts', 'ts2', 'ts3', 'ts4', 'ts5', 'ts6', 'd', 'd2', 'd3', 'ts7'], 'trim'], - 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts_default' => [['ts'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts2_default' => [['ts2'], 'default', 'value' => '2011-11-11 00:00:00'], - 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'ts3_default' => [['ts3'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts4_string' => [['ts4'], 'string'], 'ts4_default' => [['ts4'], 'default', 'value' => '2022-11-11 00:00:00'], - 'ts5_string' => [['ts5'], 'string'], 'ts5_default' => [['ts5'], 'default', 'value' => new \yii\db\Expression("(CURRENT_TIMESTAMP)")], - 'ts6_string' => [['ts6'], 'string'], 'ts6_default' => [['ts6'], 'default', 'value' => '2000-11-11 00:00:00'], - 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], 'd_default' => [['d'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd2_string' => [['d2'], 'string'], 'd2_default' => [['d2'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], - 'd3_string' => [['d3'], 'string'], 'd3_default' => [['d3'], 'default', 'value' => 'text default'], - 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], 'ts7_default' => [['ts7'], 'default', 'value' => new \yii\db\Expression("(CURRENT_DATE + INTERVAL 1 YEAR)")], + 'ts_datetime' => [['ts'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts2_datetime' => [['ts2'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts3_datetime' => [['ts3'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], + 'ts4_string' => [['ts4'], 'string'], + 'ts5_string' => [['ts5'], 'string'], + 'ts6_string' => [['ts6'], 'string'], + 'd_date' => [['d'], 'date', 'format' => 'php:Y-m-d'], + 'd2_string' => [['d2'], 'string'], + 'd3_string' => [['d3'], 'string'], + 'ts7_date' => [['ts7'], 'date', 'format' => 'php:Y-m-d'], ]; } } From cb0b3d5e790e7e0e9c40c151ef660dfba63d3207 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Thu, 20 Feb 2025 15:51:33 +0530 Subject: [PATCH 08/11] Fix failing tests 2 --- tests/specs/id_not_in_rules/app/models/base/Fruit.php | 2 +- .../mysql/models/base/Ubigpk.php | 2 +- .../app/models/base/Pristine.php | 2 +- .../maria/models/base/Mailing.php | 2 +- .../maria/models/base/Contact.php | 8 ++++---- .../maria/models/base/Mailing.php | 2 +- .../app/models/base/Order.php | 4 ++-- .../pgsql/models/base/Account.php | 2 +- .../pgsql/models/base/Contact.php | 8 ++++---- .../pgsql/models/base/PaymentMethod.php | 4 ++-- .../mysql/models/base/Account.php | 4 ++-- .../mysql/models/base/Menu.php | 2 +- .../mysql/models/base/Post.php | 2 +- .../mysql/models/base/Address.php | 6 +++--- .../app/models/base/Account.php | 2 +- .../app/models/base/E123.php | 2 +- .../specs/relations_in_faker/app/models/base/A123.php | 2 +- .../relations_in_faker/app/models/base/Account.php | 2 +- .../specs/relations_in_faker/app/models/base/B123.php | 2 +- .../relations_in_faker/app/models/base/Domain.php | 4 ++-- .../specs/relations_in_faker/app/models/base/E123.php | 2 +- .../relations_in_faker/app/models/base/Routing.php | 10 +++++----- 22 files changed, 38 insertions(+), 38 deletions(-) diff --git a/tests/specs/id_not_in_rules/app/models/base/Fruit.php b/tests/specs/id_not_in_rules/app/models/base/Fruit.php index d687de14..36a8f42f 100644 --- a/tests/specs/id_not_in_rules/app/models/base/Fruit.php +++ b/tests/specs/id_not_in_rules/app/models/base/Fruit.php @@ -24,8 +24,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string'], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string'], ]; } } diff --git a/tests/specs/issue_fix/132_create_migration_for_drop_table/mysql/models/base/Ubigpk.php b/tests/specs/issue_fix/132_create_migration_for_drop_table/mysql/models/base/Ubigpk.php index 5f8cbf5f..d1ebaa65 100644 --- a/tests/specs/issue_fix/132_create_migration_for_drop_table/mysql/models/base/Ubigpk.php +++ b/tests/specs/issue_fix/132_create_migration_for_drop_table/mysql/models/base/Ubigpk.php @@ -30,6 +30,7 @@ public function rules() { return [ 'trim' => [['name', 'f'], 'trim'], + 'size_default' => [['size'], 'default', 'value' => 'x-small'], 'name_string' => [['name'], 'string', 'max' => 150], 'size_string' => [['size'], 'string'], 'size_in' => [['size'], 'in', 'range' => [ @@ -39,7 +40,6 @@ public function rules() 'large', 'x-large', ]], - 'size_default' => [['size'], 'default', 'value' => 'x-small'], 'd_integer' => [['d'], 'integer'], 'e_integer' => [['e'], 'integer'], 'f_string' => [['f'], 'string', 'max' => 12], diff --git a/tests/specs/issue_fix/153_nullable_false_in_required/app/models/base/Pristine.php b/tests/specs/issue_fix/153_nullable_false_in_required/app/models/base/Pristine.php index f582815e..0aab2fad 100644 --- a/tests/specs/issue_fix/153_nullable_false_in_required/app/models/base/Pristine.php +++ b/tests/specs/issue_fix/153_nullable_false_in_required/app/models/base/Pristine.php @@ -23,9 +23,9 @@ public static function tableName() public function rules() { return [ - 'billing_factor_integer' => [['billing_factor'], 'integer'], 'billing_factor_default' => [['billing_factor'], 'default', 'value' => 100], 'required' => [['billing_factor'], 'required'], + 'billing_factor_integer' => [['billing_factor'], 'integer'], ]; } } diff --git a/tests/specs/issue_fix/158_bug_giiapi_generated_rules_enum_with_trim/maria/models/base/Mailing.php b/tests/specs/issue_fix/158_bug_giiapi_generated_rules_enum_with_trim/maria/models/base/Mailing.php index f5ac5ebc..83a982c1 100644 --- a/tests/specs/issue_fix/158_bug_giiapi_generated_rules_enum_with_trim/maria/models/base/Mailing.php +++ b/tests/specs/issue_fix/158_bug_giiapi_generated_rules_enum_with_trim/maria/models/base/Mailing.php @@ -25,6 +25,7 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 128], 'paymentMethodName_string' => [['paymentMethodName'], 'string'], 'paymentMethodName_in' => [['paymentMethodName'], 'in', 'range' => [ @@ -32,7 +33,6 @@ public function rules() 'cash', 'ewallet', ]], - 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Contact.php b/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Contact.php index d76590f3..a7df2b21 100644 --- a/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Contact.php +++ b/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Contact.php @@ -27,12 +27,12 @@ public function rules() { return [ 'trim' => [['nickname'], 'trim'], - 'mailing_id_integer' => [['mailing_id'], 'integer'], - 'mailing_id_exist' => [['mailing_id'], 'exist', 'targetRelation' => 'mailing'], - 'active_boolean' => [['active'], 'boolean'], 'active_default' => [['active'], 'default', 'value' => false], - 'nickname_string' => [['nickname'], 'string'], 'required' => [['mailing_id'], 'required'], + 'active_boolean' => [['active'], 'boolean'], + 'nickname_string' => [['nickname'], 'string'], + 'mailing_id_integer' => [['mailing_id'], 'integer'], + 'mailing_id_exist' => [['mailing_id'], 'exist', 'targetRelation' => 'mailing'], ]; } diff --git a/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Mailing.php b/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Mailing.php index e1edb8c2..57bb103f 100644 --- a/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Mailing.php +++ b/tests/specs/issue_fix/159_bug_giiapi_generated_rules_emailid/maria/models/base/Mailing.php @@ -25,9 +25,9 @@ public function rules() { return [ 'trim' => [['name', 'paymentMethodName'], 'trim'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 128], 'paymentMethodName_string' => [['paymentMethodName'], 'string'], - 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/issue_fix/162_bug_dollarref_with_x_faker/app/models/base/Order.php b/tests/specs/issue_fix/162_bug_dollarref_with_x_faker/app/models/base/Order.php index 9f23f63a..722e3c53 100644 --- a/tests/specs/issue_fix/162_bug_dollarref_with_x_faker/app/models/base/Order.php +++ b/tests/specs/issue_fix/162_bug_dollarref_with_x_faker/app/models/base/Order.php @@ -27,10 +27,10 @@ public function rules() { return [ 'trim' => [['name', 'name2'], 'trim'], - 'invoice_id_integer' => [['invoice_id'], 'integer'], - 'invoice_id_exist' => [['invoice_id'], 'exist', 'targetRelation' => 'invoice'], 'name_string' => [['name'], 'string'], 'name2_string' => [['name2'], 'string'], + 'invoice_id_integer' => [['invoice_id'], 'integer'], + 'invoice_id_exist' => [['invoice_id'], 'exist', 'targetRelation' => 'invoice'], ]; } diff --git a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Account.php b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Account.php index 68499dfb..cd597631 100644 --- a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Account.php +++ b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Account.php @@ -25,9 +25,9 @@ public function rules() { return [ 'trim' => [['name', 'paymentMethodName'], 'trim'], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 128], 'paymentMethodName_string' => [['paymentMethodName'], 'string'], - 'required' => [['name'], 'required'], ]; } diff --git a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Contact.php b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Contact.php index 385f9ef5..47eeecc0 100644 --- a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Contact.php +++ b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/Contact.php @@ -27,12 +27,12 @@ public function rules() { return [ 'trim' => [['nickname'], 'trim'], - 'account_id_integer' => [['account_id'], 'integer'], - 'account_id_exist' => [['account_id'], 'exist', 'targetRelation' => 'account'], - 'active_boolean' => [['active'], 'boolean'], 'active_default' => [['active'], 'default', 'value' => false], - 'nickname_string' => [['nickname'], 'string'], 'required' => [['account_id'], 'required'], + 'active_boolean' => [['active'], 'boolean'], + 'nickname_string' => [['nickname'], 'string'], + 'account_id_integer' => [['account_id'], 'integer'], + 'account_id_exist' => [['account_id'], 'exist', 'targetRelation' => 'account'], ]; } diff --git a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/PaymentMethod.php b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/PaymentMethod.php index 33575e05..0bc51c6d 100644 --- a/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/PaymentMethod.php +++ b/tests/specs/issue_fix/175_bug_allof_with_multiple_dollarrefs/pgsql/models/base/PaymentMethod.php @@ -24,9 +24,9 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_unique' => [['name'], 'unique'], - 'name_string' => [['name'], 'string', 'max' => 150], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 150], + 'name_unique' => [['name'], 'unique'], ]; } } diff --git a/tests/specs/issue_fix/25_generate_inverse_relations/mysql/models/base/Account.php b/tests/specs/issue_fix/25_generate_inverse_relations/mysql/models/base/Account.php index d3846586..dc8c02f8 100644 --- a/tests/specs/issue_fix/25_generate_inverse_relations/mysql/models/base/Account.php +++ b/tests/specs/issue_fix/25_generate_inverse_relations/mysql/models/base/Account.php @@ -32,14 +32,14 @@ public function rules() return [ 'trim' => [['name', 'paymentMethodName'], 'trim'], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 128], + 'paymentMethodName_string' => [['paymentMethodName'], 'string'], 'user_id_integer' => [['user_id'], 'integer'], 'user_id_exist' => [['user_id'], 'exist', 'targetRelation' => 'user'], 'user2_id_integer' => [['user2_id'], 'integer'], 'user2_id_exist' => [['user2_id'], 'exist', 'targetRelation' => 'user2'], 'user3_integer' => [['user3'], 'integer'], 'user3_exist' => [['user3'], 'exist', 'targetRelation' => 'user3Rel'], - 'name_string' => [['name'], 'string', 'max' => 128], - 'paymentMethodName_string' => [['paymentMethodName'], 'string'], ]; } diff --git a/tests/specs/issue_fix/25_generate_inverse_relations/mysql/models/base/Menu.php b/tests/specs/issue_fix/25_generate_inverse_relations/mysql/models/base/Menu.php index 7f2eb9aa..5360d9cd 100644 --- a/tests/specs/issue_fix/25_generate_inverse_relations/mysql/models/base/Menu.php +++ b/tests/specs/issue_fix/25_generate_inverse_relations/mysql/models/base/Menu.php @@ -28,9 +28,9 @@ public function rules() return [ 'trim' => [['name'], 'trim'], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string', 'min' => 3, 'max' => 100], 'parent_id_integer' => [['parent_id'], 'integer'], 'parent_id_exist' => [['parent_id'], 'exist', 'targetRelation' => 'parent'], - 'name_string' => [['name'], 'string', 'min' => 3, 'max' => 100], ]; } diff --git a/tests/specs/issue_fix/29_extension_fk_column_name_cause_error_in_case_of_column_name_without_underscore/mysql/models/base/Post.php b/tests/specs/issue_fix/29_extension_fk_column_name_cause_error_in_case_of_column_name_without_underscore/mysql/models/base/Post.php index 3cc065c0..605dc271 100644 --- a/tests/specs/issue_fix/29_extension_fk_column_name_cause_error_in_case_of_column_name_without_underscore/mysql/models/base/Post.php +++ b/tests/specs/issue_fix/29_extension_fk_column_name_cause_error_in_case_of_column_name_without_underscore/mysql/models/base/Post.php @@ -26,9 +26,9 @@ public function rules() { return [ 'trim' => [['content'], 'trim'], + 'content_string' => [['content'], 'string'], 'user_integer' => [['user'], 'integer'], 'user_exist' => [['user'], 'exist', 'targetRelation' => 'userRel'], - 'content_string' => [['content'], 'string'], ]; } diff --git a/tests/specs/issue_fix/3_bug_add_remove_property_and_at_the_same_time_change_it_at_x_indexes/mysql/models/base/Address.php b/tests/specs/issue_fix/3_bug_add_remove_property_and_at_the_same_time_change_it_at_x_indexes/mysql/models/base/Address.php index a429e822..fba0ce27 100644 --- a/tests/specs/issue_fix/3_bug_add_remove_property_and_at_the_same_time_change_it_at_x_indexes/mysql/models/base/Address.php +++ b/tests/specs/issue_fix/3_bug_add_remove_property_and_at_the_same_time_change_it_at_x_indexes/mysql/models/base/Address.php @@ -26,13 +26,13 @@ public function rules() { return [ 'trim' => [['name', 'shortName', 'postCode'], 'trim'], + 'name_string' => [['name'], 'string', 'max' => 64], + 'shortName_string' => [['shortName'], 'string', 'max' => 64], + 'postCode_string' => [['postCode'], 'string', 'max' => 64], 'shortName_postCode_unique' => [['shortName', 'postCode'], 'unique', 'targetAttribute' => [ 'shortName', 'postCode', ]], - 'name_string' => [['name'], 'string', 'max' => 64], - 'shortName_string' => [['shortName'], 'string', 'max' => 64], - 'postCode_string' => [['postCode'], 'string', 'max' => 64], ]; } } diff --git a/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/Account.php b/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/Account.php index 7e67f18b..f875eadd 100644 --- a/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/Account.php +++ b/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/Account.php @@ -24,8 +24,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string', 'max' => 40], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 40], ]; } diff --git a/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/E123.php b/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/E123.php index 74685405..f0f30935 100644 --- a/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/E123.php +++ b/tests/specs/issue_fix/model_name_more_than_once_in_faker_148/app/models/base/E123.php @@ -30,13 +30,13 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], + 'name_string' => [['name'], 'string'], 'account_id_integer' => [['account_id'], 'integer'], 'account_id_exist' => [['account_id'], 'exist', 'targetRelation' => 'account'], 'account_2_id_integer' => [['account_2_id'], 'integer'], 'account_2_id_exist' => [['account_2_id'], 'exist', 'targetRelation' => 'account2'], 'account_3_id_integer' => [['account_3_id'], 'integer'], 'account_3_id_exist' => [['account_3_id'], 'exist', 'targetRelation' => 'account3'], - 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/relations_in_faker/app/models/base/A123.php b/tests/specs/relations_in_faker/app/models/base/A123.php index 9be6a778..0c733222 100644 --- a/tests/specs/relations_in_faker/app/models/base/A123.php +++ b/tests/specs/relations_in_faker/app/models/base/A123.php @@ -26,9 +26,9 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], + 'name_string' => [['name'], 'string'], 'b123_id_integer' => [['b123_id'], 'integer'], 'b123_id_exist' => [['b123_id'], 'exist', 'targetRelation' => 'b123'], - 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/relations_in_faker/app/models/base/Account.php b/tests/specs/relations_in_faker/app/models/base/Account.php index 5cba7dbf..e1198a95 100644 --- a/tests/specs/relations_in_faker/app/models/base/Account.php +++ b/tests/specs/relations_in_faker/app/models/base/Account.php @@ -24,8 +24,8 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], - 'name_string' => [['name'], 'string', 'max' => 40], 'required' => [['name'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 40], ]; } diff --git a/tests/specs/relations_in_faker/app/models/base/B123.php b/tests/specs/relations_in_faker/app/models/base/B123.php index f85ffee5..7ad4eb77 100644 --- a/tests/specs/relations_in_faker/app/models/base/B123.php +++ b/tests/specs/relations_in_faker/app/models/base/B123.php @@ -26,9 +26,9 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], + 'name_string' => [['name'], 'string'], 'c123_id_integer' => [['c123_id'], 'integer'], 'c123_id_exist' => [['c123_id'], 'exist', 'targetRelation' => 'c123'], - 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/relations_in_faker/app/models/base/Domain.php b/tests/specs/relations_in_faker/app/models/base/Domain.php index 9b508a35..df6e0822 100644 --- a/tests/specs/relations_in_faker/app/models/base/Domain.php +++ b/tests/specs/relations_in_faker/app/models/base/Domain.php @@ -28,10 +28,10 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], + 'required' => [['name', 'account_id'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 128], 'account_id_integer' => [['account_id'], 'integer'], 'account_id_exist' => [['account_id'], 'exist', 'targetRelation' => 'account'], - 'name_string' => [['name'], 'string', 'max' => 128], - 'required' => [['name', 'account_id'], 'required'], ]; } diff --git a/tests/specs/relations_in_faker/app/models/base/E123.php b/tests/specs/relations_in_faker/app/models/base/E123.php index cefdb5ce..eb950129 100644 --- a/tests/specs/relations_in_faker/app/models/base/E123.php +++ b/tests/specs/relations_in_faker/app/models/base/E123.php @@ -26,9 +26,9 @@ public function rules() { return [ 'trim' => [['name'], 'trim'], + 'name_string' => [['name'], 'string'], 'b123_id_integer' => [['b123_id'], 'integer'], 'b123_id_exist' => [['b123_id'], 'exist', 'targetRelation' => 'b123'], - 'name_string' => [['name'], 'string'], ]; } diff --git a/tests/specs/relations_in_faker/app/models/base/Routing.php b/tests/specs/relations_in_faker/app/models/base/Routing.php index 0a6c00d2..f61885fc 100644 --- a/tests/specs/relations_in_faker/app/models/base/Routing.php +++ b/tests/specs/relations_in_faker/app/models/base/Routing.php @@ -34,17 +34,17 @@ public function rules() { return [ 'trim' => [['path', 'service'], 'trim'], + 'required' => [['domain_id'], 'required'], + 'path_string' => [['path'], 'string', 'max' => 255], + 'ssl_boolean' => [['ssl'], 'boolean'], + 'redirect_to_ssl_boolean' => [['redirect_to_ssl'], 'boolean'], + 'service_string' => [['service'], 'string', 'max' => 255], 'domain_id_integer' => [['domain_id'], 'integer'], 'domain_id_exist' => [['domain_id'], 'exist', 'targetRelation' => 'domain'], 'd123_id_integer' => [['d123_id'], 'integer'], 'd123_id_exist' => [['d123_id'], 'exist', 'targetRelation' => 'd123'], 'a123_id_integer' => [['a123_id'], 'integer'], 'a123_id_exist' => [['a123_id'], 'exist', 'targetRelation' => 'a123'], - 'path_string' => [['path'], 'string', 'max' => 255], - 'ssl_boolean' => [['ssl'], 'boolean'], - 'redirect_to_ssl_boolean' => [['redirect_to_ssl'], 'boolean'], - 'service_string' => [['service'], 'string', 'max' => 255], - 'required' => [['domain_id'], 'required'], ]; } From 754d1fe2c9e40eff8096556b8adcbe574dfe9756 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Thu, 20 Feb 2025 15:53:08 +0530 Subject: [PATCH 09/11] Fix failing tests --- .../models/mariamodel/base/Alldbdatatype.php | 20 ++++++++-------- .../app/models/mariamodel/base/Editcolumn.php | 14 +++++------ .../app/models/mariamodel/base/Newcolumn.php | 4 ++-- .../app/models/mariamodel/base/Pristine.php | 6 ++--- .../mysql/app/models/base/Alldbdatatype.php | 20 ++++++++-------- .../mysql/app/models/base/Editcolumn.php | 14 +++++------ .../mysql/app/models/base/Newcolumn.php | 4 ++-- .../mysql/app/models/base/Pristine.php | 6 ++--- .../models/pgsqlmodel/base/Alldbdatatype.php | 24 +++++++++---------- .../app/models/pgsqlmodel/base/Editcolumn.php | 13 +++++----- .../app/models/pgsqlmodel/base/Newcolumn.php | 6 ++--- .../app/models/pgsqlmodel/base/Pristine.php | 6 ++--- 12 files changed, 68 insertions(+), 69 deletions(-) diff --git a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Alldbdatatype.php b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Alldbdatatype.php index c0d7414c..dbbd7ebc 100644 --- a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Alldbdatatype.php +++ b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Alldbdatatype.php @@ -66,6 +66,16 @@ public function rules() { return [ 'trim' => [['string_col', 'varchar_col', 'text_col', 'varchar_4_col', 'char_4_col', 'char_5_col', 'char_6_col', 'char_7_col', 'char_8_col', 'date_col', 'time_col', 'datetime_col', 'timestamp_col', 'year_col', 'text_def'], 'trim'], + 'char_8_col_default' => [['char_8_col'], 'default', 'value' => 'd'], + 'mi_default' => [['mi'], 'default', 'value' => 7], + 'json_col_def_default' => [['json_col_def'], 'default', 'value' => []], + 'json_col_def_2_default' => [['json_col_def_2'], 'default', 'value' => []], + 'blob_def_default' => [['blob_def'], 'default', 'value' => 'the blob'], + 'text_def_default' => [['text_def'], 'default', 'value' => 'the text'], + 'json_def_default' => [['json_def'], 'default', 'value' => [ + 'a' => 'b', + ]], + 'required' => [['char_6_col', 'char_7_col'], 'required'], 'string_col_string' => [['string_col'], 'string', 'max' => 255], 'varchar_col_string' => [['varchar_col'], 'string', 'max' => 132], 'text_col_string' => [['text_col'], 'string'], @@ -75,7 +85,6 @@ public function rules() 'char_6_col_string' => [['char_6_col'], 'string'], 'char_7_col_string' => [['char_7_col'], 'string', 'max' => 6], 'char_8_col_string' => [['char_8_col'], 'string'], - 'char_8_col_default' => [['char_8_col'], 'default', 'value' => 'd'], 'decimal_col_double' => [['decimal_col'], 'double'], 'bit_col_integer' => [['bit_col'], 'integer'], 'bit_2_integer' => [['bit_2'], 'integer'], @@ -86,7 +95,6 @@ public function rules() 'si_col_integer' => [['si_col'], 'integer'], 'si_col_2_integer' => [['si_col_2'], 'integer'], 'mi_integer' => [['mi'], 'integer'], - 'mi_default' => [['mi'], 'default', 'value' => 7], 'bi_integer' => [['bi'], 'integer'], 'int_col_integer' => [['int_col'], 'integer'], 'int_col_2_integer' => [['int_col_2'], 'integer'], @@ -103,16 +111,8 @@ public function rules() 'datetime_col_datetime' => [['datetime_col'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'timestamp_col_string' => [['timestamp_col'], 'string'], 'year_col_string' => [['year_col'], 'string'], - 'json_col_def_default' => [['json_col_def'], 'default', 'value' => []], - 'json_col_def_2_default' => [['json_col_def_2'], 'default', 'value' => []], - 'blob_def_default' => [['blob_def'], 'default', 'value' => 'the blob'], 'text_def_string' => [['text_def'], 'string'], - 'text_def_default' => [['text_def'], 'default', 'value' => 'the text'], - 'json_def_default' => [['json_def'], 'default', 'value' => [ - 'a' => 'b', - ]], 'safe' => [['varbinary_col', 'blob_col', 'json_col', 'json_col_def', 'json_col_def_2', 'blob_def', 'json_def'], 'safe'], - 'required' => [['char_6_col', 'char_7_col'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Editcolumn.php b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Editcolumn.php index e80af28f..acaa29cf 100644 --- a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Editcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Editcolumn.php @@ -34,22 +34,22 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'first_name', 'string_col', 'str_col_def', 'json_col'], 'trim'], - 'name_string' => [['name'], 'string', 'max' => 254], 'name_default' => [['name'], 'default', 'value' => 'Horse-2'], + 'dec_col_default' => [['dec_col'], 'default', 'value' => 3.14], + 'json_col_default' => [['json_col'], 'default', 'value' => 'fox jumps over dog'], + 'json_col_2_default' => [['json_col_2'], 'default', 'value' => []], + 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], + 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], + 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 254], 'tag_string' => [['tag'], 'string'], 'first_name_string' => [['first_name'], 'string', 'max' => 255], 'string_col_string' => [['string_col'], 'string'], 'dec_col_double' => [['dec_col'], 'double'], - 'dec_col_default' => [['dec_col'], 'default', 'value' => 3.14], 'str_col_def_string' => [['str_col_def'], 'string', 'max' => 3], 'json_col_string' => [['json_col'], 'string'], - 'json_col_default' => [['json_col'], 'default', 'value' => 'fox jumps over dog'], - 'json_col_2_default' => [['json_col_2'], 'default', 'value' => []], 'numeric_col_double' => [['numeric_col'], 'double'], - 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], - 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], 'safe' => [['json_col_2', 'json_col_def_n', 'json_col_def_n_2'], 'safe'], - 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Newcolumn.php b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Newcolumn.php index 7bd80227..15e18ee2 100644 --- a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Newcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Newcolumn.php @@ -30,14 +30,14 @@ public function rules() { return [ 'trim' => [['name', 'last_name', 'varchar_col'], 'trim'], + 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 255], 'last_name_string' => [['last_name'], 'string'], 'dec_col_double' => [['dec_col'], 'double'], 'varchar_col_string' => [['varchar_col'], 'string', 'max' => 5], 'numeric_col_double' => [['numeric_col'], 'double'], - 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], 'safe' => [['json_col', 'json_col_def_n'], 'safe'], - 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Pristine.php b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Pristine.php index b109a4e2..fb393cc0 100644 --- a/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Pristine.php +++ b/tests/specs/x_db_type/rules_and_more/maria/app/models/mariamodel/base/Pristine.php @@ -34,10 +34,12 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'new_col', 'col_9', 'col_10', 'col_11'], 'trim'], + 'tag_default' => [['tag'], 'default', 'value' => '4 leg'], + 'price_default' => [['price'], 'default', 'value' => 0], + 'required' => [['custom_id_col', 'name'], 'required'], 'custom_id_col_integer' => [['custom_id_col'], 'integer'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], - 'tag_default' => [['tag'], 'default', 'value' => '4 leg'], 'new_col_string' => [['new_col'], 'string', 'max' => 17], 'col_5_double' => [['col_5'], 'double'], 'col_6_double' => [['col_6'], 'double'], @@ -46,9 +48,7 @@ public function rules() 'col_10_string' => [['col_10'], 'string', 'max' => 10], 'col_11_string' => [['col_11'], 'string'], 'price_double' => [['price'], 'double'], - 'price_default' => [['price'], 'default', 'value' => 0], 'safe' => [['col_8'], 'safe'], - 'required' => [['custom_id_col', 'name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Alldbdatatype.php b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Alldbdatatype.php index 2a9a4052..a9e08518 100644 --- a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Alldbdatatype.php +++ b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Alldbdatatype.php @@ -66,6 +66,16 @@ public function rules() { return [ 'trim' => [['string_col', 'varchar_col', 'text_col', 'varchar_4_col', 'char_4_col', 'char_5_col', 'char_6_col', 'char_7_col', 'char_8_col', 'date_col', 'time_col', 'datetime_col', 'timestamp_col', 'year_col', 'text_def'], 'trim'], + 'char_8_col_default' => [['char_8_col'], 'default', 'value' => 'd'], + 'mi_default' => [['mi'], 'default', 'value' => 7], + 'json_col_def_default' => [['json_col_def'], 'default', 'value' => []], + 'json_col_def_2_default' => [['json_col_def_2'], 'default', 'value' => []], + 'blob_def_default' => [['blob_def'], 'default', 'value' => 'the blob'], + 'text_def_default' => [['text_def'], 'default', 'value' => 'the text'], + 'json_def_default' => [['json_def'], 'default', 'value' => [ + 'a' => 'b', + ]], + 'required' => [['char_6_col', 'char_7_col'], 'required'], 'string_col_string' => [['string_col'], 'string', 'max' => 255], 'varchar_col_string' => [['varchar_col'], 'string', 'max' => 132], 'text_col_string' => [['text_col'], 'string'], @@ -75,7 +85,6 @@ public function rules() 'char_6_col_string' => [['char_6_col'], 'string'], 'char_7_col_string' => [['char_7_col'], 'string', 'max' => 6], 'char_8_col_string' => [['char_8_col'], 'string'], - 'char_8_col_default' => [['char_8_col'], 'default', 'value' => 'd'], 'decimal_col_double' => [['decimal_col'], 'double'], 'bit_col_integer' => [['bit_col'], 'integer'], 'bit_2_integer' => [['bit_2'], 'integer'], @@ -86,7 +95,6 @@ public function rules() 'si_col_integer' => [['si_col'], 'integer'], 'si_col_2_integer' => [['si_col_2'], 'integer'], 'mi_integer' => [['mi'], 'integer'], - 'mi_default' => [['mi'], 'default', 'value' => 7], 'bi_integer' => [['bi'], 'integer'], 'int_col_integer' => [['int_col'], 'integer'], 'int_col_2_integer' => [['int_col_2'], 'integer'], @@ -103,16 +111,8 @@ public function rules() 'datetime_col_datetime' => [['datetime_col'], 'datetime', 'format' => 'php:Y-m-d H:i:s'], 'timestamp_col_string' => [['timestamp_col'], 'string'], 'year_col_string' => [['year_col'], 'string'], - 'json_col_def_default' => [['json_col_def'], 'default', 'value' => []], - 'json_col_def_2_default' => [['json_col_def_2'], 'default', 'value' => []], - 'blob_def_default' => [['blob_def'], 'default', 'value' => 'the blob'], 'text_def_string' => [['text_def'], 'string'], - 'text_def_default' => [['text_def'], 'default', 'value' => 'the text'], - 'json_def_default' => [['json_def'], 'default', 'value' => [ - 'a' => 'b', - ]], 'safe' => [['varbinary_col', 'blob_col', 'json_col', 'json_col_def', 'json_col_def_2', 'blob_def', 'json_def'], 'safe'], - 'required' => [['char_6_col', 'char_7_col'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Editcolumn.php b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Editcolumn.php index dabb711c..fe2d46c5 100644 --- a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Editcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Editcolumn.php @@ -34,22 +34,22 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'first_name', 'string_col', 'str_col_def', 'json_col'], 'trim'], - 'name_string' => [['name'], 'string', 'max' => 254], 'name_default' => [['name'], 'default', 'value' => 'Horse-2'], + 'dec_col_default' => [['dec_col'], 'default', 'value' => 3.14], + 'json_col_default' => [['json_col'], 'default', 'value' => 'fox jumps over dog'], + 'json_col_2_default' => [['json_col_2'], 'default', 'value' => []], + 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], + 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], + 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], + 'name_string' => [['name'], 'string', 'max' => 254], 'tag_string' => [['tag'], 'string'], 'first_name_string' => [['first_name'], 'string', 'max' => 255], 'string_col_string' => [['string_col'], 'string'], 'dec_col_double' => [['dec_col'], 'double'], - 'dec_col_default' => [['dec_col'], 'default', 'value' => 3.14], 'str_col_def_string' => [['str_col_def'], 'string', 'max' => 3], 'json_col_string' => [['json_col'], 'string'], - 'json_col_default' => [['json_col'], 'default', 'value' => 'fox jumps over dog'], - 'json_col_2_default' => [['json_col_2'], 'default', 'value' => []], 'numeric_col_double' => [['numeric_col'], 'double'], - 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], - 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], 'safe' => [['json_col_2', 'json_col_def_n', 'json_col_def_n_2'], 'safe'], - 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Newcolumn.php b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Newcolumn.php index 7420dadd..57669a6e 100644 --- a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Newcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Newcolumn.php @@ -30,14 +30,14 @@ public function rules() { return [ 'trim' => [['name', 'last_name', 'varchar_col'], 'trim'], + 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string', 'max' => 255], 'last_name_string' => [['last_name'], 'string'], 'dec_col_double' => [['dec_col'], 'double'], 'varchar_col_string' => [['varchar_col'], 'string', 'max' => 5], 'numeric_col_double' => [['numeric_col'], 'double'], - 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], 'safe' => [['json_col', 'json_col_def_n'], 'safe'], - 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Pristine.php b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Pristine.php index 3bdbade5..20d17d29 100644 --- a/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Pristine.php +++ b/tests/specs/x_db_type/rules_and_more/mysql/app/models/base/Pristine.php @@ -34,10 +34,12 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'new_col', 'col_9', 'col_10', 'col_11'], 'trim'], + 'tag_default' => [['tag'], 'default', 'value' => '4 leg'], + 'price_default' => [['price'], 'default', 'value' => 0], + 'required' => [['custom_id_col', 'name'], 'required'], 'custom_id_col_integer' => [['custom_id_col'], 'integer'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], - 'tag_default' => [['tag'], 'default', 'value' => '4 leg'], 'new_col_string' => [['new_col'], 'string', 'max' => 17], 'col_5_double' => [['col_5'], 'double'], 'col_6_double' => [['col_6'], 'double'], @@ -46,9 +48,7 @@ public function rules() 'col_10_string' => [['col_10'], 'string', 'max' => 10], 'col_11_string' => [['col_11'], 'string'], 'price_double' => [['price'], 'double'], - 'price_default' => [['price'], 'default', 'value' => 0], 'safe' => [['col_8'], 'safe'], - 'required' => [['custom_id_col', 'name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Alldbdatatype.php b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Alldbdatatype.php index 3483ccea..c1cdc2f2 100644 --- a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Alldbdatatype.php +++ b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Alldbdatatype.php @@ -116,6 +116,18 @@ public function rules() { return [ 'trim' => [['string_col', 'varchar_col', 'text_col', 'varchar_4_col', 'varchar_5_col', 'char_4_col', 'char_5_col', 'char_6_col', 'char_7_col', 'char_8_col', 'date_col', 'time_col', 'time_col_2', 'time_col_3', 'time_col_4', 'timetz_col', 'timetz_col_2', 'timestamp_col', 'timestamp_col_2', 'timestamp_col_3', 'timestamp_col_4', 'timestamptz_col', 'timestamptz_col_2', 'date2', 'timestamp_col_z', 'box_col', 'character_col', 'character_n', 'character_varying', 'character_varying_n', 'text_def', 'cidr_col', 'circle_col', 'date_col_z', 'inet_col', 'interval_col', 'interval_col_2', 'interval_col_3', 'line_col', 'lseg_col', 'macaddr_col', 'money_col', 'path_col', 'point_col', 'polygon_col', 'tsquery_col', 'tsvector_col', 'txid_snapshot_col', 'uuid_col', 'xml_col'], 'trim'], + 'char_8_col_default' => [['char_8_col'], 'default', 'value' => 'd'], + 'json_col_def_default' => [['json_col_def'], 'default', 'value' => []], + 'json_col_def_2_default' => [['json_col_def_2'], 'default', 'value' => []], + 'bytea_def_default' => [['bytea_def'], 'default', 'value' => 'the bytea blob default'], + 'text_def_default' => [['text_def'], 'default', 'value' => 'the text'], + 'json_def_default' => [['json_def'], 'default', 'value' => [ + 'a' => 'b', + ]], + 'jsonb_def_default' => [['jsonb_def'], 'default', 'value' => [ + 'ba' => 'bb', + ]], + 'required' => [['char_6_col', 'char_7_col', 'smallserial_col', 'serial2_col', 'bigserial_col', 'bigserial_col_2', 'serial_col', 'serial4_col'], 'required'], 'string_col_string' => [['string_col'], 'string'], 'varchar_col_string' => [['varchar_col'], 'string'], 'text_col_string' => [['text_col'], 'string'], @@ -126,7 +138,6 @@ public function rules() 'char_6_col_string' => [['char_6_col'], 'string'], 'char_7_col_string' => [['char_7_col'], 'string', 'max' => 6], 'char_8_col_string' => [['char_8_col'], 'string'], - 'char_8_col_default' => [['char_8_col'], 'default', 'value' => 'd'], 'decimal_col_double' => [['decimal_col'], 'double'], 'bit_col_integer' => [['bit_col'], 'integer'], 'bit_2_integer' => [['bit_2'], 'integer'], @@ -177,17 +188,7 @@ public function rules() 'character_n_string' => [['character_n'], 'string', 'max' => 12], 'character_varying_string' => [['character_varying'], 'string'], 'character_varying_n_string' => [['character_varying_n'], 'string', 'max' => 12], - 'json_col_def_default' => [['json_col_def'], 'default', 'value' => []], - 'json_col_def_2_default' => [['json_col_def_2'], 'default', 'value' => []], - 'bytea_def_default' => [['bytea_def'], 'default', 'value' => 'the bytea blob default'], 'text_def_string' => [['text_def'], 'string'], - 'text_def_default' => [['text_def'], 'default', 'value' => 'the text'], - 'json_def_default' => [['json_def'], 'default', 'value' => [ - 'a' => 'b', - ]], - 'jsonb_def_default' => [['jsonb_def'], 'default', 'value' => [ - 'ba' => 'bb', - ]], 'cidr_col_string' => [['cidr_col'], 'string'], 'circle_col_string' => [['circle_col'], 'string'], 'date_col_z_date' => [['date_col_z'], 'date', 'format' => 'php:Y-m-d'], @@ -212,7 +213,6 @@ public function rules() 'uuid_col_string' => [['uuid_col'], 'string'], 'xml_col_string' => [['xml_col'], 'string'], 'safe' => [['text_col_array', 'bytea_col_2', 'json_col', 'jsonb_col', 'json_col_def', 'json_col_def_2', 'bytea_def', 'json_def', 'jsonb_def'], 'safe'], - 'required' => [['char_6_col', 'char_7_col', 'smallserial_col', 'serial2_col', 'bigserial_col', 'bigserial_col_2', 'serial_col', 'serial4_col'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Editcolumn.php b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Editcolumn.php index 03c469d6..4cb00fee 100644 --- a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Editcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Editcolumn.php @@ -35,23 +35,22 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'first_name', 'string_col', 'str_col_def', 'json_col'], 'trim'], + 'name_default' => [['name'], 'default', 'value' => 'Horse-2'], + 'dec_col_default' => [['dec_col'], 'default', 'value' => 3.14], + 'json_col_default' => [['json_col'], 'default', 'value' => 'fox jumps over dog'], + 'json_col_2_default' => [['json_col_2'], 'default', 'value' => []], + 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], + 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2', 'numeric_col'], 'required'], 'name_string' => [['name'], 'string', 'max' => 254], - 'name_default' => [['name'], 'default', 'value' => 'Horse-2'], 'tag_string' => [['tag'], 'string'], 'first_name_string' => [['first_name'], 'string'], 'string_col_string' => [['string_col'], 'string'], 'dec_col_double' => [['dec_col'], 'double'], - 'dec_col_default' => [['dec_col'], 'default', 'value' => 3.14], 'str_col_def_string' => [['str_col_def'], 'string'], 'json_col_string' => [['json_col'], 'string'], - 'json_col_default' => [['json_col'], 'default', 'value' => 'fox jumps over dog'], - 'json_col_2_default' => [['json_col_2'], 'default', 'value' => []], 'numeric_col_double' => [['numeric_col'], 'double'], - 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], - 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], 'safe' => [['json_col_2', 'json_col_def_n', 'json_col_def_n_2', 'text_col_array'], 'safe'], - 'required' => [['name', 'str_col_def', 'json_col', 'json_col_2'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Newcolumn.php b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Newcolumn.php index 397f59a0..d1cf823e 100644 --- a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Newcolumn.php +++ b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Newcolumn.php @@ -33,16 +33,16 @@ public function rules() { return [ 'trim' => [['name', 'first_name', 'last_name', 'varchar_col'], 'trim'], + 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], + 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], + 'required' => [['name'], 'required'], 'name_string' => [['name'], 'string'], 'first_name_string' => [['first_name'], 'string'], 'last_name_string' => [['last_name'], 'string'], 'dec_col_double' => [['dec_col'], 'double'], 'varchar_col_string' => [['varchar_col'], 'string'], 'numeric_col_double' => [['numeric_col'], 'double'], - 'json_col_def_n_default' => [['json_col_def_n'], 'default', 'value' => []], - 'json_col_def_n_2_default' => [['json_col_def_n_2'], 'default', 'value' => []], 'safe' => [['json_col', 'json_col_def_n', 'json_col_def_n_2', 'text_col_array'], 'safe'], - 'required' => [['name'], 'required'], ]; } } diff --git a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Pristine.php b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Pristine.php index a4cfc368..60cc8b35 100644 --- a/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Pristine.php +++ b/tests/specs/x_db_type/rules_and_more/pgsql/app/models/pgsqlmodel/base/Pristine.php @@ -34,10 +34,12 @@ public function rules() { return [ 'trim' => [['name', 'tag', 'new_col', 'col_9', 'col_10', 'col_11'], 'trim'], + 'tag_default' => [['tag'], 'default', 'value' => '4 leg'], + 'price_default' => [['price'], 'default', 'value' => 0], + 'required' => [['custom_id_col', 'name'], 'required'], 'custom_id_col_integer' => [['custom_id_col'], 'integer'], 'name_string' => [['name'], 'string'], 'tag_string' => [['tag'], 'string'], - 'tag_default' => [['tag'], 'default', 'value' => '4 leg'], 'new_col_string' => [['new_col'], 'string'], 'col_5_double' => [['col_5'], 'double'], 'col_6_double' => [['col_6'], 'double'], @@ -46,9 +48,7 @@ public function rules() 'col_10_string' => [['col_10'], 'string'], 'col_11_string' => [['col_11'], 'string'], 'price_double' => [['price'], 'double'], - 'price_default' => [['price'], 'default', 'value' => 0], 'safe' => [['col_8'], 'safe'], - 'required' => [['custom_id_col', 'name'], 'required'], ]; } } From 27145e866506cea520a5e47046ceedf221958122 Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Thu, 20 Feb 2025 15:54:16 +0530 Subject: [PATCH 10/11] Fix failing tests 3 --- .../mysql/models/base/Invoice.php | 2 +- .../mysql/models/base/Product.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/specs/issue_fix/74_invalid_schema_reference_error/mysql/models/base/Invoice.php b/tests/specs/issue_fix/74_invalid_schema_reference_error/mysql/models/base/Invoice.php index d81c8ce3..e46064b8 100644 --- a/tests/specs/issue_fix/74_invalid_schema_reference_error/mysql/models/base/Invoice.php +++ b/tests/specs/issue_fix/74_invalid_schema_reference_error/mysql/models/base/Invoice.php @@ -23,13 +23,13 @@ public static function tableName() public function rules() { return [ + 'vat_rate_default' => [['vat_rate'], 'default', 'value' => 'standard'], 'required' => [['vat_rate'], 'required'], 'vat_rate_string' => [['vat_rate'], 'string'], 'vat_rate_in' => [['vat_rate'], 'in', 'range' => [ 'standard', 'none', ]], - 'vat_rate_default' => [['vat_rate'], 'default', 'value' => 'standard'], ]; } } diff --git a/tests/specs/issue_fix/74_invalid_schema_reference_error/mysql/models/base/Product.php b/tests/specs/issue_fix/74_invalid_schema_reference_error/mysql/models/base/Product.php index 184a6395..e83f3b9e 100644 --- a/tests/specs/issue_fix/74_invalid_schema_reference_error/mysql/models/base/Product.php +++ b/tests/specs/issue_fix/74_invalid_schema_reference_error/mysql/models/base/Product.php @@ -23,13 +23,13 @@ public static function tableName() public function rules() { return [ + 'vat_rate_default' => [['vat_rate'], 'default', 'value' => 'standard'], 'required' => [['vat_rate'], 'required'], 'vat_rate_string' => [['vat_rate'], 'string'], 'vat_rate_in' => [['vat_rate'], 'in', 'range' => [ 'standard', 'none', ]], - 'vat_rate_default' => [['vat_rate'], 'default', 'value' => 'standard'], ]; } } From b87be747fc3e367d07dcfb86c9f4fbf51a4b7e5a Mon Sep 17 00:00:00 2001 From: Sohel Ahmed Mesaniya Date: Thu, 20 Feb 2025 15:56:30 +0530 Subject: [PATCH 11/11] Cleanup --- src/lib/ValidationRulesBuilder.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/lib/ValidationRulesBuilder.php b/src/lib/ValidationRulesBuilder.php index b7d5ef47..33a89949 100644 --- a/src/lib/ValidationRulesBuilder.php +++ b/src/lib/ValidationRulesBuilder.php @@ -101,7 +101,6 @@ private function resolveAttributeRules(Attribute $attribute):void } if ($attribute->phpType === 'bool' || $attribute->phpType === 'boolean') { $this->rules[$attribute->columnName . '_boolean'] = new ValidationRule([$attribute->columnName], 'boolean'); -// $this->defaultRule($attribute); return; } @@ -119,13 +118,11 @@ private function resolveAttributeRules(Attribute $attribute):void } $this->rules[$key] = new ValidationRule([$attribute->columnName], $attribute->dbType, $params); -// $this->defaultRule($attribute); return; } if (in_array($attribute->phpType, ['int', 'integer', 'double', 'float']) && !$attribute->isReference()) { $this->addNumericRule($attribute); -// $this->defaultRule($attribute); return; } if ($attribute->phpType === 'string' && !$attribute->isReference()) { @@ -135,10 +132,8 @@ private function resolveAttributeRules(Attribute $attribute):void $key = $attribute->columnName . '_in'; $this->rules[$key] = new ValidationRule([$attribute->columnName], 'in', ['range' => $attribute->enumValues]); -// $this->defaultRule($attribute); // TODO remove return; } -// $this->defaultRule($attribute); $this->addRulesByAttributeName($attribute); }