---
generated_at: 2026-01-29 18:05:00
metrics:
  claims_total: 97
  claims_with_evidence: 97
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：Core-System-Language 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：97 / 97、根拠なし：0
- 優先レビュー（高）
  1. **LanguageValidator の継承制限テスト（UT-LNG-061〜064）**：2階層以上の継承禁止ロジックの検証
  2. **TranslationValidator のシステム翻訳保護（UT-LNG-066〜069）**：システム言語翻訳の削除禁止検証
  3. **LanguageRule のマッチング（UT-LNG-075〜080）**：ルールエンジンとの統合検証

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

- E-01: `src/Core/System/Language/LanguageEntity.php` - 言語エンティティクラス（全getter/setter、リレーション定義）
- E-02: `src/Core/System/Language/LanguageCollection.php` - 言語コレクションクラス（フィルタメソッド、ID取得メソッド）
- E-03: `src/Core/System/Language/LanguageDefinition.php` - 言語定義クラス（フィールド定義、デフォルト値、リレーション定義）
- E-04: `src/Core/System/Language/LanguageLoader.php` - 言語ローダー（DB接続、クエリ構築）
- E-05: `src/Core/System/Language/CachedLanguageLoader.php` - キャッシュ付きローダー（キャッシュ取得、無効化、イベント購読）
- E-06: `src/Core/System/Language/LanguageValidator.php` - 言語バリデーター（継承制限、翻訳コード検証、削除制限）
- E-07: `src/Core/System/Language/TranslationValidator.php` - 翻訳バリデーター（システム翻訳削除禁止）
- E-08: `src/Core/System/Language/SalesChannelLanguageLoader.php` - 販売チャネル言語ローダー（インメモリキャッシュ、リセット機能）
- E-09: `src/Core/System/Language/Rule/LanguageRule.php` - 言語ルール（match、getConstraints、getConfig）
- E-10: `src/Core/System/Language/SalesChannel/LanguageRoute.php` - Store API言語ルート（load、buildName、getDecorated）
- E-11: `src/Core/System/Language/SalesChannel/LanguageRouteResponse.php` - ルートレスポンス（getLanguages）
- E-12: `src/Core/System/Language/SalesChannel/SalesChannelLanguageDefinition.php` - 販売チャネル言語定義（processCriteria）
- E-13: `src/Core/System/Language/SalesChannel/AbstractLanguageRoute.php` - 抽象言語ルート（インターフェース定義）
- E-14: `src/Core/System/Language/LanguageException.php` - 言語例外クラス（unsupportedValue）
- E-15: `src/Core/System/Language/LanguageExceptionHandler.php` - 例外ハンドラー（非推奨、getPriority、matchException）
- E-16: `src/Core/System/Language/LanguageEvents.php` - 言語イベント定数クラス
- E-17: `src/Core/System/Language/LanguageLoaderInterface.php` - ローダーインターフェース
- E-18: `src/Core/System/Language/Exception/LanguageForeignKeyDeleteException.php` - 外部キー削除例外（非推奨）
- E-19: `src/Core/System/Language/Event/LanguageRouteCacheKeyEvent.php` - キャッシュキーイベント（非推奨）
- E-20: `src/Core/System/Language/Event/LanguageRouteCacheTagsEvent.php` - キャッシュタグイベント（非推奨）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01〜C-30 | LanguageEntityのgetter/setter、リレーション取得が正しく動作すること | E-01 | ○ |
| C-31〜C-42 | LanguageCollectionのフィルタ、ID取得メソッドが正しく動作すること | E-02 | ○ |
| C-43〜C-48 | LanguageDefinitionのフィールド定義、デフォルト値が正しいこと | E-03 | ○ |
| C-49〜C-52 | LanguageLoaderがDBから言語データを正しく読み込むこと | E-04 | ○ |
| C-53〜C-56 | CachedLanguageLoaderがキャッシュを正しく管理すること | E-05 | ○ |
| C-57〜C-65 | LanguageValidatorが継承制限、削除制限を正しく検証すること | E-06 | ○ |
| C-66〜C-70 | TranslationValidatorがシステム翻訳削除を禁止すること | E-07 | ○ |
| C-71〜C-74 | SalesChannelLanguageLoaderが販売チャネル言語を正しく読み込むこと | E-08 | ○ |
| C-75〜C-80 | LanguageRuleがルールマッチングを正しく実行すること | E-09 | ○ |
| C-81〜C-85 | LanguageRouteがStore APIで言語一覧を返却すること | E-10 | ○ |
| C-86 | LanguageRouteResponseが言語コレクションを返却すること | E-11 | ○ |
| C-87 | SalesChannelLanguageDefinitionが販売チャネルフィルタを追加すること | E-12 | ○ |
| C-88〜C-89 | LanguageExceptionが例外を正しく生成すること | E-14 | ○ |
| C-90〜C-91 | LanguageExceptionHandler（非推奨）が正しく動作すること | E-15 | ○ |
| C-92〜C-94 | LanguageEventsの定数が正しいこと | E-16 | ○ |
| C-95〜C-97 | LanguageForeignKeyDeleteException（非推奨）が正しく動作すること | E-18 | ○ |

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

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 全テストケースがソースコードに基づいて生成されており、根拠が明確です

### 注意点
1. **LanguageValidator**: デフォルト言語（Defaults::LANGUAGE_SYSTEM）の削除・親設定禁止は重要なビジネスロジックです。テスト実装時には実際のデフォルト言語IDを使用してください。
2. **TranslationValidator**: システム翻訳の保護はデータ整合性に直結するため、高優先度でテストしてください。
3. **非推奨クラス**: `LanguageExceptionHandler`、`LanguageForeignKeyDeleteException`、`LanguageRouteCacheKeyEvent`、`LanguageRouteCacheTagsEvent`は v6.8.0 で削除予定です。テスト実装は任意ですが、移行期間中のサポートを考慮してください。
4. **CachedLanguageLoader**: キャッシュの動作検証にはモックの使用を推奨します。

## 6) レビュアーチェックリスト（最小）
- [ ] LanguageValidatorの継承制限（2階層以上禁止）テストケースが網羅されているか
- [ ] LanguageValidatorのデフォルト言語保護テストケースが網羅されているか
- [ ] TranslationValidatorのシステム翻訳削除禁止テストケースが網羅されているか
- [ ] LanguageRuleのオペレータ（EQ, NEQ等）テストケースが網羅されているか
- [ ] LanguageRoute/SalesChannelLanguageDefinitionの販売チャネルフィルタテストケースが網羅されているか
- [ ] 非推奨クラスのテストケースは実装優先度を下げてよいか確認されているか
- [ ] LanguageCollection/LanguageEntityのリレーション取得テストケースで、未ロード時のnull返却が考慮されているか
