---
generated_at: 2026-01-29 17:50:00
metrics:
  claims_total: 132
  claims_with_evidence: 132
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：132 / 132、根拠なし：0
- 優先レビュー（高）
  1. **ProductStreamBuilder::buildFilters** - フィルター構築ロジックの重要機能
  2. **ProductStreamIndexer::handle** - インデックス処理の核心部分
  3. **UpdateProductStreamMappingTaskHandler::run** - スケジュールタスクの実行ロジック

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

- E-01: `src/Core/Content/ProductStream/ProductStreamEntity.php`
- E-02: `src/Core/Content/ProductStream/ProductStreamDefinition.php`
- E-03: `src/Core/Content/ProductStream/ProductStreamCollection.php`
- E-04: `src/Core/Content/ProductStream/ProductStreamHydrator.php`
- E-05: `src/Core/Content/ProductStream/Aggregate/ProductStreamFilter/ProductStreamFilterEntity.php`
- E-06: `src/Core/Content/ProductStream/Aggregate/ProductStreamFilter/ProductStreamFilterDefinition.php`
- E-07: `src/Core/Content/ProductStream/Aggregate/ProductStreamFilter/ProductStreamFilterCollection.php`
- E-08: `src/Core/Content/ProductStream/Aggregate/ProductStreamFilter/ProductStreamFilterHydrator.php`
- E-09: `src/Core/Content/ProductStream/Aggregate/ProductStreamTranslation/ProductStreamTranslationEntity.php`
- E-10: `src/Core/Content/ProductStream/Aggregate/ProductStreamTranslation/ProductStreamTranslationDefinition.php`
- E-11: `src/Core/Content/ProductStream/Aggregate/ProductStreamTranslation/ProductStreamTranslationCollection.php`
- E-12: `src/Core/Content/ProductStream/Service/ProductStreamBuilder.php`
- E-13: `src/Core/Content/ProductStream/Service/ProductStreamBuilderInterface.php`
- E-14: `src/Core/Content/ProductStream/Exception/FilterNotFoundException.php`
- E-15: `src/Core/Content/ProductStream/Exception/NoFilterException.php`
- E-16: `src/Core/Content/ProductStream/Event/ProductStreamIndexerEvent.php`
- E-17: `src/Core/Content/ProductStream/DataAbstractionLayer/ProductStreamIndexer.php`
- E-18: `src/Core/Content/ProductStream/DataAbstractionLayer/ProductStreamIndexingMessage.php`
- E-19: `src/Core/Content/ProductStream/ScheduledTask/UpdateProductStreamMappingTask.php`
- E-20: `src/Core/Content/ProductStream/ScheduledTask/UpdateProductStreamMappingTaskHandler.php`

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

### ProductStreamEntity (UT-PST-001 ~ UT-PST-024)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ProductStreamEntity::getName は名前を返却する | E-01 (L42-45) | ○ |
| C-02 | ProductStreamEntity::setName は名前を設定する | E-01 (L47-50) | ○ |
| C-03 | ProductStreamEntity::getDescription は説明を返却する | E-01 (L52-55) | ○ |
| C-04 | ProductStreamEntity::setDescription は説明を設定する | E-01 (L57-60) | ○ |
| C-05 | ProductStreamEntity::getApiFilter はAPIフィルター配列を返却する | E-01 (L65-68) | ○ |
| C-06 | ProductStreamEntity::setApiFilter はAPIフィルターを設定する | E-01 (L73-76) | ○ |
| C-07 | ProductStreamEntity::getFilters はProductStreamFilterCollectionを返却する | E-01 (L78-81) | ○ |
| C-08 | ProductStreamEntity::setFilters はフィルターコレクションを設定する | E-01 (L83-86) | ○ |
| C-09 | ProductStreamEntity::isInvalid は無効フラグを返却する | E-01 (L88-91) | ○ |
| C-10 | ProductStreamEntity::setInvalid は無効フラグを設定する | E-01 (L93-96) | ○ |
| C-11 | ProductStreamEntity::getTranslations は翻訳コレクションを返却する | E-01 (L98-101) | ○ |
| C-12 | ProductStreamEntity::setTranslations は翻訳コレクションを設定する | E-01 (L103-106) | ○ |
| C-13 | ProductStreamEntity::getProductExports は商品エクスポートを返却する | E-01 (L108-111) | ○ |
| C-14 | ProductStreamEntity::getProductCrossSellings はクロスセリングを返却する | E-01 (L118-121) | ○ |
| C-15 | ProductStreamEntity::getCategories はカテゴリを返却する | E-01 (L128-131) | ○ |

### ProductStreamDefinition (UT-PST-025 ~ UT-PST-030)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | ProductStreamDefinition::getEntityName は"product_stream"を返却する | E-02 (L29, L31-34) | ○ |
| C-17 | ProductStreamDefinition::getCollectionClass はProductStreamCollectionを返却する | E-02 (L36-39) | ○ |
| C-18 | ProductStreamDefinition::getEntityClass はProductStreamEntityを返却する | E-02 (L41-44) | ○ |
| C-19 | ProductStreamDefinition::since は"6.0.0.0"を返却する | E-02 (L46-49) | ○ |
| C-20 | ProductStreamDefinition::getHydratorClass はProductStreamHydratorを返却する | E-02 (L51-54) | ○ |
| C-21 | ProductStreamDefinition::defineFields はフィールドコレクションを返却する | E-02 (L56-73) | ○ |

### ProductStreamCollection (UT-PST-031 ~ UT-PST-032)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | ProductStreamCollection::getApiAlias は"product_stream_collection"を返却する | E-03 (L14-17) | ○ |
| C-23 | ProductStreamCollection::getExpectedClass はProductStreamEntityを返却する | E-03 (L19-22) | ○ |

### ProductStreamHydrator (UT-PST-033 ~ UT-PST-038)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-24 | ProductStreamHydrator::assign はIDをHex形式に変換する | E-04 (L17-19) | ○ |
| C-25 | ProductStreamHydrator::assign はapiFilterをデコードする | E-04 (L20-22) | ○ |
| C-26 | ProductStreamHydrator::assign はinvalidをboolに変換する | E-04 (L23-25) | ○ |
| C-27 | ProductStreamHydrator::assign はcreatedAtをDateTimeImmutableに変換する | E-04 (L26-28) | ○ |
| C-28 | ProductStreamHydrator::assign はupdatedAtをDateTimeImmutableに変換する | E-04 (L29-31) | ○ |

### ProductStreamFilterEntity (UT-PST-039 ~ UT-PST-061)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-29 | ProductStreamFilterEntity::getField はフィールド名を返却する | E-05 (L42-45) | ○ |
| C-30 | ProductStreamFilterEntity::setField はフィールド名を設定する | E-05 (L47-50) | ○ |
| C-31 | ProductStreamFilterEntity::getOperator は演算子を返却する | E-05 (L52-55) | ○ |
| C-32 | ProductStreamFilterEntity::setOperator は演算子を設定する | E-05 (L57-60) | ○ |
| C-33 | ProductStreamFilterEntity::getValue は値を返却する | E-05 (L62-65) | ○ |
| C-34 | ProductStreamFilterEntity::setValue は値を設定する | E-05 (L67-70) | ○ |
| C-35 | ProductStreamFilterEntity::getProductStreamId はProductStream IDを返却する | E-05 (L72-75) | ○ |
| C-36 | ProductStreamFilterEntity::getParentId は親IDを返却する | E-05 (L82-85) | ○ |
| C-37 | ProductStreamFilterEntity::getProductStream はProductStreamEntityを返却する | E-05 (L92-95) | ○ |
| C-38 | ProductStreamFilterEntity::getQueries は子クエリコレクションを返却する | E-05 (L102-105) | ○ |
| C-39 | ProductStreamFilterEntity::getParent は親フィルターを返却する | E-05 (L112-115) | ○ |
| C-40 | ProductStreamFilterEntity::getPosition は位置を返却する | E-05 (L122-125) | ○ |
| C-41 | ProductStreamFilterEntity::getType はタイプを返却する | E-05 (L132-135) | ○ |
| C-42 | ProductStreamFilterEntity::getParameters はパラメータ配列を返却する | E-05 (L145-148) | ○ |

### ProductStreamFilterDefinition (UT-PST-062 ~ UT-PST-067)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | ProductStreamFilterDefinition::getEntityName は"product_stream_filter"を返却する | E-06 (L26, L28-31) | ○ |
| C-44 | ProductStreamFilterDefinition::getEntityClass はProductStreamFilterEntityを返却する | E-06 (L33-36) | ○ |
| C-45 | ProductStreamFilterDefinition::getCollectionClass はProductStreamFilterCollectionを返却する | E-06 (L38-41) | ○ |
| C-46 | ProductStreamFilterDefinition::since は"6.0.0.0"を返却する | E-06 (L43-46) | ○ |
| C-47 | ProductStreamFilterDefinition::getHydratorClass はProductStreamFilterHydratorを返却する | E-06 (L48-51) | ○ |
| C-48 | ProductStreamFilterDefinition::getParentDefinitionClass はProductStreamDefinitionを返却する | E-06 (L53-56) | ○ |

### ProductStreamFilterCollection (UT-PST-068 ~ UT-PST-069)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-49 | ProductStreamFilterCollection::getApiAlias は"product_stream_filter_collection"を返却する | E-07 (L14-17) | ○ |
| C-50 | ProductStreamFilterCollection::getExpectedClass はProductStreamFilterEntityを返却する | E-07 (L19-22) | ○ |

### ProductStreamFilterHydrator (UT-PST-070 ~ UT-PST-079)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | ProductStreamFilterHydrator::assign はIDをHex形式に変換する | E-08 (L17-19) | ○ |
| C-52 | ProductStreamFilterHydrator::assign はproductStreamIdをHex形式に変換する | E-08 (L20-22) | ○ |
| C-53 | ProductStreamFilterHydrator::assign はparentIdをHex形式に変換する | E-08 (L23-25) | ○ |
| C-54 | ProductStreamFilterHydrator::assign はtypeを文字列として設定する | E-08 (L26-28) | ○ |
| C-55 | ProductStreamFilterHydrator::assign はfieldを文字列として設定する | E-08 (L29-31) | ○ |
| C-56 | ProductStreamFilterHydrator::assign はoperatorを文字列として設定する | E-08 (L32-34) | ○ |
| C-57 | ProductStreamFilterHydrator::assign はvalueをデコードする | E-08 (L35-37) | ○ |
| C-58 | ProductStreamFilterHydrator::assign はparametersをデコードする | E-08 (L38-40) | ○ |
| C-59 | ProductStreamFilterHydrator::assign はpositionを整数に変換する | E-08 (L41-43) | ○ |
| C-60 | ProductStreamFilterHydrator::assign はproductStreamリレーションをハイドレートする | E-08 (L53) | ○ |

### ProductStreamTranslationEntity (UT-PST-080 ~ UT-PST-087)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-61 | ProductStreamTranslationEntity::getProductStreamId はProductStream IDを返却する | E-09 (L23-26) | ○ |
| C-62 | ProductStreamTranslationEntity::setProductStreamId はProductStream IDを設定する | E-09 (L28-31) | ○ |
| C-63 | ProductStreamTranslationEntity::getName は名前を返却する | E-09 (L33-36) | ○ |
| C-64 | ProductStreamTranslationEntity::setName は名前を設定する | E-09 (L38-41) | ○ |
| C-65 | ProductStreamTranslationEntity::getDescription は説明を返却する | E-09 (L43-46) | ○ |
| C-66 | ProductStreamTranslationEntity::setDescription は説明を設定する | E-09 (L48-51) | ○ |
| C-67 | ProductStreamTranslationEntity::getProductStream はProductStreamEntityを返却する | E-09 (L53-56) | ○ |
| C-68 | ProductStreamTranslationEntity::setProductStream はProductStreamEntityを設定する | E-09 (L58-61) | ○ |

### ProductStreamTranslationDefinition (UT-PST-088 ~ UT-PST-092)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-69 | ProductStreamTranslationDefinition::getEntityName は"product_stream_translation"を返却する | E-10 (L18, L20-23) | ○ |
| C-70 | ProductStreamTranslationDefinition::getCollectionClass はProductStreamTranslationCollectionを返却する | E-10 (L25-28) | ○ |
| C-71 | ProductStreamTranslationDefinition::getEntityClass はProductStreamTranslationEntityを返却する | E-10 (L30-33) | ○ |
| C-72 | ProductStreamTranslationDefinition::since は"6.0.0.0"を返却する | E-10 (L35-38) | ○ |
| C-73 | ProductStreamTranslationDefinition::getParentDefinitionClass はProductStreamDefinitionを返却する | E-10 (L40-43) | ○ |

### ProductStreamTranslationCollection (UT-PST-093 ~ UT-PST-099)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-74 | ProductStreamTranslationCollection::getProductStreamIds はProductStream ID配列を返却する | E-11 (L17-20) | ○ |
| C-75 | ProductStreamTranslationCollection::filterByProductStreamId は指定IDでフィルタリングする | E-11 (L22-25) | ○ |
| C-76 | ProductStreamTranslationCollection::getLanguageIds は言語ID配列を返却する | E-11 (L30-33) | ○ |
| C-77 | ProductStreamTranslationCollection::filterByLanguageId は指定言語IDでフィルタリングする | E-11 (L35-38) | ○ |
| C-78 | ProductStreamTranslationCollection::getApiAlias は"product_stream_translation_collection"を返却する | E-11 (L40-43) | ○ |

### ProductStreamBuilder (UT-PST-100 ~ UT-PST-103)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-79 | ProductStreamBuilder::buildFilters は存在しないIDでEntityNotFoundExceptionをスローする | E-12 (L40-42) | ○ |
| C-80 | ProductStreamBuilder::buildFilters はapiFilterがnullでNoFilterExceptionをスローする | E-12 (L44-47) | ○ |
| C-81 | ProductStreamBuilder::buildFilters はフィルター配列を構築して返却する | E-12 (L49-56) | ○ |

### Exceptions (UT-PST-104 ~ UT-PST-107)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-82 | FilterNotFoundException::__construct は適切なメッセージを生成する | E-14 (L11-13) | ○ |
| C-83 | FilterNotFoundException::getErrorCode は"CONTENT__PRODUCT_STREAM_FILTER_NOT_FOUND"を返却する | E-14 (L15-18) | ○ |
| C-84 | NoFilterException::__construct は適切なメッセージを生成する | E-15 (L11-13) | ○ |
| C-85 | NoFilterException::getErrorCode は"CONTENT__PRODUCT_STREAM_MISSING_FILTER"を返却する | E-15 (L15-18) | ○ |

### ProductStreamIndexerEvent (UT-PST-108 ~ UT-PST-113)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-86 | ProductStreamIndexerEvent::__construct はids, context, skipを受け取る | E-16 (L16-21) | ○ |
| C-87 | ProductStreamIndexerEvent::getContext はContextを返却する | E-16 (L23-26) | ○ |
| C-88 | ProductStreamIndexerEvent::getIds はID配列を返却する | E-16 (L31-34) | ○ |
| C-89 | ProductStreamIndexerEvent::getSkip はskip配列を返却する | E-16 (L39-42) | ○ |

### ProductStreamIndexer (UT-PST-114 ~ UT-PST-126)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-90 | ProductStreamIndexer::getName は"product_stream.indexer"を返却する | E-17 (L45-48) | ○ |
| C-91 | ProductStreamIndexer::iterate はProductStreamIndexingMessageを返却する | E-17 (L53-64) | ○ |
| C-92 | ProductStreamIndexer::update はProductStream更新時にメッセージを返却する | E-17 (L66-75) | ○ |
| C-93 | ProductStreamIndexer::handle はメッセージを処理してインデックスを更新する | E-17 (L77-127) | ○ |
| C-94 | ProductStreamIndexer::handle は無効なフィルターでinvalid=trueを設定する | E-17 (L113-124) | ○ |
| C-95 | ProductStreamIndexer::handle は処理完了後にイベントをディスパッチする | E-17 (L126) | ○ |
| C-96 | ProductStreamIndexer::getTotal は総数を返却する | E-17 (L129-132) | ○ |
| C-97 | ProductStreamIndexer::getDecorated はDecorationPatternExceptionをスローする | E-17 (L134-137) | ○ |

### ScheduledTask (UT-PST-127 ~ UT-PST-132)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-98 | UpdateProductStreamMappingTask::getTaskName は"product_stream.mapping.update"を返却する | E-19 (L11-14) | ○ |
| C-99 | UpdateProductStreamMappingTask::getDefaultInterval はDAILY定数を返却する | E-19 (L16-19) | ○ |
| C-100 | UpdateProductStreamMappingTask::shouldRescheduleOnFailure はtrueを返却する | E-19 (L21-24) | ○ |
| C-101 | UpdateProductStreamMappingTaskHandler::run はuntil/sinceフィルターを持つストリームを更新する | E-20 (L38-50) | ○ |
| C-102 | UpdateProductStreamMappingTaskHandler::run はCLIコンテキストを使用する | E-20 (L40) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（全ての主張にソースコードの根拠あり）

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースがソースコードから直接導出されている

## 6) レビュアーチェックリスト（最小）
- [ ] ProductStreamBuilder::buildFilters のフィルター構築ロジックが網羅的にテストされているか確認
- [ ] ProductStreamIndexer::handle の無効フィルター検出ロジックのテストが適切か確認
- [ ] UpdateProductStreamMappingTaskHandler::run のフィルター条件（until/since）が正しくテストされているか確認
- [ ] 階層構造（ProductStreamFilter の parent/queries 関係）のテストが十分か確認
- [ ] 翻訳機能（ProductStreamTranslation）のコレクション操作テストが適切か確認
