No,テストID,対象クラス,対象メソッド,テスト観点,テストケース名,前提条件,入力値,期待結果,優先度,備考
1,UT-PRJ-001,Webkul\Project\Models\Project,partner,正常系,Partnerリレーションが正しく取得できること,Projectにpartner_idが設定されている,partner_id=1,Partner型のインスタンスが返却される,中,BelongsToリレーション
2,UT-PRJ-002,Webkul\Project\Models\Project,partner,異常系,partner_idがnullの場合nullが返却されること,Projectのpartner_idがnull,partner_id=null,nullが返却される,中,nullセーフティの確認
3,UT-PRJ-003,Webkul\Project\Models\Project,creator,正常系,Creatorリレーションが正しく取得できること,Projectにcreator_idが設定されている,creator_id=1,User型のインスタンスが返却される,中,BelongsToリレーション
4,UT-PRJ-004,Webkul\Project\Models\Project,user,正常系,Userリレーションが正しく取得できること,Projectにuser_idが設定されている,user_id=1,User型のインスタンスが返却される,中,プロジェクトマネージャーリレーション
5,UT-PRJ-005,Webkul\Project\Models\Project,stage,正常系,Stageリレーションが正しく取得できること,Projectにstage_idが設定されている,stage_id=1,ProjectStage型のインスタンスが返却される,中,BelongsToリレーション
6,UT-PRJ-006,Webkul\Project\Models\Project,taskStages,正常系,TaskStagesリレーションが正しく取得できること,Projectに関連するTaskStageが存在する,project_id=1,HasManyコレクションが返却される,中,HasManyリレーション
7,UT-PRJ-007,Webkul\Project\Models\Project,taskStages,境界値,TaskStageが0件の場合空コレクションが返却されること,Projectに関連するTaskStageが存在しない,project_id=1,空のCollectionが返却される,低,空コレクションの確認
8,UT-PRJ-008,Webkul\Project\Models\Project,favoriteUsers,正常系,FavoriteUsersリレーションが正しく取得できること,Projectをお気に入り登録したユーザーが存在する,project_id=1,BelongsToManyコレクションが返却される,中,中間テーブル経由のリレーション
9,UT-PRJ-009,Webkul\Project\Models\Project,getIsFavoriteByUserAttribute,正常系,認証ユーザーがお気に入り登録している場合trueが返却されること,認証ユーザーがお気に入り登録済み,Auth::id()=1で該当ユーザーがfavoriteUsersに存在,trueが返却される,高,ユーザー体験に関わる重要機能
10,UT-PRJ-010,Webkul\Project\Models\Project,getIsFavoriteByUserAttribute,正常系,認証ユーザーがお気に入り登録していない場合falseが返却されること,認証ユーザーがお気に入り未登録,Auth::id()=1で該当ユーザーがfavoriteUsersに存在しない,falseが返却される,高,ユーザー体験に関わる重要機能
11,UT-PRJ-011,Webkul\Project\Models\Project,getIsFavoriteByUserAttribute,正常系,favoriteUsersがロード済みの場合リレーションから直接取得されること,favoriteUsersリレーションがeagerロード済み,relationLoaded('favoriteUsers')=true,DBクエリを発行せずtrue/falseを返却,中,パフォーマンス最適化の確認
12,UT-PRJ-012,Webkul\Project\Models\Project,getRemainingHoursAttribute,正常系,残り時間が正しく計算されること,Projectにallocated_hoursとtasksが設定されている,"allocated_hours=100, tasks.sum('remaining_hours')=30",70.0が返却される,高,時間管理の重要な計算ロジック
13,UT-PRJ-013,Webkul\Project\Models\Project,getRemainingHoursAttribute,境界値,tasksが0件の場合allocated_hoursがそのまま返却されること,Projectに関連するtasksが存在しない,allocated_hours=100,100.0が返却される,中,境界値テスト
14,UT-PRJ-014,Webkul\Project\Models\Project,getRemainingHoursAttribute,境界値,allocated_hoursが0の場合負の値が返却される可能性があること,allocated_hoursが0でtasksのremaining_hoursがある,"allocated_hours=0, tasks.sum('remaining_hours')=10",-10.0が返却される,高,マイナス値の挙動確認
15,UT-PRJ-015,Webkul\Project\Models\Project,milestones,正常系,Milestonesリレーションが正しく取得できること,Projectに関連するMilestoneが存在する,project_id=1,HasManyコレクションが返却される,中,HasManyリレーション
16,UT-PRJ-016,Webkul\Project\Models\Project,tasks,正常系,Tasksリレーションが正しく取得できること,Projectに関連するTaskが存在する,project_id=1,HasManyコレクションが返却される,中,HasManyリレーション
17,UT-PRJ-017,Webkul\Project\Models\Project,company,正常系,Companyリレーションが正しく取得できること,Projectにcompany_idが設定されている,company_id=1,Company型のインスタンスが返却される,中,BelongsToリレーション
18,UT-PRJ-018,Webkul\Project\Models\Project,tags,正常系,Tagsリレーションが正しく取得できること,Projectに関連するTagが存在する,project_id=1,BelongsToManyコレクションが返却される,中,中間テーブル経由のリレーション
19,UT-PRJ-019,Webkul\Project\Models\Project,plannedDate,正常系,PlannedDateアクセサが正しいフォーマットで返却されること,start_dateとend_dateが設定されている,"start_date=2024-01-01, end_date=2024-12-31","2024-01-01 - 2024-12-31が返却される",低,表示用アクセサ
20,UT-PRJ-020,Webkul\Project\Models\Project,plannedDate,異常系,start_dateまたはend_dateがnullの場合の挙動,start_dateがnull,"start_date=null, end_date=2024-12-31"," - 2024-12-31が返却される",低,nullの場合の挙動確認
21,UT-PRJ-021,Webkul\Project\Models\Project,booted,正常系,UserPermissionScopeがグローバルスコープとして追加されること,モデルがboot処理を実行,なし,UserPermissionScopeがグローバルスコープに追加される,高,権限スコープの設定
22,UT-PRJ-022,Webkul\Project\Models\Project,casts,正常系,start_dateがdate型にキャストされること,start_dateが文字列で保存,start_date=2024-01-01,Carbonインスタンスが返却される,中,型キャストの確認
23,UT-PRJ-023,Webkul\Project\Models\Project,casts,正常系,is_activeがboolean型にキャストされること,is_activeが整数で保存,is_active=1,true(boolean)が返却される,中,型キャストの確認
24,UT-PRJ-024,Webkul\Project\Models\Project,casts,正常系,allow_timesheetsがboolean型にキャストされること,allow_timesheetsが整数で保存,allow_timesheets=0,false(boolean)が返却される,中,型キャストの確認
25,UT-PRJ-025,Webkul\Project\Models\Task,parent,正常系,Parentリレーションが正しく取得できること,Taskにparent_idが設定されている,parent_id=1,Task型のインスタンスが返却される,中,自己参照BelongsToリレーション
26,UT-PRJ-026,Webkul\Project\Models\Task,parent,異常系,parent_idがnullの場合nullが返却されること,Taskのparent_idがnull,parent_id=null,nullが返却される,中,ルートタスクの確認
27,UT-PRJ-027,Webkul\Project\Models\Task,subTasks,正常系,SubTasksリレーションが正しく取得できること,Taskに関連するサブタスクが存在する,parent_id=現タスクID,HasManyコレクションが返却される,中,自己参照HasManyリレーション
28,UT-PRJ-028,Webkul\Project\Models\Task,subTasks,境界値,サブタスクが0件の場合空コレクションが返却されること,Taskに関連するサブタスクが存在しない,parent_id=現タスクID(該当なし),空のCollectionが返却される,低,空コレクションの確認
29,UT-PRJ-029,Webkul\Project\Models\Task,project,正常系,Projectリレーションが正しく取得できること,Taskにproject_idが設定されている,project_id=1,Project型のインスタンスが返却される,中,BelongsToリレーション
30,UT-PRJ-030,Webkul\Project\Models\Task,milestone,正常系,Milestoneリレーションが正しく取得できること,Taskにmilestone_idが設定されている,milestone_id=1,Milestone型のインスタンスが返却される,中,BelongsToリレーション
31,UT-PRJ-031,Webkul\Project\Models\Task,stage,正常系,Stageリレーションが正しく取得できること,Taskにstage_idが設定されている,stage_id=1,TaskStage型のインスタンスが返却される,中,BelongsToリレーション
32,UT-PRJ-032,Webkul\Project\Models\Task,partner,正常系,Partnerリレーションが正しく取得できること,Taskにpartner_idが設定されている,partner_id=1,Partner型のインスタンスが返却される,中,BelongsToリレーション
33,UT-PRJ-033,Webkul\Project\Models\Task,creator,正常系,Creatorリレーションが正しく取得できること,Taskにcreator_idが設定されている,creator_id=1,User型のインスタンスが返却される,中,BelongsToリレーション
34,UT-PRJ-034,Webkul\Project\Models\Task,users,正常系,Usersリレーションが正しく取得できること,Taskに担当者が割り当てられている,task_id=1,BelongsToManyコレクションが返却される,中,中間テーブル経由のリレーション
35,UT-PRJ-035,Webkul\Project\Models\Task,company,正常系,Companyリレーションが正しく取得できること,Taskにcompany_idが設定されている,company_id=1,Company型のインスタンスが返却される,中,BelongsToリレーション
36,UT-PRJ-036,Webkul\Project\Models\Task,tags,正常系,Tagsリレーションが正しく取得できること,Taskに関連するTagが存在する,task_id=1,BelongsToManyコレクションが返却される,中,中間テーブル経由のリレーション
37,UT-PRJ-037,Webkul\Project\Models\Task,timesheets,正常系,Timesheetsリレーションが正しく取得できること,Taskに関連するTimesheetが存在する,task_id=1,HasManyコレクションが返却される,中,HasManyリレーション
38,UT-PRJ-038,Webkul\Project\Models\Task,booted,正常系,UserPermissionScopeがグローバルスコープとして追加されること,モデルがboot処理を実行,なし,UserPermissionScope('users')がグローバルスコープに追加される,高,権限スコープの設定
39,UT-PRJ-039,Webkul\Project\Models\Task,boot(updated),正常系,Task更新時にtimesheetsが連動更新されること,Taskにtimesheetsが関連付けられている,project_idを変更,関連timesheetsのproject_idも更新される,高,データ整合性の重要なロジック
40,UT-PRJ-040,Webkul\Project\Models\Task,boot(updated),正常系,partner_idがnullの場合projectのpartner_idが使用されること,Taskのpartner_idがnullでprojectにpartner_idがある,"partner_id=null, project.partner_id=1",timesheetsのpartner_idが1に更新される,高,nullフォールバック処理
41,UT-PRJ-041,Webkul\Project\Models\Task,boot(updated),正常系,company_idがnullの場合projectのcompany_idが使用されること,Taskのcompany_idがnullでprojectにcompany_idがある,"company_id=null, project.company_id=1",timesheetsのcompany_idが1に更新される,高,nullフォールバック処理
42,UT-PRJ-042,Webkul\Project\Models\Task,casts,正常系,stateがTaskState enumにキャストされること,stateが文字列で保存,state=in_progress,TaskState::IN_PROGRESSが返却される,中,Enumキャストの確認
43,UT-PRJ-043,Webkul\Project\Models\Task,casts,正常系,deadlineがdatetime型にキャストされること,deadlineが文字列で保存,deadline=2024-12-31 23:59:59,Carbonインスタンスが返却される,中,型キャストの確認
44,UT-PRJ-044,Webkul\Project\Models\Task,casts,正常系,allocated_hoursがfloat型にキャストされること,allocated_hoursが整数で保存,allocated_hours=10,10.0(float)が返却される,中,型キャストの確認
45,UT-PRJ-045,Webkul\Project\Models\Milestone,project,正常系,Projectリレーションが正しく取得できること,Milestoneにproject_idが設定されている,project_id=1,Project型のインスタンスが返却される,中,BelongsToリレーション
46,UT-PRJ-046,Webkul\Project\Models\Milestone,creator,正常系,Creatorリレーションが正しく取得できること,Milestoneにcreator_idが設定されている,creator_id=1,User型のインスタンスが返却される,中,BelongsToリレーション
47,UT-PRJ-047,Webkul\Project\Models\Milestone,casts,正常系,is_completedがboolean型にキャストされること,is_completedが整数で保存,is_completed=1,true(boolean)が返却される,中,型キャストの確認
48,UT-PRJ-048,Webkul\Project\Models\Milestone,casts,正常系,deadlineがdatetime型にキャストされること,deadlineが文字列で保存,deadline=2024-06-30 12:00:00,Carbonインスタンスが返却される,中,型キャストの確認
49,UT-PRJ-049,Webkul\Project\Models\Milestone,casts,正常系,completed_atがdatetime型にキャストされること,completed_atが文字列で保存,completed_at=2024-06-15 10:00:00,Carbonインスタンスが返却される,中,型キャストの確認
50,UT-PRJ-050,Webkul\Project\Models\Timesheet,project,正常系,Projectリレーションが正しく取得できること,Timesheetにproject_idが設定されている,project_id=1,Project型のインスタンスが返却される,中,BelongsToリレーション
51,UT-PRJ-051,Webkul\Project\Models\Timesheet,task,正常系,Taskリレーションが正しく取得できること,Timesheetにtask_idが設定されている,task_id=1,Task型のインスタンスが返却される,中,BelongsToリレーション
52,UT-PRJ-052,Webkul\Project\Models\Timesheet,updateTaskTimes,正常系,タスクの時間集計が正しく更新されること,Timesheetが作成/更新/削除された,"task.allocated_hours=10, timesheets.sum(unit_amount)=5","total_hours_spent=5, effective_hours=5, remaining_hours=5, overtime=0, progress=50",高,時間管理の重要な計算ロジック
53,UT-PRJ-053,Webkul\Project\Models\Timesheet,updateTaskTimes,正常系,サブタスクがある場合にtotal_hours_spentにサブタスクの時間が加算されること,タスクにサブタスクが存在する,"task.timesheets.sum=3, subTask.timesheets.sum=2",total_hours_spent=5,高,サブタスク考慮の計算
54,UT-PRJ-054,Webkul\Project\Models\Timesheet,updateTaskTimes,正常系,overtimeが正しく計算されること(時間超過の場合),作業時間がallocated_hoursを超過,"allocated_hours=10, total_hours_spent=15","overtime=5, remaining_hours=-5",高,超過時間の計算
55,UT-PRJ-055,Webkul\Project\Models\Timesheet,updateTaskTimes,正常系,overtimeが0になること(時間未超過の場合),作業時間がallocated_hours以下,"allocated_hours=10, total_hours_spent=8","overtime=0, remaining_hours=2",高,超過なしの確認
56,UT-PRJ-056,Webkul\Project\Models\Timesheet,updateTaskTimes,正常系,progressが正しく計算されること,allocated_hoursと作業時間が存在,"allocated_hours=100, total_hours_spent=25",progress=25(パーセント),高,進捗率の計算
57,UT-PRJ-057,Webkul\Project\Models\Timesheet,updateTaskTimes,境界値,allocated_hoursが0の場合progressが0になること,allocated_hoursが0,"allocated_hours=0, total_hours_spent=10",progress=0,高,ゼロ除算回避の確認
58,UT-PRJ-058,Webkul\Project\Models\Timesheet,updateTaskTimes,正常系,親タスクの時間も連動更新されること,タスクに親タスクが存在し更新された,parent_id=1,"親タスクのtotal_hours_spent, subtask_effective_hoursが更新される",高,親タスクへの伝播
59,UT-PRJ-059,Webkul\Project\Models\Timesheet,updateTaskTimes,異常系,taskがnullの場合早期リターンすること,Timesheetにtaskが関連付けられていない,task=null,処理が即座に終了しエラーが発生しない,中,nullセーフティの確認
60,UT-PRJ-060,Webkul\Project\Models\Timesheet,boot(created),正常系,Timesheet作成時にupdateTaskTimesが呼び出されること,Timesheetを新規作成,Timesheet::create(),updateTaskTimesが実行される,高,イベントハンドラの確認
61,UT-PRJ-061,Webkul\Project\Models\Timesheet,boot(updated),正常系,Timesheet更新時にupdateTaskTimesが呼び出されること,Timesheetを更新,$timesheet->update(),updateTaskTimesが実行される,高,イベントハンドラの確認
62,UT-PRJ-062,Webkul\Project\Models\Timesheet,boot(deleted),正常系,Timesheet削除時にupdateTaskTimesが呼び出されること,Timesheetを削除,$timesheet->delete(),updateTaskTimesが実行される,高,イベントハンドラの確認
63,UT-PRJ-063,Webkul\Project\Models\TaskStage,project,正常系,Projectリレーションが正しく取得できること,TaskStageにproject_idが設定されている,project_id=1,Project型のインスタンスが返却される,中,BelongsToリレーション
64,UT-PRJ-064,Webkul\Project\Models\TaskStage,tasks,正常系,Tasksリレーションが正しく取得できること,TaskStageに関連するTaskが存在する,stage_id=1,HasManyコレクションが返却される,中,HasManyリレーション
65,UT-PRJ-065,Webkul\Project\Models\TaskStage,user,正常系,Userリレーションが正しく取得できること,TaskStageにuser_idが設定されている,user_id=1,User型のインスタンスが返却される,中,BelongsToリレーション
66,UT-PRJ-066,Webkul\Project\Models\TaskStage,creator,正常系,Creatorリレーションが正しく取得できること,TaskStageにcreator_idが設定されている,creator_id=1,User型のインスタンスが返却される,中,BelongsToリレーション
67,UT-PRJ-067,Webkul\Project\Models\TaskStage,company,正常系,Companyリレーションが正しく取得できること,TaskStageにcompany_idが設定されている,company_id=1,Company型のインスタンスが返却される,中,BelongsToリレーション
68,UT-PRJ-068,Webkul\Project\Models\TaskStage,casts,正常系,is_activeがboolean型にキャストされること,is_activeが整数で保存,is_active=1,true(boolean)が返却される,中,型キャストの確認
69,UT-PRJ-069,Webkul\Project\Models\TaskStage,casts,正常系,is_collapsedがboolean型にキャストされること,is_collapsedが整数で保存,is_collapsed=1,true(boolean)が返却される,低,表示設定の型キャスト
70,UT-PRJ-070,Webkul\Project\Models\ProjectStage,creator,正常系,Creatorリレーションが正しく取得できること,ProjectStageにcreator_idが設定されている,creator_id=1,User型のインスタンスが返却される,中,BelongsToリレーション
71,UT-PRJ-071,Webkul\Project\Models\ProjectStage,company,正常系,Companyリレーションが正しく取得できること,ProjectStageにcompany_idが設定されている,company_id=1,Company型のインスタンスが返却される,中,BelongsToリレーション
72,UT-PRJ-072,Webkul\Project\Models\ProjectStage,projects,正常系,Projectsリレーションが正しく取得できること,ProjectStageに関連するProjectが存在する,stage_id=1,HasManyコレクションが返却される,中,HasManyリレーション
73,UT-PRJ-073,Webkul\Project\Models\ProjectStage,casts,正常系,is_activeがboolean型にキャストされること,is_activeが整数で保存,is_active=0,false(boolean)が返却される,中,型キャストの確認
74,UT-PRJ-074,Webkul\Project\Models\ProjectStage,casts,正常系,is_collapsedがboolean型にキャストされること,is_collapsedが整数で保存,is_collapsed=0,false(boolean)が返却される,低,表示設定の型キャスト
75,UT-PRJ-075,Webkul\Project\Models\Tag,creator,正常系,Creatorリレーションが正しく取得できること,Tagにcreator_idが設定されている,creator_id=1,User型のインスタンスが返却される,中,BelongsToリレーション
76,UT-PRJ-076,Webkul\Project\Models\Tag,creator,異常系,creator_idがnullの場合nullが返却されること,Tagのcreator_idがnull,creator_id=null,nullが返却される,低,nullセーフティの確認
77,UT-PRJ-077,Webkul\Project\Enums\TaskState,getLabel,正常系,IN_PROGRESSのラベルが正しく取得できること,なし,TaskState::IN_PROGRESS,projects::enums/task-state.in-progressの翻訳値,低,Enum表示用メソッド
78,UT-PRJ-078,Webkul\Project\Enums\TaskState,getLabel,正常系,全ての状態のラベルが正しく取得できること,なし,TaskState全値,対応する翻訳値が返却される,低,Enum表示用メソッド
79,UT-PRJ-079,Webkul\Project\Enums\TaskState,getIcon,正常系,各状態のアイコンが正しく取得できること,なし,TaskState::IN_PROGRESS,heroicon-m-play-circleが返却される,低,Enum表示用メソッド
80,UT-PRJ-080,Webkul\Project\Enums\TaskState,getColor,正常系,各状態の色が正しく取得できること,なし,TaskState::CANCELLED,dangerが返却される,低,Enum表示用メソッド
81,UT-PRJ-081,Webkul\Project\Enums\TaskState,options,正常系,全オプションが配列で取得できること,なし,TaskState::options(),5件のオプション配列が返却される,低,フォーム選択肢用
82,UT-PRJ-082,Webkul\Project\Enums\ProjectVisibility,options,正常系,全オプションが配列で取得できること,なし,ProjectVisibility::options(),"PRIVATE, INTERNAL, PUBLICの3件が返却される",低,フォーム選択肢用
83,UT-PRJ-083,Webkul\Project\Enums\ProjectVisibility,icons,正常系,各可視性のアイコンが正しく取得できること,なし,ProjectVisibility::icons(),3件のアイコン配列が返却される,低,表示用アイコン
84,UT-PRJ-084,Webkul\Project\Enums\ProjectVisibility,colors,正常系,各可視性の色が正しく取得できること,なし,ProjectVisibility::colors(),"danger, warning, successが返却される",低,表示用カラー
85,UT-PRJ-085,Webkul\Project\Policies\ProjectPolicy,viewAny,正常系,view_any_project権限がある場合trueが返却されること,ユーザーがview_any_project権限を持つ,User->can('view_any_project')=true,trueが返却される,高,認可ロジック
86,UT-PRJ-086,Webkul\Project\Policies\ProjectPolicy,viewAny,異常系,view_any_project権限がない場合falseが返却されること,ユーザーがview_any_project権限を持たない,User->can('view_any_project')=false,falseが返却される,高,認可ロジック
87,UT-PRJ-087,Webkul\Project\Policies\ProjectPolicy,view,正常系,view_project権限がある場合trueが返却されること,ユーザーがview_project権限を持つ,User->can('view_project')=true,trueが返却される,高,認可ロジック
88,UT-PRJ-088,Webkul\Project\Policies\ProjectPolicy,create,正常系,create_project権限がある場合trueが返却されること,ユーザーがcreate_project権限を持つ,User->can('create_project')=true,trueが返却される,高,認可ロジック
89,UT-PRJ-089,Webkul\Project\Policies\ProjectPolicy,update,正常系,update_project権限とアクセス権がある場合trueが返却されること,ユーザーが更新権限とリソースアクセス権を持つ,"User->can('update_project')=true, hasAccess()=true",trueが返却される,高,認可ロジック
90,UT-PRJ-090,Webkul\Project\Policies\ProjectPolicy,update,異常系,update_project権限がない場合falseが返却されること,ユーザーが更新権限を持たない,User->can('update_project')=false,falseが返却される,高,認可ロジック
91,UT-PRJ-091,Webkul\Project\Policies\ProjectPolicy,update,異常系,アクセス権がない場合falseが返却されること,ユーザーが権限はあるがアクセス権なし,"User->can('update_project')=true, hasAccess()=false",falseが返却される,高,スコープ付き認可
92,UT-PRJ-092,Webkul\Project\Policies\ProjectPolicy,delete,正常系,delete_project権限とアクセス権がある場合trueが返却されること,ユーザーが削除権限とリソースアクセス権を持つ,"User->can('delete_project')=true, hasAccess()=true",trueが返却される,高,認可ロジック
93,UT-PRJ-093,Webkul\Project\Policies\ProjectPolicy,deleteAny,正常系,delete_any_project権限がある場合trueが返却されること,ユーザーがdelete_any_project権限を持つ,User->can('delete_any_project')=true,trueが返却される,高,一括削除の認可
94,UT-PRJ-094,Webkul\Project\Policies\ProjectPolicy,forceDelete,正常系,force_delete_project権限とアクセス権がある場合trueが返却されること,ユーザーが完全削除権限とアクセス権を持つ,"User->can('force_delete_project')=true, hasAccess()=true",trueが返却される,高,完全削除の認可
95,UT-PRJ-095,Webkul\Project\Policies\ProjectPolicy,restore,正常系,restore_project権限とアクセス権がある場合trueが返却されること,ユーザーが復元権限とアクセス権を持つ,"User->can('restore_project')=true, hasAccess()=true",trueが返却される,高,復元の認可
96,UT-PRJ-096,Webkul\Project\Policies\ProjectPolicy,reorder,正常系,reorder_project権限がある場合trueが返却されること,ユーザーがreorder_project権限を持つ,User->can('reorder_project')=true,trueが返却される,中,並べ替えの認可
97,UT-PRJ-097,Webkul\Project\Policies\TaskPolicy,viewAny,正常系,view_any_task権限がある場合trueが返却されること,ユーザーがview_any_task権限を持つ,User->can('view_any_task')=true,trueが返却される,高,認可ロジック
98,UT-PRJ-098,Webkul\Project\Policies\TaskPolicy,view,正常系,view_task権限がある場合trueが返却されること,ユーザーがview_task権限を持つ,User->can('view_task')=true,trueが返却される,高,認可ロジック
99,UT-PRJ-099,Webkul\Project\Policies\TaskPolicy,create,正常系,create_task権限がある場合trueが返却されること,ユーザーがcreate_task権限を持つ,User->can('create_task')=true,trueが返却される,高,認可ロジック
100,UT-PRJ-100,Webkul\Project\Policies\TaskPolicy,update,正常系,update_task権限とアクセス権がある場合trueが返却されること,ユーザーが更新権限とリソースアクセス権を持つ,"User->can('update_task')=true, hasAccess(users)=true",trueが返却される,高,認可ロジック
101,UT-PRJ-101,Webkul\Project\Policies\TaskPolicy,update,異常系,担当者でない場合falseが返却されること,ユーザーが権限はあるがタスク担当者でない,"User->can('update_task')=true, hasAccess(users)=false",falseが返却される,高,担当者チェック
102,UT-PRJ-102,Webkul\Project\Policies\TaskPolicy,delete,正常系,delete_task権限とアクセス権がある場合trueが返却されること,ユーザーが削除権限とリソースアクセス権を持つ,"User->can('delete_task')=true, hasAccess(users)=true",trueが返却される,高,認可ロジック
103,UT-PRJ-103,Webkul\Project\Policies\TaskPolicy,forceDelete,正常系,force_delete_task権限とアクセス権がある場合trueが返却されること,ユーザーが完全削除権限とアクセス権を持つ,"User->can('force_delete_task')=true, hasAccess(users)=true",trueが返却される,高,完全削除の認可
104,UT-PRJ-104,Webkul\Project\Policies\TaskPolicy,restore,正常系,restore_task権限とアクセス権がある場合trueが返却されること,ユーザーが復元権限とアクセス権を持つ,"User->can('restore_task')=true, hasAccess(users)=true",trueが返却される,高,復元の認可
105,UT-PRJ-105,Webkul\Project\Policies\TaskPolicy,reorder,正常系,reorder_task権限がある場合trueが返却されること,ユーザーがreorder_task権限を持つ,User->can('reorder_task')=true,trueが返却される,中,並べ替えの認可
