Skip to content

Commit b050abd

Browse files
committed
Failing test
1 parent 910e8f5 commit b050abd

File tree

7 files changed

+149
-0
lines changed

7 files changed

+149
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
return [
4+
'openApiPath' => '@specs/issue_fix/88_in_case_of_updating_a_model_generator_creates_redundant_inverse_relations/index.yaml',
5+
'generateUrls' => false,
6+
'generateModels' => true,
7+
'excludeModels' => [
8+
'Error',
9+
],
10+
'generateControllers' => false,
11+
'generateMigrations' => false,
12+
'generateModelFaker' => false, // `generateModels` must be `true` in order to use `generateModelFaker` as `true`
13+
];
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
openapi: "3.0.0"
2+
3+
info:
4+
version: 1.0.0
5+
title: '#88'
6+
7+
paths:
8+
/:
9+
get:
10+
responses:
11+
'200':
12+
description: The response
13+
14+
components:
15+
schemas:
16+
Address:
17+
type: object
18+
properties:
19+
id:
20+
type: integer
21+
name:
22+
type: string
23+
Human:
24+
type: object
25+
properties:
26+
id:
27+
type: integer
28+
name:
29+
type: string
30+
address:
31+
$ref: '#/components/schemas/Address'
32+
33+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace app\models;
4+
5+
class Address extends \app\models\base\Address
6+
{
7+
8+
9+
}
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespace app\models;
4+
5+
class Human extends \app\models\base\Human
6+
{
7+
8+
9+
}
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
/**
4+
* This file is generated by Gii, do not change manually!
5+
*/
6+
7+
namespace app\models\base;
8+
9+
/**
10+
* This is the model class for table "addresses".
11+
*
12+
* @property int $id
13+
* @property string $name
14+
*
15+
*/
16+
abstract class Address extends \yii\db\ActiveRecord
17+
{
18+
public static function tableName()
19+
{
20+
return '{{%addresses}}';
21+
}
22+
23+
public function rules()
24+
{
25+
return [
26+
'trim' => [['name'], 'trim'],
27+
'name_string' => [['name'], 'string'],
28+
];
29+
}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
3+
/**
4+
* This file is generated by Gii, do not change manually!
5+
*/
6+
7+
namespace app\models\base;
8+
9+
/**
10+
* This is the model class for table "humans".
11+
*
12+
* @property int $id
13+
* @property string $name
14+
* @property int $address_id
15+
*
16+
* @property \app\models\Address $address
17+
*/
18+
abstract class Human extends \yii\db\ActiveRecord
19+
{
20+
public static function tableName()
21+
{
22+
return '{{%humans}}';
23+
}
24+
25+
public function rules()
26+
{
27+
return [
28+
'trim' => [['name'], 'trim'],
29+
'name_string' => [['name'], 'string'],
30+
'address_id_integer' => [['address_id'], 'integer'],
31+
'address_id_exist' => [['address_id'], 'exist', 'targetRelation' => 'address'],
32+
];
33+
}
34+
35+
public function getAddress()
36+
{
37+
return $this->hasOne(\app\models\Address::class, ['id' => 'address_id']);
38+
}
39+
}

tests/unit/IssueFixTest.php

+14
Original file line numberDiff line numberDiff line change
@@ -1014,4 +1014,18 @@ public function test22BugRulesRequiredIsGeneratedBeforeDefault()
10141014
]);
10151015
$this->checkFiles($actualFiles, $expectedFiles);
10161016
}
1017+
1018+
// https://github.com/php-openapi/yii2-openapi/issues/88
1019+
public function test88InCaseOfUpdatingAModelGeneratorCreatesRedundantInverseRelations()
1020+
{
1021+
$testFile = Yii::getAlias("@specs/issue_fix/88_in_case_of_updating_a_model_generator_creates_redundant_inverse_relations/index.php");
1022+
$this->runGenerator($testFile);
1023+
$actualFiles = FileHelper::findFiles(Yii::getAlias('@app'), [
1024+
'recursive' => true,
1025+
]);
1026+
$expectedFiles = FileHelper::findFiles(Yii::getAlias("@specs/issue_fix/88_in_case_of_updating_a_model_generator_creates_redundant_inverse_relations/mysql"), [
1027+
'recursive' => true,
1028+
]);
1029+
$this->checkFiles($actualFiles, $expectedFiles);
1030+
}
10171031
}

0 commit comments

Comments
 (0)