---
generated_at: 2026-01-29 10:30:00
metrics:
  claims_total: 140
  claims_with_evidence: 140
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：140 / 140、根拠なし：0
- 優先レビュー（高）
  1. **TaxRuleTypeフィルターのマッチングロジック**：税計算に直接影響する重要なビジネスロジック
  2. **TaxRuleCollectionのソート・フィルタ機能**：税ルール適用の優先順位に関わる
  3. **税率（taxRate）の設定・取得メソッド**：金額計算に直接影響

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

- E-01: `src/Core/System/Tax/TaxEntity.php`
- E-02: `src/Core/System/Tax/TaxDefinition.php`
- E-03: `src/Core/System/Tax/TaxCollection.php`
- E-04: `src/Core/System/Tax/TaxEvents.php`
- E-05: `src/Core/System/Tax/Aggregate/TaxRule/TaxRuleEntity.php`
- E-06: `src/Core/System/Tax/Aggregate/TaxRule/TaxRuleDefinition.php`
- E-07: `src/Core/System/Tax/Aggregate/TaxRule/TaxRuleCollection.php`
- E-08: `src/Core/System/Tax/Aggregate/TaxRuleType/TaxRuleTypeEntity.php`
- E-09: `src/Core/System/Tax/Aggregate/TaxRuleType/TaxRuleTypeDefinition.php`
- E-10: `src/Core/System/Tax/Aggregate/TaxRuleType/TaxRuleTypeCollection.php`
- E-11: `src/Core/System/Tax/Aggregate/TaxRuleTypeTranslation/TaxRuleTypeTranslationEntity.php`
- E-12: `src/Core/System/Tax/Aggregate/TaxRuleTypeTranslation/TaxRuleTypeTranslationDefinition.php`
- E-13: `src/Core/System/Tax/Aggregate/TaxRuleTypeTranslation/TaxRuleTypeTranslationCollection.php`
- E-14: `src/Core/System/Tax/TaxRuleType/TaxRuleTypeFilterInterface.php`
- E-15: `src/Core/System/Tax/TaxRuleType/AbstractTaxRuleTypeFilter.php`
- E-16: `src/Core/System/Tax/TaxRuleType/EntireCountryRuleTypeFilter.php`
- E-17: `src/Core/System/Tax/TaxRuleType/IndividualStatesRuleTypeFilter.php`
- E-18: `src/Core/System/Tax/TaxRuleType/ZipCodeRuleTypeFilter.php`
- E-19: `src/Core/System/Tax/TaxRuleType/ZipCodeRangeRuleTypeFilter.php`

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

### TaxEntity関連（UT-TAX-001 - UT-TAX-015）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | TaxEntity::getTaxRate()が税率を返却する | E-01 (L31-34) | ○ |
| C-02 | TaxEntity::setTaxRate()が税率を設定する | E-01 (L36-39) | ○ |
| C-03 | TaxEntity::getName()が名前を返却する | E-01 (L41-44) | ○ |
| C-04 | TaxEntity::setName()が名前を設定する | E-01 (L46-49) | ○ |
| C-05 | TaxEntity::getPosition()が位置を返却する | E-01 (L51-54) | ○ |
| C-06 | TaxEntity::setPosition()が位置を設定する | E-01 (L56-59) | ○ |
| C-07 | TaxEntity::getProducts()がProductCollectionまたはnullを返却する | E-01 (L61-64) | ○ |
| C-08 | TaxEntity::setProducts()がProductCollectionを設定する | E-01 (L66-69) | ○ |
| C-09 | TaxEntity::getRules()がTaxRuleCollectionまたはnullを返却する | E-01 (L71-74) | ○ |
| C-10 | TaxEntity::setRules()がTaxRuleCollectionを設定する | E-01 (L76-79) | ○ |
| C-11 | TaxEntity::getShippingMethods()がShippingMethodCollectionまたはnullを返却する | E-01 (L81-84) | ○ |
| C-12 | TaxEntity::setShippingMethods()がShippingMethodCollectionを設定する | E-01 (L86-89) | ○ |

### TaxDefinition関連（UT-TAX-016 - UT-TAX-021）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 | TaxDefinition::ENTITY_NAMEが'tax'である | E-02 (L28) | ○ |
| C-14 | TaxDefinition::getCollectionClass()がTaxCollection::classを返却する | E-02 (L35-38) | ○ |
| C-15 | TaxDefinition::getEntityClass()がTaxEntity::classを返却する | E-02 (L40-43) | ○ |
| C-16 | TaxDefinition::since()が'6.0.0.0'を返却する | E-02 (L45-48) | ○ |
| C-17 | TaxDefinition::getDefaults()が['position' => 0]を返却する | E-02 (L50-55) | ○ |
| C-18 | TaxDefinition::defineFields()が必要なフィールドを含むFieldCollectionを返却する | E-02 (L57-69) | ○ |

### TaxCollection関連（UT-TAX-022 - UT-TAX-023）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-19 | TaxCollection::getApiAlias()が'tax_collection'を返却する | E-03 (L14-17) | ○ |
| C-20 | TaxCollection::getExpectedClass()がTaxEntity::classを返却する | E-03 (L19-22) | ○ |

### TaxRuleEntity関連（UT-TAX-024 - UT-TAX-048）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-21 | TaxRuleEntity::getTaxId()が税IDを返却する | E-05 (L41-44) | ○ |
| C-22 | TaxRuleEntity::setTaxId()が税IDを設定する | E-05 (L46-49) | ○ |
| C-23 | TaxRuleEntity::getTax()がTaxEntityまたはnullを返却する | E-05 (L51-54) | ○ |
| C-24 | TaxRuleEntity::setTax()がTaxEntityを設定する | E-05 (L56-59) | ○ |
| C-25 | TaxRuleEntity::getCountryId()が国IDを返却する | E-05 (L61-64) | ○ |
| C-26 | TaxRuleEntity::setCountryId()が国IDを設定する | E-05 (L66-69) | ○ |
| C-27 | TaxRuleEntity::getCountry()がCountryEntityまたはnullを返却する | E-05 (L71-74) | ○ |
| C-28 | TaxRuleEntity::setCountry()がCountryEntityを設定する | E-05 (L76-79) | ○ |
| C-29 | TaxRuleEntity::getTaxRuleTypeId()が税ルールタイプIDを返却する | E-05 (L81-84) | ○ |
| C-30 | TaxRuleEntity::setTaxRuleTypeId()が税ルールタイプIDを設定する | E-05 (L86-89) | ○ |
| C-31 | TaxRuleEntity::getType()がTaxRuleTypeEntityを返却する（deprecated挙動含む） | E-05 (L94-101) | ○ |
| C-32 | TaxRuleEntity::setType()がTaxRuleTypeEntityを設定する | E-05 (L103-106) | ○ |
| C-33 | TaxRuleEntity::getTaxRate()が税率を返却する | E-05 (L111-114) | ○ |
| C-34 | TaxRuleEntity::setTaxRate()が税率を設定する | E-05 (L116-119) | ○ |
| C-35 | TaxRuleEntity::getData()がデータ配列またはnullを返却する | E-05 (L124-127) | ○ |
| C-36 | TaxRuleEntity::setData()がデータ配列を設定する | E-05 (L132-135) | ○ |
| C-37 | TaxRuleEntity::getActiveFrom()が有効開始日時またはnullを返却する | E-05 (L137-140) | ○ |
| C-38 | TaxRuleEntity::setActiveFrom()が有効開始日時を設定する | E-05 (L142-145) | ○ |

### TaxRuleCollection関連（UT-TAX-049 - UT-TAX-058）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-39 | TaxRuleCollection::sortByTypePosition()がタイプのpositionでソートする | E-07 (L14-17) | ○ |
| C-40 | TaxRuleCollection::filterByTypePosition()が指定positionでフィルタする | E-07 (L19-22) | ○ |
| C-41 | TaxRuleCollection::highestTypePosition()が最高優先度のルールを返却する | E-07 (L24-27) | ○ |
| C-42 | TaxRuleCollection::latestActivationDate()が最新有効開始日時のルールを返却する | E-07 (L29-32) | ○ |
| C-43 | TaxRuleCollection::getApiAlias()が'tax_rule_collection'を返却する | E-07 (L34-37) | ○ |
| C-44 | TaxRuleCollection::getExpectedClass()がTaxRuleEntity::classを返却する | E-07 (L39-42) | ○ |

### TaxRuleTypeEntity関連（UT-TAX-064 - UT-TAX-075）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-45 | TaxRuleTypeEntity::getTypeName()がタイプ名を返却する | E-08 (L26-29) | ○ |
| C-46 | TaxRuleTypeEntity::setTypeName()がタイプ名を設定する | E-08 (L31-34) | ○ |
| C-47 | TaxRuleTypeEntity::getTechnicalName()が技術名を返却する | E-08 (L36-39) | ○ |
| C-48 | TaxRuleTypeEntity::setTechnicalName()が技術名を設定する | E-08 (L41-44) | ○ |
| C-49 | TaxRuleTypeEntity::getPosition()が位置を返却する | E-08 (L66-69) | ○ |
| C-50 | TaxRuleTypeEntity::setPosition()が位置を設定する | E-08 (L71-74) | ○ |
| C-51 | TaxRuleTypeEntity::getRules()がTaxRuleCollectionまたはnullを返却する | E-08 (L46-49) | ○ |
| C-52 | TaxRuleTypeEntity::setRules()がTaxRuleCollectionを設定する | E-08 (L51-54) | ○ |
| C-53 | TaxRuleTypeEntity::getTranslations()が翻訳コレクションまたはnullを返却する | E-08 (L56-59) | ○ |
| C-54 | TaxRuleTypeEntity::setTranslations()が翻訳コレクションを設定する | E-08 (L61-64) | ○ |

### TaxRuleTypeCollection関連（UT-TAX-081 - UT-TAX-085）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-55 | TaxRuleTypeCollection::getByTechnicalName()が技術名でエンティティを検索する | E-10 (L14-23) | ○ |
| C-56 | TaxRuleTypeCollection::getApiAlias()が'tax_rule_type_collection'を返却する | E-10 (L25-28) | ○ |
| C-57 | TaxRuleTypeCollection::getExpectedClass()がTaxRuleTypeEntity::classを返却する | E-10 (L30-33) | ○ |

### TaxRuleTypeフィルター関連（UT-TAX-103 - UT-TAX-135）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | AbstractTaxRuleTypeFilter::isTaxActive()が有効開始日時を判定する | E-15 (L13-16) | ○ |
| C-59 | EntireCountryRuleTypeFilter::match()が国全体ルールを判定する | E-16 (L15-28) | ○ |
| C-60 | EntireCountryRuleTypeFilter::TECHNICAL_NAMEが'entire_country'である | E-16 (L13) | ○ |
| C-61 | IndividualStatesRuleTypeFilter::match()が州別ルールを判定する | E-17 (L15-35) | ○ |
| C-62 | IndividualStatesRuleTypeFilter::TECHNICAL_NAMEが'individual_states'である | E-17 (L13) | ○ |
| C-63 | ZipCodeRuleTypeFilter::match()が郵便番号ルールを判定する | E-18 (L15-36) | ○ |
| C-64 | ZipCodeRuleTypeFilter::TECHNICAL_NAMEが'zip_code'である | E-18 (L13) | ○ |
| C-65 | ZipCodeRangeRuleTypeFilter::match()が郵便番号範囲ルールを判定する | E-19 (L15-37) | ○ |
| C-66 | ZipCodeRangeRuleTypeFilter::TECHNICAL_NAMEが'zip_code_range'である | E-19 (L13) | ○ |

### TaxEvents関連（UT-TAX-136 - UT-TAX-140）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-67 | TaxEvents::TAX_WRITTEN_EVENTが'tax.written'である | E-04 (L10) | ○ |
| C-68 | TaxEvents::TAX_DELETED_EVENTが'tax.deleted'である | E-04 (L12) | ○ |
| C-69 | TaxEvents::TAX_LOADED_EVENTが'tax.loaded'である | E-04 (L14) | ○ |
| C-70 | TaxEvents::TAX_SEARCH_RESULT_LOADED_EVENTが'tax.search.result.loaded'である | E-04 (L16) | ○ |
| C-71 | TaxEvents::TAX_AGGREGATION_LOADED_EVENTが'tax.aggregation.result.loaded'である | E-04 (L18) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし
  - 全てのテストケースはソースコードに直接基づいて生成されています

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

### 特に注意すべき点
1. **TaxRuleTypeフィルターのmatchメソッド（リスク: 1）**
   - 税計算に直接影響するビジネスロジック
   - 条件分岐が複雑で、境界値テストが重要
   - 有効開始日時（activeFrom）の判定ロジックの確認が必要

2. **TaxRuleCollectionのソート・フィルタ機能（リスク: 1）**
   - 税ルール適用の優先順位に関わる
   - 空のコレクションやnull値の挙動確認が重要

3. **TaxRuleEntity::getType()のdeprecated挙動（リスク: 1）**
   - v6.8.0で戻り値の型がnullableに変更予定
   - 現在はnullの場合に新しいTaxRuleTypeEntityを返却する挙動

## 6) レビュアーチェックリスト（最小）
- [ ] TaxRuleTypeフィルターのmatchメソッドの条件分岐が正しくテストされているか確認
- [ ] 郵便番号範囲（ZipCodeRangeRuleTypeFilter）の境界値テストが適切か確認
- [ ] 有効開始日時（activeFrom）の判定ロジックのテストが適切か確認
- [ ] TaxRuleCollectionのソート・フィルタ機能が空のコレクションで正しく動作するか確認
- [ ] deprecated挙動（TaxRuleEntity::getType）のテストが将来の変更に対応しているか確認
- [ ] 金額計算に影響する税率（taxRate）関連のテストが網羅されているか確認
