---
generated_at: 2026-02-18 10:30:00
metrics:
  claims_total: 100
  claims_with_evidence: 98
  claims_without_evidence: 2
confidence_derived: 0.98
---

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

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：98 / 100、根拠なし：2
- 優先レビュー（高）
  1. **UT-RPL-053 (Pull Subscription作成)**：コード内にTODOコメントあり「Fix pull subscriptions」
  2. **UT-RPL-082 (Trans Subscription削除)**：Pushサブスクリプションのみ対応のTODOコメントあり

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

- E-01: `public/Get-DbaReplServer.ps1` - レプリケーションサーバー取得コマンド
- E-02: `public/Get-DbaReplDistributor.ps1` - Distributor情報取得コマンド
- E-03: `public/Get-DbaReplPublisher.ps1` - Publisher情報取得コマンド
- E-04: `public/Get-DbaReplPublication.ps1` - パブリケーション取得コマンド
- E-05: `public/Get-DbaReplArticle.ps1` - アーティクル取得コマンド
- E-06: `public/Get-DbaReplArticleColumn.ps1` - アーティクル列取得コマンド
- E-07: `public/Get-DbaReplSubscription.ps1` - サブスクリプション取得コマンド
- E-08: `public/Enable-DbaReplDistributor.ps1` - Distributor有効化コマンド
- E-09: `public/Enable-DbaReplPublishing.ps1` - Publishing有効化コマンド
- E-10: `public/Disable-DbaReplDistributor.ps1` - Distributor無効化コマンド
- E-11: `public/Disable-DbaReplPublishing.ps1` - Publishing無効化コマンド
- E-12: `public/New-DbaReplPublication.ps1` - パブリケーション作成コマンド
- E-13: `public/New-DbaReplSubscription.ps1` - サブスクリプション作成コマンド
- E-14: `public/New-DbaReplCreationScriptOptions.ps1` - スクリプトオプション作成コマンド
- E-15: `public/Add-DbaReplArticle.ps1` - アーティクル追加コマンド
- E-16: `public/Remove-DbaReplArticle.ps1` - アーティクル削除コマンド
- E-17: `public/Remove-DbaReplPublication.ps1` - パブリケーション削除コマンド
- E-18: `public/Remove-DbaReplSubscription.ps1` - サブスクリプション削除コマンド
- E-19: `public/Export-DbaReplServerSetting.ps1` - レプリケーション設定エクスポートコマンド
- E-20: `public/Test-DbaReplLatency.ps1` - レプリケーションレイテンシテストコマンド

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

### Get-DbaReplServer (UT-RPL-001 - UT-RPL-005)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ReplicationServerオブジェクトが取得できる | E-01: L90-97 | ○ |
| C-02 | 複数インスタンスに対応 | E-01: L88 foreach文 | ○ |
| C-03 | SqlCredentialパラメータをサポート | E-01: L80-81 | ○ |
| C-04 | 接続エラー時にStop-Functionが呼ばれる | E-01: L98-100 | ○ |
| C-05 | IsDistributor/IsPublisherプロパティが表示される | E-01: L97 Select-DefaultView | ○ |

### Get-DbaReplDistributor (UT-RPL-006 - UT-RPL-008)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-06 | Distributor情報が取得できる | E-02: L83-91 | ○ |
| C-07 | パイプライン入力をサポート | E-02: L73 ValueFromPipeline | ○ |
| C-08 | 接続エラー時にStop-Functionが呼ばれる | E-02: L86-88 | ○ |

### Get-DbaReplPublisher (UT-RPL-009 - UT-RPL-011)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-09 | Publisher情報が取得できる | E-03: L90-103 | ○ |
| C-10 | パイプライン入力をサポート | E-03: L75 ValueFromPipeline | ○ |
| C-11 | Publisherがない場合は何も返さない | E-03: L97 if ($publisher) | ○ |

### Get-DbaReplPublication (UT-RPL-012 - UT-RPL-016)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-12 | すべてのパブリケーションが取得できる | E-04: L138-179 | ○ |
| C-13 | Database絞り込みができる | E-04: L130-132 | ○ |
| C-14 | Name絞り込みができる | E-04: L157-159 | ○ |
| C-15 | Type絞り込みができる | E-04: L153-155 | ○ |
| C-16 | パブリケーションがない場合はスキップ | E-04: L141-146 | ○ |

### Get-DbaReplArticle (UT-RPL-017 - UT-RPL-020)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-17 | すべてのアーティクルが取得できる | E-05: L139-165 | ○ |
| C-18 | Publication絞り込みができる | E-05: L145-147 | ○ |
| C-19 | Schema絞り込みができる | E-05: L151-153 | ○ |
| C-20 | Name絞り込みができる | E-05: L154-156 | ○ |

### Get-DbaReplArticleColumn (UT-RPL-021 - UT-RPL-025)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-21 | アーティクル列情報が取得できる | E-06: L116-192 | ○ |
| C-22 | 垂直パーティションなしで全列が返る | E-06: L136-138 | ○ |
| C-23 | 垂直パーティションありで指定列のみ返る | E-06: L139-166 | ○ |
| C-24 | Column絞り込みができる | E-06: L168-170 | ○ |
| C-25 | テーブルが見つからない場合警告が出る | E-06: L126-129 | ○ |

### Get-DbaReplSubscription (UT-RPL-026 - UT-RPL-030)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-26 | すべてのサブスクリプションが取得できる | E-07: L138-178 | ○ |
| C-27 | PublicationName絞り込みができる | E-07: L144-146 | ○ |
| C-28 | SubscriberName絞り込みができる | E-07: L156-158 | ○ |
| C-29 | SubscriptionDatabase絞り込みができる | E-07: L160-162 | ○ |
| C-30 | Type絞り込みができる | E-07: L164-166 | ○ |

### Enable-DbaReplDistributor (UT-RPL-031 - UT-RPL-034)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | デフォルトDB名でDistributorが有効化できる | E-08: L87, L101 | ○ |
| C-32 | カスタムDB名を指定できる | E-08: L87 DistributionDatabase パラメータ | ○ |
| C-33 | WhatIfをサポート | E-08: L82 SupportsShouldProcess | ○ |
| C-34 | エラー時にStop-Functionが呼ばれる | E-08: L109-111 | ○ |

### Enable-DbaReplPublishing (UT-RPL-035 - UT-RPL-038)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | デフォルトパスでPublishingが有効化できる | E-09: L105-108 | ○ |
| C-36 | カスタムスナップショット共有を指定できる | E-09: L85 SnapshotShare | ○ |
| C-37 | SQL認証でPublisherSecurityが設定できる | E-09: L114-119 | ○ |
| C-38 | Distributor未構成時にエラー | E-09: L138-140 | ○ |

### Disable-DbaReplDistributor (UT-RPL-039 - UT-RPL-042)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-39 | Distributorが無効化できる | E-10: L104-109 | ○ |
| C-40 | Forceオプションをサポート | E-10: L92, L108 | ○ |
| C-41 | Distributor未構成時にエラー | E-10: L117-119 | ○ |
| C-42 | 分散DB接続がクローズされる | E-10: L106 Get-DbaProcess/Stop-DbaProcess | ○ |

### Disable-DbaReplPublishing (UT-RPL-043 - UT-RPL-045)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | Publishingが無効化できる | E-11: L99-104 | ○ |
| C-44 | Forceオプションをサポート | E-11: L87, L100 | ○ |
| C-45 | Publisher未構成時にエラー | E-11: L109-111 | ○ |

### New-DbaReplPublication (UT-RPL-046 - UT-RPL-051)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 | Transactionalパブリケーション作成 | E-12: L145-148, L171-182 | ○ |
| C-47 | Snapshotパブリケーション作成 | E-12: L145-148, L171-182 | ○ |
| C-48 | Mergeパブリケーション作成 | E-12: L165-169, L196-204 | ○ |
| C-49 | LogReaderAgentCredentialが設定できる | E-12: L152-155 | ○ |
| C-50 | Publisher未構成時にエラー | E-12: L124-126 | ○ |
| C-51 | DB未存在時にエラー | E-12: L141-143 | ○ |

### New-DbaReplSubscription (UT-RPL-052 - UT-RPL-057)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-52 | Pushサブスクリプション作成 | E-13: L191-248 | ○ |
| C-53 | Pullサブスクリプション作成 | E-13: L205-216 | △ |
| C-54 | サブスクリプションDB自動作成 | E-13: L150-163 | ○ |
| C-55 | スキーマ自動作成 | E-13: L174-179 | ○ |
| C-56 | SubscriptionSqlCredentialが設定できる | E-13: L242-246 | ○ |
| C-57 | Publication未存在時にエラー | E-13: L136-139 | ○ |

### New-DbaReplCreationScriptOptions (UT-RPL-058 - UT-RPL-061)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | デフォルトオプションでCreationScriptOptions作成 | E-14: L95-99 | ○ |
| C-59 | カスタムオプション追加 | E-14: L101-103 | ○ |
| C-60 | NoDefaultsでデフォルト除外 | E-14: L97 if (-not $NoDefaults) | ○ |
| C-61 | オプションなしでデフォルトのみ返る | E-14: L97-99 | ○ |

### Add-DbaReplArticle (UT-RPL-062 - UT-RPL-070)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-62 | Transactionalパブリケーションにアーティクル追加 | E-15: L184-186 | ○ |
| C-63 | Mergeパブリケーションにアーティクル追加 | E-15: L187-190 | ○ |
| C-64 | スキーマ指定対応 | E-15: L141, L196 | ○ |
| C-65 | フィルタ設定対応 | E-15: L210-214 | ○ |
| C-66 | CreationScriptOptions適用 | E-15: L204-208 | ○ |
| C-67 | 無効なCreationScriptOptionsでエラー | E-15: L151-153 | ○ |
| C-68 | FilterにWHERE含むとエラー | E-15: L155-157 | ○ |
| C-69 | Publication未存在時にエラー | E-15: L171-173 | ○ |
| C-70 | 既存アーティクルでエラー | E-15: L217-221 | ○ |

### Remove-DbaReplArticle (UT-RPL-071 - UT-RPL-075)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-71 | アーティクル削除 | E-16: L155-161 | ○ |
| C-72 | パイプライン対応 | E-16: L105-106, L121-122 | ○ |
| C-73 | サブスクリプションクリーンアップ | E-16: L150-154 | ○ |
| C-74 | パラメータバリデーション | E-16: L116-119 | ○ |
| C-75 | アーティクル未存在時にエラー | E-16: L157-159 | ○ |

### Remove-DbaReplPublication (UT-RPL-076 - UT-RPL-081)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-76 | Transactionalパブリケーション削除 | E-17: L122-139 | ○ |
| C-77 | Mergeパブリケーション削除 | E-17: L160-178 | ○ |
| C-78 | パイプライン対応 | E-17: L82-83, L96-97 | ○ |
| C-79 | LogReaderジョブ停止 | E-17: L127-129, L164-166 | ○ |
| C-80 | 最後のパブリケーション削除時にTransPublishing無効化 | E-17: L141-155 | ○ |
| C-81 | パラメータバリデーション | E-17: L91-94 | ○ |

### Remove-DbaReplSubscription (UT-RPL-082 - UT-RPL-085)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-82 | Transactionalサブスクリプション削除 | E-18: L116-130 | △ |
| C-83 | Mergeサブスクリプション削除 | E-18: L132-146 | ○ |
| C-84 | Publication未存在時に警告 | E-18: L105-107 | ○ |
| C-85 | Subscription未存在時に警告 | E-18: L143-145 | ○ |

### Export-DbaReplServerSetting (UT-RPL-086 - UT-RPL-091)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-86 | ファイル出力 | E-19: L146-147 | ○ |
| C-87 | Passthru対応 | E-19: L140-144 | ○ |
| C-88 | パイプライン対応 | E-19: L105-106, L121 | ○ |
| C-89 | カスタムScriptOption対応 | E-19: L128, L134-136 | ○ |
| C-90 | Append対応 | E-19: L111, L147 | ○ |
| C-91 | レプリケーション未設定時にエラー | E-19: L137-139 | ○ |

### Test-DbaReplLatency (UT-RPL-092 - UT-RPL-100)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-92 | レプリケーションレイテンシ測定 | E-20: L151-153, L199-254 | ○ |
| C-93 | Database絞り込み | E-20: L127 | ○ |
| C-94 | PublicationName絞り込み | E-20: L129-131 | ○ |
| C-95 | TimeToLiveタイムアウト | E-20: L108, L210-213 | ○ |
| C-96 | RetainToken対応 | E-20: L109, L249-252 | ○ |
| C-97 | DisplayTokenHistory対応 | E-20: L110, L194-197 | ○ |
| C-98 | PublisherToDistributorLatency計算 | E-20: L243 | ○ |
| C-99 | TotalLatency計算 | E-20: L223-227, L245 | ○ |
| C-100 | DBNull処理 | E-20: L223-227 | ○ |

## 4) 不足情報（Unknown / Missing）

- **C-53 (UT-RPL-053 Pull Subscription作成)**：
  - New-DbaReplSubscription.ps1のL206にTODOコメント「#TODO: Fix pull subscriptions in New-DbaReplSubscription command - this still creates a PUSH」があり、Pull サブスクリプションの実装が未完了である可能性がある
  - 候補：実装確認 / テストケース削除 / 実装完了後に追加

- **C-82 (UT-RPL-082 Trans Subscription削除)**：
  - Remove-DbaReplSubscription.ps1のL118にTODOコメント「#TODO: Only handles push subscriptions at the moment - need to add pull subscriptions」があり、Push サブスクリプションのみ対応
  - 候補：Pull対応追加 / テストケースをPushのみに限定

## 5) リスクフラグ（レビュー観点）

| リスクレベル | 対象 | 理由 |
|---|---|---|
| 2 (高) | C-53 Pull Subscription作成 | TODOコメントがあり実装が不完全の可能性 |
| 2 (高) | C-82 Trans Subscription削除 | Pushのみ対応のTODOコメントあり |
| 1 (中) | 全体的なSQL Server接続テスト | 実際のSQL Server環境が必要なテストケースが多数 |
| 1 (中) | レプリケーション構成テスト | レプリケーションが正しく構成された環境が必要 |
| 0 (低) | Get系コマンド | 読み取り専用で副作用なし |

## 6) レビュアーチェックリスト（最小）

- [ ] UT-RPL-053 (Pull Subscription作成) のテストケースが現在の実装で実行可能か確認
- [ ] UT-RPL-082 (Trans Subscription削除) がPushサブスクリプションのみを対象としているか確認
- [ ] テスト環境でのレプリケーション構成要件を満たせるか確認
- [ ] 各コマンドのSQL Server最小バージョン要件（MinimumVersion 9 = SQL Server 2005）を確認
- [ ] EnableExceptionパラメータを使用したテストケースのエラーハンドリング動作を確認
- [ ] WhatIf/Confirmパラメータを持つコマンドのShouldProcess動作を確認
