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

# 根拠レポート：public-Extended.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：64 / 64、根拠なし：0
- 優先レビュー（高）
  1. **該当なし**：全てのテストケースにソースコードからの根拠あり

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `public/Get-DbaExtendedProperty.ps1` - 拡張プロパティ取得関数（163行）
- E-02: `public/Add-DbaExtendedProperty.ps1` - 拡張プロパティ追加関数（184行）
- E-03: `public/Set-DbaExtendedProperty.ps1` - 拡張プロパティ更新関数（92行）
- E-04: `public/Remove-DbaExtendedProperty.ps1` - 拡張プロパティ削除関数（91行）
- E-05: `public/Get-DbaExtendedProtection.ps1` - Extended Protection設定取得関数（145行）
- E-06: `public/Set-DbaExtendedProtection.ps1` - Extended Protection設定変更関数（173行）
- E-07: `public/Copy-DbaExtendedStoredProcedure.ps1` - 拡張ストアドプロシージャコピー関数（348行）
- E-08: `docs/code-to-docs/単体テストケース一覧/plan.md` - プロジェクト情報とモジュール定義

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

### Get-DbaExtendedProperty (UT-EXT-001 - UT-EXT-007)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | SqlInstanceを指定してデータベースの拡張プロパティを取得できる | E-01: L112-114 (SqlInstance指定時のGet-DbaDatabase呼び出し) | ○ |
| C-02 | Nameパラメータで特定の拡張プロパティのみ取得できる | E-01: L124-125 (Where-Object Name -in $Name) | ○ |
| C-03 | 複数のプロパティ名を指定して取得できる | E-01: L106 ([string[]]$Name) | ○ |
| C-04 | パイプライン経由でオブジェクトを受け取り拡張プロパティを取得できる | E-01: L107-108 ([parameter(ValueFromPipeline)]) | ○ |
| C-05 | 拡張プロパティが存在しない場合に適切に処理される | E-01: L119-122 ($null -eq $props時のWrite-Message) | ○ |
| C-06 | 指定したNameが存在しない場合に空の結果が返る | E-01: L124-125 (Where-Objectで該当なしの場合) | ○ |
| C-07 | ComputerName等がない入力オブジェクトでも処理できる | E-01: L133-148 (Get-ConnectionParent呼び出し) | ○ |

### Add-DbaExtendedProperty (UT-EXT-008 - UT-EXT-015)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-08 | データベースに新しい拡張プロパティを追加できる | E-02: L167-169 (New-Object ExtendedProperty, Create()) | ○ |
| C-09 | パイプライン経由でテーブルに拡張プロパティを追加できる | E-02: L134-135 ([parameter(ValueFromPipeline)]) | ○ |
| C-10 | ストアドプロシージャに拡張プロパティを追加できる | E-02: L117 (EXAMPLEにGet-DbaDbStoredProcedure記載) | ○ |
| C-11 | 同名の拡張プロパティが既に存在する場合にエラーとなる | E-02: L179-181 (catch, Stop-Function) | ○ |
| C-12 | WhatIfで実際の追加なしにシミュレーションできる | E-02: L124 (SupportsShouldProcess) | ○ |
| C-13 | 空文字列のValueを追加できる | E-02: L132-133 ([string]$Value - 空文字許容) | ○ |
| C-14 | Nameパラメータが未指定の場合にエラーとなる | E-02: L129-131 ([parameter(Mandatory)]) | ○ |
| C-15 | Valueパラメータが未指定の場合にエラーとなる | E-02: L132-133 ([parameter(Mandatory)]) | ○ |

### Set-DbaExtendedProperty (UT-EXT-016 - UT-EXT-022)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | 既存の拡張プロパティの値を更新できる | E-03: L82-84 ($object.Value = $Value, Alter()) | ○ |
| C-17 | パイプライン経由で複数の拡張プロパティを一括更新できる | E-03: L71-72 (ValueFromPipeline, ExtendedProperty[]) | ○ |
| C-18 | WhatIfで実際の更新なしにシミュレーションできる | E-03: L69 (SupportsShouldProcess) | ○ |
| C-19 | InputObjectが未指定の場合にエラーとなる | E-03: L71 ([parameter(Mandatory)]) | ○ |
| C-20 | Valueパラメータが未指定の場合にエラーとなる | E-03: L73-74 ([parameter(Mandatory)]) | ○ |
| C-21 | SMO Alter操作が失敗した場合にエラー処理される | E-03: L86-88 (catch, Stop-Function) | ○ |
| C-22 | 空文字列のValueで更新できる | E-03: L74 ([string]$Value - 空文字許容) | ○ |

### Remove-DbaExtendedProperty (UT-EXT-023 - UT-EXT-028)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-23 | 拡張プロパティを削除できる | E-04: L75-84 (sp_dropextendedproperty, Status='Dropped') | ○ |
| C-24 | Confirm:$falseで確認なしに削除できる | E-04: L64 (ConfirmImpact = 'High') | ○ |
| C-25 | パイプライン経由で複数の拡張プロパティを一括削除できる | E-04: L66-67 (ValueFromPipeline, ExtendedProperty[]) | ○ |
| C-26 | WhatIfで実際の削除なしにシミュレーションできる | E-04: L64 (SupportsShouldProcess) | ○ |
| C-27 | InputObjectが未指定の場合にエラーとなる | E-04: L66 ([parameter(Mandatory)]) | ○ |
| C-28 | sp_dropextendedpropertyが失敗した場合にエラー処理される | E-04: L85-87 (catch, Stop-Function) | ○ |

### Get-DbaExtendedProtection (UT-EXT-029 - UT-EXT-035)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-29 | デフォルトインスタンスのExtended Protection設定を取得できる | E-05: L67-68 ($SqlInstance = $env:COMPUTERNAME) | ○ |
| C-30 | 名前付きインスタンスのExtended Protection設定を取得できる | E-05: L59 (EXAMPLE: sql01\SQL2008R2SP2) | ○ |
| C-31 | 代替資格情報でリモートサーバーにアクセスできる | E-05: L69 ([PSCredential]$Credential) | ○ |
| C-32 | ネットワーク名解決に失敗した場合にエラー処理される | E-05: L82-88 (catch, Stop-Function) | ○ |
| C-33 | WMIアクセスに失敗した場合にエラー処理される | E-05: L92-94 (catch, Stop-Function) | ○ |
| C-34 | レジストリルートが見つからない場合にエラー処理される | E-05: L112-114 (Stop-Function, ObjectNotFound) | ○ |
| C-35 | ローカルホストの場合に管理者権限チェックが行われる | E-05: L76-78 (Test-ElevationRequirement) | ○ |

### Set-DbaExtendedProtection (UT-EXT-036 - UT-EXT-046)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | Extended ProtectionをOffに設定できる | E-06: L95 (switch: "Off" { 0 }) | ○ |
| C-37 | Extended ProtectionをAllowedに設定できる | E-06: L95 (switch: "Allowed" { 1 }) | ○ |
| C-38 | Extended ProtectionをRequiredに設定できる | E-06: L95 (switch: "Required" { 2 }) | ○ |
| C-39 | 数値0でOffを設定できる | E-06: L88 (ValidateSet(0, "Off", 1, ...)) | ○ |
| C-40 | 数値1でAllowedを設定できる | E-06: L88 (ValidateSet(..., 1, "Allowed", ...)) | ○ |
| C-41 | 数値2でRequiredを設定できる | E-06: L88 (ValidateSet(..., 2, "Required")) | ○ |
| C-42 | WhatIfで実際の変更なしにシミュレーションできる | E-06: L83 (SupportsShouldProcess) | ○ |
| C-43 | 代替資格情報でリモートサーバーを設定できる | E-06: L87 ([PSCredential]$Credential) | ○ |
| C-44 | 無効なValue値の場合にパラメータ検証エラーとなる | E-06: L88 (ValidateSet) | ○ |
| C-45 | PowerShellリモーティング接続に失敗した場合にエラー処理される | E-06: L167-169 (catch, Stop-Function) | ○ |
| C-46 | Valueのデフォルト値がOffである | E-06: L89 ($Value = "Off") | ○ |

### Copy-DbaExtendedStoredProcedure (UT-EXT-047 - UT-EXT-064)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-47 | ソースサーバーからカスタム拡張ストアドプロシージャを取得できる | E-07: L137-149 (SQL query: is_ms_shipped = 0) | ○ |
| C-48 | 拡張ストアドプロシージャを宛先サーバーにコピーできる | E-07: L322 (sp_addextendedproc) | ○ |
| C-49 | ExtendedProcedureパラメータで特定のXPのみコピーできる | E-07: L219-221 ($ExtendedProcedure フィルタ) | ○ |
| C-50 | ExcludeExtendedProcedureパラメータで特定のXPを除外できる | E-07: L223-225 ($ExcludeExtendedProcedure フィルタ) | ○ |
| C-51 | 宛先に同名XPが存在する場合にスキップされる | E-07: L230-239 (Status = "Skipped") | ○ |
| C-52 | Forceオプションで既存XPを上書きできる | E-07: L241-259 (sp_dropextendedproc, 再作成) | ○ |
| C-53 | DLLファイルがコピーされる | E-07: L297-306 (Copy-Item UNCパス) | ○ |
| C-54 | DestinationPathで指定した場所にDLLをコピーできる | E-07: L183-192 ($DestinationPath処理) | ○ |
| C-55 | DLLコピーに失敗してもXP定義は作成される | E-07: L329 (Status = "Successful (DLL not copied)") | ○ |
| C-56 | WhatIfで実際のコピーなしにシミュレーションできる | E-07: L111 (SupportsShouldProcess) | ○ |
| C-57 | ソースサーバーへの接続に失敗した場合にエラー処理される | E-07: L129-131 (catch, Stop-Function) | ○ |
| C-58 | 宛先サーバーへの接続に失敗した場合にエラー処理される | E-07: L171-173 (catch, Stop-Function) | ○ |
| C-59 | DLLパスが特定できない場合にエラー処理される | E-07: L276-282 (Status = "Failed") | ○ |
| C-60 | sp_addextendedprocが失敗した場合にエラー処理される | E-07: L336-341 (catch, Status = "Failed") | ○ |
| C-61 | ソースサーバーにカスタムXPが存在しない場合に何も処理されない | E-07: L158-160 (Write-Message "No custom Extended Stored Procedures") | ○ |
| C-62 | SQL Server 2005以降のみサポートされる | E-07: L128 (Connect-DbaInstance -MinimumVersion 9) | ○ |
| C-63 | 複数の宛先サーバーに同時にコピーできる | E-07: L117 ([DbaInstanceParameter[]]$Destination) | ○ |
| C-64 | Forceで既存XPの削除に失敗した場合にエラー処理される | E-07: L252-258 (catch, Status = "Failed") | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし
  - 全てのテストケースはソースコードの実装から直接導出されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全てのテストケースがソースコードに根拠を持っています

### 追加検討事項（リスク0だが検討推奨）
1. **実環境テスト**: Extended Protection関連のテスト（UT-EXT-029〜046）は、実際のSQL Serverインスタンスとレジストリアクセスが必要なため、モック化の方針を検討
2. **DLLコピーテスト**: Copy-DbaExtendedStoredProcedure（UT-EXT-053〜055）のDLLコピー機能は、ファイルシステムアクセスとUNCパスが必要なため、テスト環境の準備が必要
3. **パイプラインテスト**: パイプライン経由の入力テスト（UT-EXT-004, 009, 017, 025等）は、依存するGet-Dba*コマンドの出力形式に依存

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースの網羅性：正常系/異常系/境界値が各関数でカバーされているか確認
- [ ] Mandatory属性のあるパラメータに対応するテストケースの存在を確認（UT-EXT-014, 015, 019, 020, 027）
- [ ] SupportsShouldProcess対応関数にWhatIfテストケースが存在することを確認（UT-EXT-012, 018, 026, 42, 56）
- [ ] Stop-Function呼び出し箇所に対応するエラー処理テストケースの存在を確認
- [ ] パイプライン入力対応関数にパイプラインテストケースが存在することを確認
- [ ] ValidateSet制約に対するパラメータ検証テストケースの存在を確認（UT-EXT-044）
- [ ] 複数宛先対応（Copy-DbaExtendedStoredProcedure）のテストケースを確認（UT-EXT-063）
