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

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：182 / 182、根拠なし：0
- 優先レビュー（高）
  1. 全テストケースがソースコードに基づいて作成されており、特に優先レビューが必要な項目はありません

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `src/Core/Content/ImportExport/ImportExportProfileEntity.php` - プロファイルエンティティ定義（239行）
- E-02: `src/Core/Content/ImportExport/ImportExportProfileDefinition.php` - プロファイル定義クラス（61行）
- E-03: `src/Core/Content/ImportExport/Aggregate/ImportExportLog/ImportExportLogEntity.php` - ログエンティティ定義（234行）
- E-04: `src/Core/Content/ImportExport/Aggregate/ImportExportLog/ImportExportLogDefinition.php` - ログ定義クラス（76行）
- E-05: `src/Core/Content/ImportExport/Aggregate/ImportExportFile/ImportExportFileEntity.php` - ファイルエンティティ定義（98行）
- E-06: `src/Core/Content/ImportExport/Aggregate/ImportExportFile/ImportExportFileDefinition.php` - ファイル定義クラス（51行）
- E-07: `src/Core/Content/ImportExport/Struct/Progress.php` - 進捗構造体（97行）
- E-08: `src/Core/Content/ImportExport/Struct/Config.php` - 設定構造体（83行）
- E-09: `src/Core/Content/ImportExport/Processing/Mapping/Mapping.php` - マッピングクラス（79行）
- E-10: `src/Core/Content/ImportExport/Processing/Mapping/MappingCollection.php` - マッピングコレクション（103行）
- E-11: `src/Core/Content/ImportExport/Service/ImportExportService.php` - インポート/エクスポートサービス（264行）
- E-12: `src/Core/Content/ImportExport/Service/FileService.php` - ファイルサービス（113行）
- E-13: `src/Core/Content/ImportExport/Service/MappingService.php` - マッピングサービス（279行）
- E-14: `src/Core/Content/ImportExport/Service/DownloadService.php` - ダウンロードサービス（105行）
- E-15: `src/Core/Content/ImportExport/Service/DeleteExpiredFilesService.php` - 期限切れファイル削除サービス（56行）
- E-16: `src/Core/Content/ImportExport/Processing/Reader/CsvReader.php` - CSVリーダー（165行）
- E-17: `src/Core/Content/ImportExport/Processing/Writer/CsvFileWriter.php` - CSVライター（50行）
- E-18: `src/Core/Content/ImportExport/Processing/Pipe/EntityPipe.php` - エンティティパイプ（53行）
- E-19: `src/Core/Content/ImportExport/DataAbstractionLayer/Serializer/SerializerRegistry.php` - シリアライザーレジストリ（80行）
- E-20: `src/Core/Content/ImportExport/DataAbstractionLayer/Serializer/Entity/EntitySerializer.php` - エンティティシリアライザー（94行）
- E-21: `src/Core/Content/ImportExport/ImportExport.php` - メインインポート/エクスポートクラス（791行）
- E-22: `src/Core/Content/ImportExport/ImportExportException.php` - 例外クラス（330行）

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

### ImportExportProfileEntity（UT-IEX-001〜015）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | getTechnicalName メソッドが技術名を返却する | E-01 L59-62 | ○ |
| C-02 | setTechnicalName メソッドが技術名を設定する | E-01 L64-67 | ○ |
| C-03 | getSystemDefault メソッドがシステムデフォルトフラグを返却する | E-01 L95-98 | ○ |
| C-04 | setSystemDefault メソッドがフラグを設定する | E-01 L100-103 | ○ |
| C-05 | getSourceEntity メソッドがソースエンティティを返却する | E-01 L105-108 | ○ |
| C-06 | getFileType メソッドがファイルタイプを返却する | E-01 L115-118 | ○ |
| C-07 | getDelimiter メソッドがデリミタを返却する（null許容） | E-01 L125-128, L34 | ○ |
| C-08 | getEnclosure メソッドがエンクロージャを返却する | E-01 L135-138 | ○ |
| C-09 | getMapping メソッドがマッピング配列を返却する | E-01 L148-152 | ○ |
| C-10 | getType メソッドがタイプを返却する（TYPE_IMPORT/EXPORT/IMPORT_EXPORT定数） | E-01 L17-19, L229-232 | ○ |
| C-11 | getUpdateBy メソッドが更新キー配列を返却する | E-01 L163-166 | ○ |
| C-12 | getImportExportLogs メソッドがログコレクションを返却する | E-01 L177-180 | ○ |
| C-13 | getConfig メソッドが設定配列を返却する | E-01 L190-193 | ○ |

### ImportExportLogEntity（UT-IEX-016〜032）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-14 | ACTIVITY_* 定数が定義されている（IMPORT/EXPORT/DRYRUN/INVALID_RECORDS_EXPORT/TEMPLATE） | E-03 L17-22 | ○ |
| C-15 | getActivity/setState メソッドが動作する | E-03 L62-80 | ○ |
| C-16 | getRecords/setRecords メソッドが動作する | E-03 L82-90 | ○ |
| C-17 | getUsername メソッドがnull許容で動作する | E-03 L92-100, L29 | ○ |
| C-18 | getProfileName メソッドが動作する | E-03 L102-110 | ○ |
| C-19 | getUser リレーションが動作する | E-03 L112-120, E-04 L66 | ○ |
| C-20 | getProfile リレーションが動作する | E-03 L132-140, E-04 L67 | ○ |
| C-21 | getFile リレーションが動作する | E-03 L152-160, E-04 L68 | ○ |
| C-22 | getConfig/getResult メソッドが配列を返却する | E-03 L175-200 | ○ |
| C-23 | getInvalidRecordsLog 自己参照リレーションが動作する | E-03 L214-222, E-04 L69 | ○ |
| C-24 | getFailedImportLog 逆参照リレーションが動作する | E-03 L224-232, E-04 L70 | ○ |

### ImportExportFileEntity（UT-IEX-033〜047）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-25 | getOriginalName/setOriginalName メソッドが動作する | E-05 L28-36 | ○ |
| C-26 | getPath/setPath メソッドが動作する | E-05 L38-46 | ○ |
| C-27 | getExpireDate/setExpireDate メソッドが動作する | E-05 L48-56 | ○ |
| C-28 | getSize/setSize メソッドが動作する | E-05 L58-66 | ○ |
| C-29 | getLog リレーションが動作する | E-05 L68-76, E-06 L46 | ○ |
| C-30 | getAccessToken メソッドがnull許容で動作する | E-05 L78-86, L26 | ○ |
| C-31 | generateAccessToken 静的メソッドがランダムトークンを生成する | E-05 L88-91 | ○ |
| C-32 | buildPath 静的メソッドがIDを8文字ずつ分割したパスを構築する | E-05 L93-96 | ○ |

### Progress構造体（UT-IEX-048〜064）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-33 | STATE_* 定数が定義されている（PROGRESS/MERGING_FILES/SUCCEEDED/FAILED/ABORTED） | E-07 L11-15 | ○ |
| C-34 | コンストラクタでlogId, state, offset, totalが初期化される | E-07 L25-33 | ○ |
| C-35 | addProcessedRecords メソッドがレコード数を加算する | E-07 L35-38 | ○ |
| C-36 | setState メソッドが状態を変更する | E-07 L40-43 | ○ |
| C-37 | getOffset/setOffset メソッドが動作する | E-07 L45-48, L65-68 | ○ |
| C-38 | getTotal/setTotal メソッドがnull許容で動作する | E-07 L50-53, L70-73, L21 | ○ |
| C-39 | getLogId メソッドがログIDを返却する | E-07 L75-78 | ○ |
| C-40 | getInvalidRecordsLogId/setInvalidRecordsLogId メソッドが動作する | E-07 L80-88 | ○ |
| C-41 | isFinished メソッドがSUCCEEDED/FAILED/ABORTEDでtrueを返却する | E-07 L90-95 | ○ |

### Config構造体（UT-IEX-065〜072）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | コンストラクタでmapping, parameters, updateByが初期化される | E-08 L35-47 | ○ |
| C-43 | getMapping メソッドがMappingCollectionを返却する | E-08 L49-52 | ○ |
| C-44 | getUpdateBy メソッドがUpdateByCollectionを返却する | E-08 L54-57 | ○ |
| C-45 | get メソッドがパラメータを取得する（存在しない場合null） | E-08 L59-62 | ○ |
| C-46 | getParameters メソッドが全パラメータを返却する | E-08 L67-70 | ○ |
| C-47 | fromLog 静的メソッドがログエンティティからConfigを作成する | E-08 L72-81 | ○ |

### Mapping/MappingCollection（UT-IEX-073〜093）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | Mappingコンストラクタでkey, mappedKey, position等が初期化される | E-09 L16-27 | ○ |
| C-49 | mappedKeyが省略された場合keyと同じ値になる | E-09 L26 | ○ |
| C-50 | getKey/getMappedKey メソッドが動作する | E-09 L29-37 | ○ |
| C-51 | isRequiredByUser/isUseDefaultValue/getDefaultValue メソッドが動作する | E-09 L39-52 | ○ |
| C-52 | getPosition/setPosition メソッドが動作する | E-09 L54-62 | ○ |
| C-53 | fromArray 静的メソッドが配列からMappingを作成する（keyがない場合例外） | E-09 L66-77 | ○ |
| C-54 | MappingCollection.add メソッドがマッピングを追加する | E-10 L25-29 | ○ |
| C-55 | MappingCollection.set メソッドで空キーの場合UUIDが使用される | E-10 L35-47 | ○ |
| C-56 | getMapped メソッドがマップキーでマッピングを取得する | E-10 L49-58 | ○ |
| C-57 | fromIterable 静的メソッドがiterableからコレクションを作成する | E-10 L62-84 | ○ |
| C-58 | sortByPosition メソッドがポジション順にソートする | E-10 L89-96 | ○ |

### ImportExportService（UT-IEX-094〜108）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-59 | prepareExport メソッドがエクスポート準備を行う（タイプ検証含む） | E-11 L49-78 | ○ |
| C-60 | prepareImport メソッドがインポート準備を行う（ファイルタイプ検証含む） | E-11 L83-106 | ○ |
| C-61 | cancel メソッドがインポート/エクスポートをキャンセルする | E-11 L108-116 | ○ |
| C-62 | getProgress メソッドが進捗を取得する（ログが存在しない場合例外） | E-11 L118-139 | ○ |
| C-63 | saveProgress メソッドが進捗を保存する | E-11 L144-164 | ○ |
| C-64 | findLog メソッドがログを取得する（存在しない場合例外） | E-11 L166-180 | ○ |

### FileService（UT-IEX-109〜117）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-65 | storeFile メソッドがファイルを保存する（読み取り不可の場合例外） | E-12 L41-77 | ○ |
| C-66 | detectType メソッドがファイルタイプを検出する | E-12 L79-88 | ○ |
| C-67 | getWriter メソッドがCsvFileWriterを返却する | E-12 L90-93 | ○ |
| C-68 | generateFilename メソッドがファイル名を生成する | E-12 L95-101 | ○ |
| C-69 | updateFile メソッドがファイル情報を更新する | E-12 L107-111 | ○ |

### MappingService（UT-IEX-118〜124）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-70 | createTemplate メソッドがテンプレートを作成する（プロファイルなし/マッピングなしで例外） | E-13 L46-85 | ○ |
| C-71 | getMappingFromTemplate メソッドがテンプレートからマッピングを取得する（各種検証） | E-13 L87-138 | ○ |

### DownloadService（UT-IEX-125〜130）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-72 | regenerateToken メソッドが新しいトークンを生成する | E-14 L34-44 | ○ |
| C-73 | createFileResponse メソッドがファイルレスポンスを作成する（トークン検証、時間検証含む） | E-14 L46-81 | ○ |
| C-74 | isModifiedRecently メソッドが5分以内の更新を判定する | E-14 L94-103 | ○ |

### DeleteExpiredFilesService（UT-IEX-131〜134）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-75 | countFiles メソッドが期限切れファイル数をカウントする | E-15 L26-32 | ○ |
| C-76 | deleteFiles メソッドが期限切れファイルを削除する | E-15 L34-41 | ○ |
| C-77 | buildCriteria メソッドが30日以上前のファイルをフィルタする | E-15 L43-53 | ○ |

### CsvReader（UT-IEX-135〜140）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-78 | read メソッドがCSVを読み取る（BOM処理、空行スキップ含む） | E-16 L36-59 | ○ |
| C-79 | handleBom メソッドがUTF-8 BOMを処理する | E-16 L77-91 | ○ |
| C-80 | readSingleRecord メソッドが単一レコードを読み取る | E-16 L98-121 | ○ |
| C-81 | getOffset メソッドが現在のオフセットを返却する | E-16 L61-64 | ○ |

### CsvFileWriter（UT-IEX-141〜144）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-82 | append メソッドがデータを追加する（index=0でヘッダー書き込み） | E-17 L24-32 | ○ |
| C-83 | loadConfig メソッドがデリミタ/エンクロージャを設定から読み込む | E-17 L44-48 | ○ |

### EntityPipe（UT-IEX-145〜147）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-84 | in メソッドがエンティティをシリアライズする | E-18 L28-33 | ○ |
| C-85 | out メソッドがレコードをデシリアライズする（PrimaryKeyResolver使用） | E-18 L35-44 | ○ |

### SerializerRegistry（UT-IEX-148〜151）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-86 | getEntity メソッドがサポートするシリアライザーを返却する（なければ例外） | E-19 L38-49 | ○ |
| C-87 | getFieldSerializer メソッドがフィールドシリアライザーを返却する（なければ例外） | E-19 L51-62 | ○ |

### EntitySerializer（UT-IEX-152〜157）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-88 | serialize メソッドがエンティティをシリアライズする（null処理、拡張フィールド処理含む） | E-20 L13-47 | ○ |
| C-89 | deserialize メソッドがレコードをデシリアライズする（エラーハンドリング含む） | E-20 L50-87 | ○ |
| C-90 | supports メソッドが常にtrueを返却する | E-20 L89-92 | ○ |

### ImportExport（UT-IEX-158〜166）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-91 | import メソッドがインポートを実行する（ドライラン時トランザクションロールバック） | E-21 L81-213 | ○ |
| C-92 | export メソッドがエクスポートを実行する | E-21 L215-310 | ○ |
| C-93 | abort メソッドが処理を中止する | E-21 L350-362 | ○ |
| C-94 | getLogEntity メソッドがログエンティティを返却する | E-21 L364-367 | ○ |
| C-95 | onWriteException メソッドが書き込み例外を処理する | E-21 L369-372 | ○ |

### ImportExportException（UT-IEX-167〜176）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-96 | 各種例外ファクトリメソッドが正しい例外を返却する | E-22 L47-328 | ○ |

### Definition クラス（UT-IEX-177〜182）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-97 | ImportExportProfileDefinition.getEntityName が "import_export_profile" を返却する | E-02 L24, L26-29 | ○ |
| C-98 | ImportExportProfileDefinition.getEntityClass がエンティティクラスを返却する | E-02 L31-34 | ○ |
| C-99 | ImportExportLogDefinition.getEntityName が "import_export_log" を返却する | E-04 L27, L29-32 | ○ |
| C-100 | ImportExportLogDefinition.getEntityClass がエンティティクラスを返却する | E-04 L34-37 | ○ |
| C-101 | ImportExportFileDefinition.getEntityName が "import_export_file" を返却する | E-06 L21, L23-26 | ○ |
| C-102 | ImportExportFileDefinition.getEntityClass がエンティティクラスを返却する | E-06 L28-31 | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし - すべてのテストケースがソースコードに基づいて作成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースがソースコードから直接導出されています
- テストケースはエンティティ、サービス、シリアライザー、リーダー/ライター、例外クラスを網羅しています
- 高優先度のテストケースは、ファイル処理、トークン検証、インポート/エクスポート処理の核心部分に集中しています

## 6) レビュアーチェックリスト（最小）
- [ ] ImportExportProfileEntity の TYPE_* 定数（import/export/import-export）の使い分けが正しいか確認
- [ ] ImportExportLogEntity の ACTIVITY_* 定数（import/export/dryrun/invalid_records_export/template）の使い分けが正しいか確認
- [ ] Progress の STATE_* 定数（progress/merging_files/succeeded/failed/aborted）の状態遷移が正しいか確認
- [ ] ImportExportFileEntity.generateAccessToken のセキュリティ要件を満たしているか確認
- [ ] ImportExportFileEntity.buildPath のパス分割ロジック（8文字区切り）が正しいか確認
- [ ] DownloadService.createFileResponse のトークン検証と時間検証（5分）が適切か確認
- [ ] DeleteExpiredFilesService の30日閾値が適切か確認
- [ ] CsvReader のBOM処理が正しいか確認
- [ ] ImportExport.import のドライラン時のトランザクションロールバックが正しいか確認
- [ ] シリアライザーのエラーハンドリング（_error キー）が正しく動作するか確認
