---
generated_at: 2026-02-18 16:30:00
metrics:
  claims_total: 135
  claims_with_evidence: 135
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：public-Agent単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：135 / 135、根拠なし：0
- 優先レビュー（高）
  1. 全てのテストケースはソースコード解析に基づいて生成されており、根拠が確認されています
  2. 特に追加レビューが必要な項目はありません

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `public/Get-DbaAgentJob.ps1` - ジョブ取得コマンド
- E-02: `public/New-DbaAgentJob.ps1` - ジョブ作成コマンド
- E-03: `public/Remove-DbaAgentJob.ps1` - ジョブ削除コマンド
- E-04: `public/Set-DbaAgentJob.ps1` - ジョブ設定コマンド
- E-05: `public/Start-DbaAgentJob.ps1` - ジョブ開始コマンド
- E-06: `public/Stop-DbaAgentJob.ps1` - ジョブ停止コマンド
- E-07: `public/Get-DbaAgentSchedule.ps1` - スケジュール取得コマンド
- E-08: `public/New-DbaAgentSchedule.ps1` - スケジュール作成コマンド
- E-09: `public/Remove-DbaAgentSchedule.ps1` - スケジュール削除コマンド
- E-10: `public/Set-DbaAgentSchedule.ps1` - スケジュール設定コマンド
- E-11: `public/Get-DbaAgentOperator.ps1` - オペレータ取得コマンド
- E-12: `public/New-DbaAgentOperator.ps1` - オペレータ作成コマンド
- E-13: `public/Get-DbaAgentAlert.ps1` - アラート取得コマンド
- E-14: `public/Get-DbaAgentJobStep.ps1` - ジョブステップ取得コマンド
- E-15: `public/New-DbaAgentJobStep.ps1` - ジョブステップ作成コマンド
- E-16: `public/Get-DbaAgentJobHistory.ps1` - ジョブ履歴取得コマンド
- E-17: `public/Get-DbaAgentServer.ps1` - Agentサーバー取得コマンド
- E-18: `public/Set-DbaAgentServer.ps1` - Agentサーバー設定コマンド
- E-19: `public/Find-DbaAgentJob.ps1` - ジョブ検索コマンド
- E-20: `public/Copy-DbaAgentJob.ps1` - ジョブコピーコマンド

## 3) Claims と根拠の対応（レビューの主戦場）

### Get-DbaAgentJob (C-01 to C-10)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | 全てのジョブが取得できること | E-01 (process block、$server.JobServer.Jobs) | ○ |
| C-02 | 特定のジョブ名でフィルタリングできること | E-01 (Job parameter、Where-Object Name -In $Job) | ○ |
| C-03 | 除外ジョブが結果から除外されること | E-01 (ExcludeJob parameter、Where-Object Name -NotIn $ExcludeJob) | ○ |
| C-04 | 無効なジョブが除外されること | E-01 (ExcludeDisabledJobs parameter、Where-Object IsEnabled -eq $true) | ○ |
| C-05 | カテゴリでフィルタリングできること | E-01 (Category parameter、Where-Object Category -in $Category) | ○ |
| C-06 | データベースでフィルタリングできること | E-01 (Database parameter、$dbLookup logic) | ○ |
| C-07 | 実行中ジョブの開始日時が含まれること | E-01 (IncludeExecution parameter、$jobExecutionResults query) | ○ |
| C-08 | null/空のJob引数が処理されること | E-01 (Test-Bound 'Job'、IsNullOrWhiteSpace check) | ○ |
| C-09 | 接続エラーが適切に処理されること | E-01 (try/catch block、Stop-Function) | ○ |
| C-10 | ジョブが0件の場合でもエラーにならないこと | E-01 (foreach loop、空コレクション時は処理なし) | ○ |

### New-DbaAgentJob (C-11 to C-20)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | 新しいジョブが作成されること | E-02 (New-Object Microsoft.SqlServer.Management.Smo.Agent.Job、$currentjob.Create()) | ○ |
| C-12 | 説明付きでジョブが作成されること | E-02 (Description parameter、$currentjob.Description = $Description) | ○ |
| C-13 | 無効状態でジョブが作成されること | E-02 (Disabled switch、$currentjob.IsEnabled = $false) | ○ |
| C-14 | オーナーを指定してジョブが作成されること | E-02 (OwnerLogin parameter、$currentjob.OwnerLoginName = $OwnerLogin) | ○ |
| C-15 | 通知設定付きでジョブが作成されること | E-02 (EmailLevel、EmailOperator parameters、$currentjob.EmailLevel) | ○ |
| C-16 | スケジュール付きでジョブが作成されること | E-02 (Schedule parameter、Set-DbaAgentJob -Schedule) | ○ |
| C-17 | Forceで既存ジョブが置換されること | E-02 (Force parameter、Remove-DbaAgentJob call) | ○ |
| C-18 | EmailLevelあり、EmailOperatorなしでエラーになること | E-02 (begin block validation、Stop-Function) | ○ |
| C-19 | 既存ジョブがForceなしでスキップされること | E-02 (Jobs.Name -contains $Job check、Stop-Function) | ○ |
| C-20 | 存在しないオーナーでエラーになること | E-02 ($server.Logins.Name -contains $OwnerLogin check、Stop-Function) | ○ |

### Remove-DbaAgentJob (C-21 to C-26)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-21 | ジョブが削除されること | E-03 (sp_delete_job execution、Status='Dropped') | ○ |
| C-22 | 履歴を保持して削除できること | E-03 (KeepHistory parameter、$dropHistory = 0) | ○ |
| C-23 | 未使用スケジュールを保持して削除できること | E-03 (KeepUnusedSchedule parameter、$dropSchedule = 0) | ○ |
| C-24 | InputObjectからジョブが削除されること | E-03 (InputObject parameter、foreach ($currentJob in $InputObject)) | ○ |
| C-25 | 存在しないジョブでエラーになること | E-03 (Jobs.Name -notcontains $j check、Stop-Function) | ○ |
| C-26 | null/空のJob引数でスキップされること | E-03 (Test-Bound 'Job'、IsNullOrWhiteSpace check) | ○ |

### Set-DbaAgentJob (C-27 to C-34)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-27 | ジョブが無効化されること | E-04 (Disabled switch、$currentjob.IsEnabled = $false) | ○ |
| C-28 | ジョブが有効化されること | E-04 (Enabled switch、$currentjob.IsEnabled = $true) | ○ |
| C-29 | ジョブ名が変更されること | E-04 (NewName parameter、$currentjob.Rename($NewName)) | ○ |
| C-30 | 説明が更新されること | E-04 (Description parameter、$currentjob.Description = $Description) | ○ |
| C-31 | スケジュールがアタッチされること | E-04 (Schedule parameter、$currentjob.AddSharedSchedule) | ○ |
| C-32 | オーナーが変更されること | E-04 (OwnerLogin parameter、$currentjob.OwnerLoginName = $OwnerLogin) | ○ |
| C-33 | EmailLevelあり、EmailOperatorなしでエラーになること | E-04 (begin block validation、Stop-Function) | ○ |
| C-34 | 存在しないジョブでエラーになること | E-04 (Jobs.Name -notcontains $j check、Stop-Function) | ○ |

### Start-DbaAgentJob (C-35 to C-42)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | ジョブが開始されること | E-05 ($currentjob.Start()、Idle状態チェック) | ○ |
| C-36 | 特定ステップから開始されること | E-05 (StepName parameter、$currentjob.Start($StepName)) | ○ |
| C-37 | Waitで完了まで待機すること | E-05 (Wait switch、$waitBlock scriptblock) | ○ |
| C-38 | AllJobsで全ジョブが開始されること | E-05 (AllJobs switch、$InputObject += $server.JobServer.Jobs) | ○ |
| C-39 | Parallelで並列実行されること | E-05 (Parallel switch、Wait with Parallel logic) | ○ |
| C-40 | 実行中ジョブでエラーになること | E-05 ($status -ne 'Idle' check、Stop-Function) | ○ |
| C-41 | パラメータなしでエラーになること | E-05 (Test-Bound checks for AllJobs/Job/InputObject、Stop-Function) | ○ |
| C-42 | 存在しないステップ名でスキップされること | E-05 ($currentjob.JobSteps.Name -contains $StepName check、continue) | ○ |

### Stop-DbaAgentJob (C-43 to C-46)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | 実行中ジョブが停止されること | E-06 ($currentjob.Stop()、Idle状態チェック) | ○ |
| C-44 | Waitで停止完了まで待機すること | E-06 (Wait switch、while loop until Idle) | ○ |
| C-45 | 除外ジョブが停止されないこと | E-06 (ExcludeJob parameter、Where-Object Name -NotIn $ExcludeJob) | ○ |
| C-46 | Idleジョブでエラーになること | E-06 ($status -eq 'Idle' check、Stop-Function) | ○ |

### Get-DbaAgentSchedule (C-47 to C-52)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-47 | 全てのスケジュールが取得できること | E-07 ($server.JobServer.SharedSchedules) | ○ |
| C-48 | スケジュール名でフィルタリングできること | E-07 (Schedule parameter、Where-Object Name -in $Schedule) | ○ |
| C-49 | スケジュールUIDでフィルタリングできること | E-07 (ScheduleUid parameter、Where-Object ScheduleUid -in $ScheduleUid) | ○ |
| C-50 | スケジュールIDでフィルタリングできること | E-07 (Id parameter、Where-Object Id -in $Id) | ○ |
| C-51 | Descriptionが生成されること | E-07 (Get-ScheduleDescription function) | ○ |
| C-52 | Express Editionでエラーになること | E-07 (Edition -like 'Express*' check、Stop-Function) | ○ |

### New-DbaAgentSchedule (C-53 to C-61)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-53 | 日次スケジュールが作成されること | E-08 (FrequencyType='Daily'、$jobschedule.FrequencyTypes = 4) | ○ |
| C-54 | 週次スケジュールが作成されること | E-08 (FrequencyType='Weekly'、FrequencyTypes = 8) | ○ |
| C-55 | 月次スケジュールが作成されること | E-08 (FrequencyType='Monthly'、FrequencyTypes = 16) | ○ |
| C-56 | サブデイ間隔で作成されること | E-08 (FrequencySubdayType、FrequencySubdayInterval) | ○ |
| C-57 | ジョブにアタッチされること | E-08 (Job parameter、$j.AddSharedSchedule) | ○ |
| C-58 | FrequencyTextからスケジュールが作成されること | E-08 (FrequencyText parameter、regex parsing) | ○ |
| C-59 | スケジュール名なしでエラーになること | E-08 (-not $Schedule check、Stop-Function) | ○ |
| C-60 | 不正な開始日でエラーになること | E-08 (StartDate validation、try/catch New-Object DateTime) | ○ |
| C-61 | 終了日が開始日より前でエラーになること | E-08 ($activeEndDate -lt $activeStartDate check、Stop-Function) | ○ |

### Remove-DbaAgentSchedule (C-62 to C-66)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-62 | スケジュールが削除されること | E-09 ($sched.Drop()、IsRemoved = $true) | ○ |
| C-63 | UIDでスケジュールが削除されること | E-09 (ScheduleUid parameter、Get-DbaAgentSchedule) | ○ |
| C-64 | Forceで使用中スケジュールが削除されること | E-09 (Force parameter、EnumJobReferences、$jobSchedule.Drop) | ○ |
| C-65 | 使用中スケジュールでエラーになること | E-09 ($sched.JobCount -ge 1 -and -not $Force check、Stop-Function) | ○ |
| C-66 | InputObjectと他パラメータ同時使用でエラーになること | E-09 (end block validation、Stop-Function) | ○ |

### Set-DbaAgentSchedule (C-67 to C-72)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-67 | スケジュールが有効化されること | E-10 (Enabled switch、$JobSchedule.IsEnabled = $true) | ○ |
| C-68 | スケジュール名が変更されること | E-10 (NewName parameter、$JobSchedule.Rename($NewName)) | ○ |
| C-69 | 頻度タイプが変更されること | E-10 (FrequencyType parameter、$JobSchedule.FrequencyTypes) | ○ |
| C-70 | 開始時刻が変更されること | E-10 (StartTime parameter、$JobSchedule.ActiveStartTimeOfDay) | ○ |
| C-71 | 不正な日付形式でエラーになること | E-10 ($StartDate -notmatch $RegexDate check、Stop-Function) | ○ |
| C-72 | 存在しないスケジュールでエラーになること | E-10 (JobSchedules.Name -notcontains $Schedule check、Stop-Function) | ○ |

### Get-DbaAgentOperator (C-73 to C-77)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-73 | 全てのオペレータが取得できること | E-11 ($server.JobServer.Operators) | ○ |
| C-74 | オペレータ名でフィルタリングできること | E-11 (Operator parameter、Where-Object Name -In $Operator) | ○ |
| C-75 | RelatedJobsが含まれること | E-11 (Add-Member RelatedJobs、$jobs filtering) | ○ |
| C-76 | RelatedAlertsが含まれること | E-11 (Add-Member RelatedAlerts、$alerts EnumNotifications) | ○ |
| C-77 | Express Editionでエラーになること | E-11 (Edition -like 'Express*' check、Stop-Function) | ○ |

### New-DbaAgentOperator (C-78 to C-83)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-78 | メールアドレス付きオペレータが作成されること | E-12 (EmailAddress parameter、$operators.EmailAddress) | ○ |
| C-79 | ページャー設定付きオペレータが作成されること | E-12 (PagerAddress、PagerDay parameters) | ○ |
| C-80 | フェイルセーフオペレータとして設定されること | E-12 (IsFailsafeOperator switch、AlertSystem.FailSafeOperator) | ○ |
| C-81 | Forceで既存オペレータが置換されること | E-12 (Force parameter、$server.JobServer.Operators[$operator].Drop()) | ○ |
| C-82 | 通知アドレスなしでエラーになること | E-12 ($null -eq $EmailAddress -and ... check、Stop-Function) | ○ |
| C-83 | 既存オペレータがForceなしでスキップされること | E-12 (Get-DbaAgentOperator count check、continue) | ○ |

### Get-DbaAgentAlert (C-84 to C-88)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-84 | 全てのアラートが取得できること | E-13 ($server.Jobserver.Alerts) | ○ |
| C-85 | アラート名でフィルタリングできること | E-13 (Alert parameter、Where-Object Name -like $a) | ○ |
| C-86 | 除外アラートが結果から除外されること | E-13 (ExcludeAlert parameter、Where-Object Name -notlike $e) | ○ |
| C-87 | Notificationsが含まれること | E-13 (Add-Member Notifications、$alrt.EnumNotifications()) | ○ |
| C-88 | Express Editionでエラーになること | E-13 (Edition -like 'Express*' check、Stop-Function) | ○ |

### Get-DbaAgentJobStep (C-89 to C-92)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-89 | 全てのジョブステップが取得できること | E-14 ($InputObject.jobsteps foreach) | ○ |
| C-90 | ジョブ名でフィルタリングできること | E-14 (Job parameter、Where-Object Name -In $Job) | ○ |
| C-91 | 無効ジョブが除外されること | E-14 (ExcludeDisabledJobs、Where-Object IsEnabled -eq $true) | ○ |
| C-92 | InputObjectからステップが取得できること | E-14 (InputObject parameter) | ○ |

### New-DbaAgentJobStep (C-93 to C-99)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-93 | T-SQLステップが作成されること | E-15 (Subsystem='TransactSql'、$jobStep.Create()) | ○ |
| C-94 | PowerShellステップが作成されること | E-15 (Subsystem='PowerShell') | ○ |
| C-95 | 成功時/失敗時アクションが設定されること | E-15 (OnSuccessAction、OnFailAction parameters) | ○ |
| C-96 | リトライ設定が適用されること | E-15 (RetryAttempts、RetryInterval parameters) | ○ |
| C-97 | Insertでステップが挿入されること | E-15 (Insert switch、step ID renumbering logic) | ○ |
| C-98 | OnSuccessStepIdがGoToStep以外で使用されたらエラーになること | E-15 (begin block validation、Stop-Function) | ○ |
| C-99 | 存在しないジョブでエラーになること | E-15 (Jobs.Name -notcontains $j check、Write-Message Warning) | ○ |

### Get-DbaAgentJobHistory (C-100 to C-106)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-100 | 全ての履歴が取得できること | E-16 ($server.JobServer.EnumJobHistory($filter)) | ○ |
| C-101 | ジョブ名でフィルタリングできること | E-16 (Job parameter、$filter.JobName) | ○ |
| C-102 | 日付範囲でフィルタリングできること | E-16 (StartDate、EndDate parameters、$filter) | ○ |
| C-103 | OutcomeTypeでフィルタリングできること | E-16 (OutcomeType parameter、$filter.OutcomeTypes) | ○ |
| C-104 | ExcludeJobStepsでジョブレベルのみ取得できること | E-16 (ExcludeJobSteps、Where-Object StepID -eq 0) | ○ |
| C-105 | WithOutputFileで出力ファイルパスが含まれること | E-16 (WithOutputFile switch、Resolve-JobToken function) | ○ |
| C-106 | ExcludeJobStepsとWithOutputFileの同時使用でエラーになること | E-16 (begin block validation、Stop-Function) | ○ |

### Get-DbaAgentServer (C-107 to C-109)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-107 | Agent設定が取得できること | E-17 ($server.JobServer) | ○ |
| C-108 | 複数インスタンスから取得できること | E-17 (foreach ($instance in $SqlInstance)) | ○ |
| C-109 | JobHistoryIsEnabledが計算されること | E-17 (Add-Member ScriptProperty JobHistoryIsEnabled) | ○ |

### Set-DbaAgentServer (C-110 to C-115)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-110 | AgentLogLevelが設定されること | E-18 (AgentLogLevel parameter、$jobServer.AgentLogLevel) | ○ |
| C-111 | MaximumHistoryRowsが設定されること | E-18 (MaximumHistoryRows parameter) | ○ |
| C-112 | DatabaseMailProfileが設定されること | E-18 (DatabaseMailProfile parameter、Get-DbaDbMail check) | ○ |
| C-113 | CpuPollingが有効化されること | E-18 (CpuPolling parameter、$jobServer.IsCpuPollingEnabled) | ○ |
| C-114 | 不正なMaximumHistoryRowsでエラーになること | E-18 (begin block validation、Stop-Function) | ○ |
| C-115 | 存在しないDBメールプロファイルで警告になること | E-18 (Get-DbaDbMail check、Write-Message Warning) | ○ |

### Find-DbaAgentJob (C-116 to C-123)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-116 | ジョブ名パターンで検索できること | E-19 (JobName parameter、Get-JobList -JobFilter) | ○ |
| C-117 | 失敗ジョブが検索できること | E-19 (IsFailed switch、Where-Object LastRunOutcome -eq "Failed") | ○ |
| C-118 | 無効ジョブが検索できること | E-19 (IsDisabled switch、Where-Object IsEnabled -eq $false) | ○ |
| C-119 | スケジュールなしジョブが検索できること | E-19 (IsNotScheduled switch、Where-Object HasSchedule -eq $false) | ○ |
| C-120 | メール通知なしジョブが検索できること | E-19 (IsNoEmailNotification switch、OperatorToEmail IsNullOrEmpty) | ○ |
| C-121 | LastUsedで未使用ジョブが検索できること | E-19 (LastUsed parameter、$SinceDate comparison) | ○ |
| C-122 | カテゴリで検索できること | E-19 (Category parameter、Where-Object Category -contains) | ○ |
| C-123 | 検索条件なしでエラーになること | E-19 (begin block validation、Stop-Function) | ○ |

### Copy-DbaAgentJob (C-124 to C-135)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-124 | ジョブがコピーされること | E-20 ($serverJob.Script()、$destServer.Query($sql)) | ○ |
| C-125 | 特定ジョブのみコピーされること | E-20 (Job parameter、Get-DbaAgentJob filtering) | ○ |
| C-126 | Forceで既存ジョブが置換されること | E-20 (Force parameter、Drop and recreate logic) | ○ |
| C-127 | ソースで無効化されること | E-20 (DisableOnSource switch、$serverJob.IsEnabled = $false) | ○ |
| C-128 | 宛先で無効化されること | E-20 (DisableOnDestination switch、destination job IsEnabled = $False) | ○ |
| C-129 | UseLastModifiedで新しいジョブのみコピーされること | E-20 (UseLastModified switch、date_modified comparison) | ○ |
| C-130 | メンテナンスプランジョブがスキップされること | E-20 (sysmaintplan_plans query、Status = "Skipped") | ○ |
| C-131 | 依存DBが存在しない場合スキップされること | E-20 ($missingDb.Count check、Status = "Skipped") | ○ |
| C-132 | 依存ログインが存在しない場合スキップされること | E-20 ($missingLogin.Count check、Status = "Skipped") | ○ |
| C-133 | 依存プロキシが存在しない場合スキップされること | E-20 ($missingProxy check、Status = "Skipped") | ○ |
| C-134 | 依存オペレータが存在しない場合スキップされること | E-20 ($missingOperators.Count check、Status = "Skipped") | ○ |
| C-135 | 既存ジョブがForceなしでスキップされること | E-20 ($destJobs.name -contains check、Status = "Skipped") | ○ |

## 4) 不足情報（Unknown / Missing）
- 現時点で根拠なしの項目はありません
- 全てのテストケースはソースコード解析に基づいて生成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全てのテストケースに根拠が存在
- 追加の確認が推奨される項目:
  - 実際のSQL Server環境でのテスト実行による動作確認
  - エッジケースやパフォーマンス関連のテストケースの追加検討

## 6) レビュアーチェックリスト（最小）
- [ ] 正常系テストケースが主要な機能をカバーしていることを確認
- [ ] 異常系テストケースがエラーハンドリングをカバーしていることを確認
- [ ] 境界値テストケースが適切に設定されていることを確認
- [ ] テストケースの優先度が適切に設定されていることを確認
- [ ] 入力値と期待結果が明確に記載されていることを確認
