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

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

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコードの該当箇所が存在するか
2. **根拠との整合性**：テストケースの内容がソースコードの実装と矛盾していないか
3. **網羅性**：対象モジュール内の主要なクラス・メソッドを適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：77 / 77、根拠なし：0
- 優先レビュー（高）
  1. **UT-INT-003〜006**: アクセスキー・シークレットキー関連（認証セキュリティ）
  2. **UT-INT-007〜009**: 管理者フラグ関連（権限管理）
  3. **UT-INT-017〜019, 063**: ACLロール関連（アクセス制御）

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

- E-01: `src/Core/System/Integration/IntegrationEntity.php`（126行）
- E-02: `src/Core/System/Integration/IntegrationCollection.php`（23行）
- E-03: `src/Core/System/Integration/IntegrationDefinition.php`（74行）
- E-04: `src/Core/System/Integration/Aggregate/IntegrationRole/IntegrationRoleDefinition.php`（39行）
- E-05: `src/Core/System/Integration/IntegrationEvents.php`（21行）
- E-06: `src/Core/Framework/DataAbstractionLayer/EntityCustomFieldsTrait.php`（126行）
- E-07: `src/Core/Framework/DataAbstractionLayer/EntityIdTrait.php`（23行）
- E-08: `src/Core/Framework/DataAbstractionLayer/Entity.php`（298行）
- E-09: `src/Core/Framework/DataAbstractionLayer/EntityCollection.php`（271行）
- E-10: `src/Core/Framework/DataAbstractionLayer/EntityDefinition.php`（461行）
- E-11: `src/Core/Framework/DataAbstractionLayer/MappingEntityDefinition.php`（30行）

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

### IntegrationEntity（UT-INT-001〜039）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | getLabel()はlabelプロパティを返却する | E-01: 37-40行目 | ○ |
| C-02 | setLabel()はlabelプロパティを設定する | E-01: 42-45行目 | ○ |
| C-03 | getAccessKey()はaccessKeyプロパティを返却する | E-01: 47-50行目 | ○ |
| C-04 | setAccessKey()はaccessKeyプロパティを設定する | E-01: 52-55行目 | ○ |
| C-05 | getSecretAccessKey()はsecretAccessKeyプロパティを返却する | E-01: 57-60行目 | ○ |
| C-06 | setSecretAccessKey()はsecretAccessKeyプロパティを設定する | E-01: 62-65行目 | ○ |
| C-07 | getAdmin()はadminプロパティを返却する | E-01: 97-100行目 | ○ |
| C-08 | getAdmin()はbool型を返却する | E-01: 25行目（protected bool $admin）、97行目 | ○ |
| C-09 | setAdmin()はadminプロパティを設定する | E-01: 102-105行目 | ○ |
| C-10 | getLastUsageAt()はnull許容のDateTimeInterfaceを返却する | E-01: 67-70行目、27行目 | ○ |
| C-11 | lastUsageAtのデフォルト値はnull | E-01: 27行目 | ○ |
| C-12 | setLastUsageAt()はlastUsageAtプロパティを設定する | E-01: 72-75行目 | ○ |
| C-13 | getApp()はnull許容のAppEntityを返却する | E-01: 77-80行目、29行目 | ○ |
| C-14 | appのデフォルト値はnull | E-01: 29行目 | ○ |
| C-15 | setApp()はappプロパティを設定する | E-01: 82-85行目 | ○ |
| C-16 | setApp()はnullを受け入れる | E-01: 82行目（?AppEntity $app） | ○ |
| C-17 | getAclRoles()はnull許容のAclRoleCollectionを返却する | E-01: 87-90行目、31行目 | ○ |
| C-18 | aclRolesのデフォルト値はnull | E-01: 31行目 | ○ |
| C-19 | setAclRoles()はaclRolesプロパティを設定する | E-01: 92-95行目 | ○ |
| C-20 | getDeletedAt()はnull許容のDateTimeInterfaceを返却する | E-01: 107-110行目、33行目 | ○ |
| C-21 | deletedAtのデフォルト値はnull | E-01: 33行目 | ○ |
| C-22 | setDeletedAt()はdeletedAtプロパティを設定する | E-01: 112-115行目 | ○ |
| C-23 | getStateMachineHistoryEntries()はnull許容のStateMachineHistoryCollectionを返却する | E-01: 117-120行目、35行目 | ○ |
| C-24 | stateMachineHistoryEntriesのデフォルト値はnull | E-01: 35行目 | ○ |
| C-25 | setStateMachineHistoryEntries()はstateMachineHistoryEntriesプロパティを設定する | E-01: 122-125行目 | ○ |
| C-26 | getId()はidプロパティを返却する（EntityIdTrait） | E-07: 13-16行目 | ○ |
| C-27 | setId()はidと_uniqueIdentifierを設定する（EntityIdTrait） | E-07: 18-22行目 | ○ |
| C-28 | getCustomFields()はnull許容の配列を返却する | E-06: 21-24行目 | ○ |
| C-29 | customFieldsのデフォルト値はnull | E-06: 16行目 | ○ |
| C-30 | setCustomFields()はcustomFieldsプロパティを設定する | E-06: 82-85行目 | ○ |
| C-31 | setCustomFields()はnullを受け入れる | E-06: 82行目（?array $customFields） | ○ |
| C-32 | getCustomFieldsValues()は指定フィールドのみを返却する | E-06: 54-57行目 | ○ |
| C-33 | getCustomFieldsValues()は存在しないフィールドを結果に含めない | E-06: 56行目（array_intersect_key使用） | ○ |
| C-34 | getCustomFieldsValues()はcustomFieldsがnullの場合空配列を返却する | E-06: 56行目（$this->customFields ?? []） | ○ |
| C-35 | getCustomFieldsValue()は指定フィールドの値を返却する | E-06: 69-72行目 | ○ |
| C-36 | getCustomFieldsValue()は存在しないフィールドに対しnullを返却する | E-06: 71行目（$this->customFields[$field] ?? null） | ○ |
| C-37 | changeCustomFields()は既存フィールドを更新する | E-06: 119-125行目 | ○ |
| C-38 | changeCustomFields()は新規フィールドを追加する | E-06: 121-124行目（array_replace使用） | ○ |
| C-39 | changeCustomFields()はcustomFieldsがnullの場合も動作する | E-06: 122行目（$this->customFields ?? []） | ○ |

### IntegrationCollection（UT-INT-040〜047）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | getApiAlias()は'integration_collection'を返却する | E-02: 14-17行目 | ○ |
| C-41 | getExpectedClass()はIntegrationEntity::classを返却する | E-02: 19-22行目 | ○ |
| C-42 | コンストラクタはiterableからコレクションを構築する | E-09: 19-28行目（親クラス） | ○ |
| C-43 | コンストラクタは空配列を受け入れる | E-09: 19行目（iterable $elements = []） | ○ |
| C-44 | add()はエンティティを追加する | E-09: 41-44行目 | ○ |
| C-45 | 型チェックはvalidateType()で行われる | E-09: 24行目 | ○ |
| C-46 | getIds()は全エンティティのIDを配列で返却する | E-09: 49-54行目 | ○ |
| C-47 | getIds()は空コレクションに対して空配列を返却する | E-09: 49-54行目（fmap使用） | ○ |

### IntegrationDefinition（UT-INT-048〜063）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | ENTITY_NAMEは'integration'である | E-03: 28行目 | ○ |
| C-49 | getEntityName()は'integration'を返却する | E-03: 30-33行目 | ○ |
| C-50 | getCollectionClass()はIntegrationCollection::classを返却する | E-03: 35-38行目 | ○ |
| C-51 | getEntityClass()はIntegrationEntity::classを返却する | E-03: 40-43行目 | ○ |
| C-52 | getDefaults()は['admin' => false]を返却する | E-03: 45-50行目 | ○ |
| C-53 | since()は'6.0.0.0'を返却する | E-03: 52-55行目 | ○ |
| C-54 | idフィールドはPrimaryKey, Requiredフラグ付き | E-03: 60行目 | ○ |
| C-55 | labelフィールドはRequiredフラグ付き | E-03: 61行目 | ○ |
| C-56 | accessKeyフィールドはRequiredフラグ付き | E-03: 62行目 | ○ |
| C-57 | secretAccessKeyフィールドはPasswordFieldでRequiredフラグ付き | E-03: 63行目 | ○ |
| C-58 | lastUsageAtフィールドはDateTimeField | E-03: 64行目 | ○ |
| C-59 | adminフィールドはBoolField | E-03: 65行目 | ○ |
| C-60 | customFieldsフィールドが定義されている | E-03: 66行目 | ○ |
| C-61 | deletedAtフィールドはDateTimeField | E-03: 67行目 | ○ |
| C-62 | appリレーションはOneToOneAssociationFieldでRestrictDeleteフラグ付き | E-03: 69行目 | ○ |
| C-63 | stateMachineHistoryEntriesはOneToManyAssociationField | E-03: 70行目 | ○ |
| C-64 | aclRolesはManyToManyAssociationField（IntegrationRoleDefinition経由） | E-03: 71行目 | ○ |

### IntegrationRoleDefinition（UT-INT-064〜071）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-65 | ENTITY_NAMEは'integration_role'である | E-04: 18行目 | ○ |
| C-66 | getEntityName()は'integration_role'を返却する | E-04: 20-23行目 | ○ |
| C-67 | since()は'6.3.3.0'を返却する | E-04: 25-28行目 | ○ |
| C-68 | getCollectionClass()はMappingEntityClassesExceptionをスローする | E-11: 11-14行目 | ○ |
| C-69 | getEntityClass()はMappingEntityClassesExceptionをスローする | E-11: 16-19行目 | ○ |
| C-70 | integrationIdフィールドはPrimaryKey, Requiredフラグ付きFkField | E-04: 33行目 | ○ |
| C-71 | aclRoleIdフィールドはPrimaryKey, Requiredフラグ付きFkField | E-04: 34行目 | ○ |
| C-72 | integrationリレーションはManyToOneAssociationField | E-04: 35行目 | ○ |
| C-73 | roleリレーションはManyToOneAssociationField | E-04: 36行目 | ○ |

### IntegrationEvents（UT-INT-072〜077）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-74 | INTEGRATION_WRITTEN_EVENTは'integration.written' | E-05: 10行目 | ○ |
| C-75 | INTEGRATION_DELETED_EVENTは'integration.deleted' | E-05: 12行目 | ○ |
| C-76 | INTEGRATION_LOADED_EVENTは'integration.loaded' | E-05: 14行目 | ○ |
| C-77 | INTEGRATION_SEARCH_RESULT_LOADED_EVENTは'integration.search.result.loaded' | E-05: 16行目 | ○ |
| C-78 | INTEGRATION_AGGREGATION_LOADED_EVENTは'integration.aggregation.result.loaded' | E-05: 18行目 | ○ |
| C-79 | INTEGRATION_ID_SEARCH_RESULT_LOADED_EVENTは'integration.id.search.result.loaded' | E-05: 20行目 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（全テストケースに対してソースコードの根拠が確認済み）

## 5) リスクフラグ（レビュー観点）
- **リスク0（低）**: 全テストケースがソースコードに基づいて作成されており、実装との乖離リスクは低い

### セキュリティ観点での追加確認推奨項目
1. **accessKey / secretAccessKey**: 認証情報の取り扱いに関するテストケース（UT-INT-003〜006）
   - 実際のテスト実装時には、シークレットキーのマスキングやログ出力抑制の確認も検討
2. **admin フラグ**: 権限昇格に関するテストケース（UT-INT-007〜009）
   - IntegrationControllerでの権限チェックとの整合性確認を推奨
3. **aclRoles リレーション**: アクセス制御リストの管理（UT-INT-017〜019, 063）
   - ロールの追加・削除時の権限継承の挙動確認を推奨

## 6) レビュアーチェックリスト（最小）
- [ ] IntegrationEntity の全getter/setterメソッドがテストケースでカバーされているか確認
- [ ] IntegrationDefinition の全フィールド定義がテストケースでカバーされているか確認
- [ ] IntegrationRoleDefinition の複合主キー（integrationId + aclRoleId）のテストが適切か確認
- [ ] EntityCustomFieldsTrait のメソッドがIntegrationEntityのコンテキストでテストされているか確認
- [ ] MappingEntityDefinition の例外スロー挙動が正しくテストケース化されているか確認
- [ ] 優先度「高」のテストケースが認証・権限関連を適切にカバーしているか確認
