|
@@ -5,6 +5,7 @@ namespace Tests\Feature\API;
|
|
|
use App\Models\Asset;
|
|
|
use App\Models\Enums\ProjectStatus;
|
|
|
use App\Models\Plan;
|
|
|
+use App\Models\PlanRequirement;
|
|
|
use App\Models\Project;
|
|
|
use App\Models\ProjectAsset;
|
|
|
use App\Models\ProjectPlan;
|
|
@@ -234,4 +235,56 @@ class ProjectTest extends TestCase
|
|
|
|
|
|
$this->assertEquals(0, $count);
|
|
|
}
|
|
|
+
|
|
|
+ public function test_project_link_requirement_by_plan(): void
|
|
|
+ {
|
|
|
+ $project = Project::factory()->create();
|
|
|
+
|
|
|
+ $plan = Plan::factory()->create();
|
|
|
+
|
|
|
+ $requirement = Requirement::factory()->make();
|
|
|
+ $requirement->asset_id = $plan->asset_id;
|
|
|
+ $requirement->save();
|
|
|
+
|
|
|
+ PlanRequirement::create([
|
|
|
+ 'plan_id' => $plan->id,
|
|
|
+ 'requirement_id' => $requirement->id,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $response = $this->patch(route('project.link-requirement-by-plan', ['project' => $project->id]), [
|
|
|
+ 'plan_id' => $plan->id,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $response->assertStatus(204);
|
|
|
+
|
|
|
+ $count = ProjectRequirement::where([
|
|
|
+ 'project_id' => $project->id,
|
|
|
+ 'requirement_id' => $requirement->id,
|
|
|
+ ])->count();
|
|
|
+
|
|
|
+ $this->assertEquals(1, $count);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function test_project_requirement_list(): void
|
|
|
+ {
|
|
|
+ $project = Project::factory()->create();
|
|
|
+
|
|
|
+ $requirements = Requirement::factory(30)->create();
|
|
|
+
|
|
|
+ foreach ($requirements as $requirement) {
|
|
|
+ ProjectRequirement::create([
|
|
|
+ 'project_id' => $project->id,
|
|
|
+ 'requirement_id' => $requirement->id,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ $response = $this->get(route('project.requirement', ['project' => $project->id]));
|
|
|
+
|
|
|
+ dump($response->getContent());
|
|
|
+
|
|
|
+ $response->assertStatus(200)
|
|
|
+ ->assertJsonStructure($this->simplePaginateResponseStructure([
|
|
|
+ 'id', 'title', 'created_by', 'status'
|
|
|
+ ]));
|
|
|
+ }
|
|
|
}
|