---
generated_at: 2026-03-01 10:30:00
metrics:
  claims_total: 170
  claims_with_evidence: 170
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：Redis単体テストケース一覧

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコードの該当メソッド・関数が存在するか
2. **根拠との整合性**：テストケースの入力値・期待結果がコードの実装と矛盾していないか
3. **網羅性**：publicメソッド、重要なビジネスロジックを適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：170 / 170、根拠なし：0
- 優先レビュー（高）
  1. **Limiter関連テスト**：Luaスクリプトの動作確認が必要
  2. **クラスター接続テスト**：実際のRedisCluster環境での動作確認推奨
  3. **圧縮関連テスト**：lzf/zstd拡張の有無に依存するテスト

## 2) 参照した情報（Evidence一覧）
> ソースコードから直接抽出した情報

- E-01: `src/Illuminate/Redis/RedisManager.php` - Redis接続管理クラス
- E-02: `src/Illuminate/Redis/Connections/Connection.php` - 抽象接続基底クラス
- E-03: `src/Illuminate/Redis/Connections/PhpRedisConnection.php` - PhpRedis接続実装
- E-04: `src/Illuminate/Redis/Connections/PredisConnection.php` - Predis接続実装
- E-05: `src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php` - PhpRedisクラスター接続
- E-06: `src/Illuminate/Redis/Connections/PredisClusterConnection.php` - Predisクラスター接続
- E-07: `src/Illuminate/Redis/Connections/PacksPhpRedisValues.php` - 値のパック処理トレイト
- E-08: `src/Illuminate/Redis/Connectors/PhpRedisConnector.php` - PhpRedisコネクター
- E-09: `src/Illuminate/Redis/Connectors/PredisConnector.php` - Predisコネクター
- E-10: `src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php` - 同時実行制限
- E-11: `src/Illuminate/Redis/Limiters/DurationLimiter.php` - 期間制限
- E-12: `src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php` - 同時実行制限ビルダー
- E-13: `src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php` - 期間制限ビルダー
- E-14: `src/Illuminate/Redis/RedisServiceProvider.php` - サービスプロバイダー
- E-15: `src/Illuminate/Redis/Events/CommandExecuted.php` - コマンド実行イベント
- E-16: `src/Illuminate/Redis/Events/CommandFailed.php` - コマンド失敗イベント

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

### RedisManager（UT-RDS-001〜016）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | RedisManagerの初期化テスト | E-01 L70-75 __construct | ○ |
| C-02 | connection()でデフォルト接続取得 | E-01 L83-94 connection() | ○ |
| C-03 | connection()で名前付き接続取得 | E-01 L83-94 connection() | ○ |
| C-04 | UnitEnum対応 | E-01 L85 enum_value() | ○ |
| C-05 | 接続キャッシュ | E-01 L87-89 connections配列 | ○ |
| C-06 | resolve()で接続解決 | E-01 L104-122 resolve() | ○ |
| C-07 | クラスター接続解決 | E-01 L117-119, L130-139 resolveCluster() | ○ |
| C-08 | 存在しない接続で例外 | E-01 L121 InvalidArgumentException | ○ |
| C-09 | connections()で一覧取得 | E-01 L205-208 connections() | ○ |
| C-10 | enableEvents() | E-01 L215-218 enableEvents() | ○ |
| C-11 | disableEvents() | E-01 L225-228 disableEvents() | ○ |
| C-12 | setDriver() | E-01 L236-239 setDriver() | ○ |
| C-13 | purge() | E-01 L247-252 purge() | ○ |
| C-14 | purge()でnull指定 | E-01 L249 default | ○ |
| C-15 | extend() | E-01 L264-269 extend() | ○ |
| C-16 | __call()委譲 | E-01 L278-281 __call() | ○ |

### Connection（UT-RDS-017〜034）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-17 | funnel() | E-02 L57-60 funnel() | ○ |
| C-18 | throttle() | E-02 L68-71 throttle() | ○ |
| C-19 | client() | E-02 L78-81 client() | ○ |
| C-20 | subscribe() | E-02 L90-93 subscribe() | ○ |
| C-21 | psubscribe() | E-02 L102-105 psubscribe() | ○ |
| C-22 | command()成功時イベント | E-02 L114-135 command() | ○ |
| C-23 | command()失敗時イベント | E-02 L120-126 CommandFailed | ○ |
| C-24 | 実行時間計測 | E-02 L116, L128 microtime | ○ |
| C-25 | listen() | E-02 L167-170 listen() | ○ |
| C-26 | listenForFailures() | E-02 L178-181 listenForFailures() | ○ |
| C-27 | getName() | E-02 L188-191 getName() | ○ |
| C-28 | getName()未設定時 | E-02 L32 $name = null | ○ |
| C-29 | setName() | E-02 L199-204 setName() | ○ |
| C-30 | getEventDispatcher() | E-02 L211-214 getEventDispatcher() | ○ |
| C-31 | setEventDispatcher() | E-02 L222-225 setEventDispatcher() | ○ |
| C-32 | unsetEventDispatcher() | E-02 L232-235 unsetEventDispatcher() | ○ |
| C-33 | __call()マクロ | E-02 L246-248 hasMacro | ○ |
| C-34 | __call()コマンド委譲 | E-02 L250 command() | ○ |

### PhpRedisConnection（UT-RDS-035〜083）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | __construct | E-03 L39-44 __construct() | ○ |
| C-36 | get()成功 | E-03 L52-57 get() | ○ |
| C-37 | get()でnull | E-03 L56 false → null | ○ |
| C-38 | mget() | E-03 L65-70 mget() | ○ |
| C-39 | mget()で一部null | E-03 L67-68 false → null | ○ |
| C-40 | set()基本 | E-03 L82-89 set() | ○ |
| C-41 | set()有効期限付き | E-03 L87 expireResolution | ○ |
| C-42 | set()フラグ付き | E-03 L87 flag | ○ |
| C-43 | setnx()成功 | E-03 L98-101 setnx() | ○ |
| C-44 | setnx()失敗 | E-03 L100 (int)変換 | ○ |
| C-45 | hmget() | E-03 L110-117 hmget() | ○ |
| C-46 | hmget()配列引数 | E-03 L112-114 | ○ |
| C-47 | hmset()連想配列 | E-03 L126-137 hmset() | ○ |
| C-48 | hmset()可変長 | E-03 L131-133 nth/combine | ○ |
| C-49 | hsetnx()成功 | E-03 L147-150 hsetnx() | ○ |
| C-50 | hsetnx()失敗 | E-03 L149 (int)変換 | ○ |
| C-51 | lrem() | E-03 L160-163 lrem() | ○ |
| C-52 | blpop()成功 | E-03 L171-176 blpop() | ○ |
| C-53 | blpop()タイムアウト | E-03 L175 empty → null | ○ |
| C-54 | brpop()成功 | E-03 L184-189 brpop() | ○ |
| C-55 | brpop()タイムアウト | E-03 L188 empty → null | ○ |
| C-56 | spop() | E-03 L198-201 spop() | ○ |
| C-57 | zadd()基本 | E-03 L210-230 zadd() | ○ |
| C-58 | zadd()配列形式 | E-03 L212-217 array処理 | ○ |
| C-59 | zadd()オプション | E-03 L221-227 options | ○ |
| C-60 | zrangebyscore() | E-03 L241-251 zrangebyscore() | ○ |
| C-61 | zrangebyscore()limit | E-03 L243-248 limit処理 | ○ |
| C-62 | zrevrangebyscore() | E-03 L262-272 zrevrangebyscore() | ○ |
| C-63 | zinterstore() | E-03 L282-288 zinterstore() | ○ |
| C-64 | zunionstore() | E-03 L298-304 zunionstore() | ○ |
| C-65 | scan() | E-03 L313-325 scan() | ○ |
| C-66 | scan()空結果 | E-03 L324 cursor=0で空→false | ○ |
| C-67 | zscan() | E-03 L335-347 zscan() | ○ |
| C-68 | hscan() | E-03 L357-369 hscan() | ○ |
| C-69 | sscan() | E-03 L379-391 sscan() | ○ |
| C-70 | pipeline() | E-03 L399-406 pipeline() | ○ |
| C-71 | pipeline()オブジェクト | E-03 L403-404 null判定 | ○ |
| C-72 | transaction() | E-03 L414-421 transaction() | ○ |
| C-73 | transaction()オブジェクト | E-03 L418-419 null判定 | ○ |
| C-74 | evalsha() | E-03 L431-436 evalsha() | ○ |
| C-75 | eval() | E-03 L446-449 eval() | ○ |
| C-76 | subscribe() | E-03 L458-463 subscribe() | ○ |
| C-77 | psubscribe() | E-03 L472-477 psubscribe() | ○ |
| C-78 | flushdb() | E-03 L497-506 flushdb() | ○ |
| C-79 | flushdb()ASYNC | E-03 L501-502 ASYNC | ○ |
| C-80 | executeRaw() | E-03 L514-517 executeRaw() | ○ |
| C-81 | command()再接続 | E-03 L528-539 RedisException | ○ |
| C-82 | disconnect() | E-03 L546-549 disconnect() | ○ |
| C-83 | __call()小文字変換 | E-03 L558-561 strtolower | ○ |

### PredisConnection（UT-RDS-084〜087）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-84 | __construct | E-04 L27-30 __construct() | ○ |
| C-85 | createSubscription() | E-04 L40-53 createSubscription() | ○ |
| C-86 | pmessage処理 | E-04 L47 pmessage | ○ |
| C-87 | parseParametersForEvent() | E-04 L61-69 parseParametersForEvent() | ○ |

### PhpRedisConnector（UT-RDS-088〜102）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-88 | connect() | E-08 L25-40 connect() | ○ |
| C-89 | connect()prefix | E-08 L29-31 prefix | ○ |
| C-90 | connectToCluster() | E-08 L50-57 connectToCluster() | ○ |
| C-91 | createClient() | E-08 L78-152 createClient() | ○ |
| C-92 | RedisFacadeエラー | E-08 L81-86 LogicException | ○ |
| C-93 | パスワード認証 | E-08 L107-113 auth() | ○ |
| C-94 | ACL認証 | E-08 L108-109 username/password | ○ |
| C-95 | DB選択 | E-08 L115-117 select() | ○ |
| C-96 | 通常接続 | E-08 L181 connect | ○ |
| C-97 | 永続接続 | E-08 L181 pconnect | ○ |
| C-98 | formatHost()TLS | E-08 L244-246 scheme | ○ |
| C-99 | formatHost()通常 | E-08 L248 host | ○ |
| C-100 | parseBackoffAlgorithm()文字列 | E-08 L259-273 match | ○ |
| C-101 | parseBackoffAlgorithm()整数 | E-08 L261-263 is_int | ○ |
| C-102 | parseBackoffAlgorithm()不正 | E-08 L272 InvalidArgumentException | ○ |

### PredisConnector（UT-RDS-103〜106）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-103 | connect() | E-09 L21-37 connect() | ○ |
| C-104 | TLS処理 | E-09 L31-34 tls:// | ○ |
| C-105 | デフォルトタイムアウト | E-09 L24 timeout=10.0 | ○ |
| C-106 | connectToCluster() | E-09 L47-58 connectToCluster() | ○ |

### ConcurrencyLimiter（UT-RDS-107〜116）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-107 | __construct | E-10 L48-54 __construct() | ○ |
| C-108 | block()成功 | E-10 L67-94 block() | ○ |
| C-109 | block()後解放 | E-10 L83-84 release() | ○ |
| C-110 | block()タイムアウト | E-10 L74-76 LimiterTimeoutException | ○ |
| C-111 | block()例外時解放 | E-10 L86-90 catch | ○ |
| C-112 | block()コールバックなし | E-10 L93 return true | ○ |
| C-113 | acquire()成功 | E-10 L102-112 acquire() | ○ |
| C-114 | acquire()失敗 | E-10 L126-133 Luaスクリプト | ○ |
| C-115 | release()成功 | E-10 L143-146 release() | ○ |
| C-116 | release()不正ID | E-10 L158-165 releaseScript | ○ |

### DurationLimiter（UT-RDS-117〜127）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-117 | __construct | E-11 L60-66 __construct() | ○ |
| C-118 | block()成功 | E-11 L78-95 block() | ○ |
| C-119 | block()タイムアウト | E-11 L83-85 LimiterTimeoutException | ○ |
| C-120 | block()コールバックなし | E-11 L94 return true | ○ |
| C-121 | acquire()初回 | E-11 L102-113, L152-171 luaScript | ○ |
| C-122 | acquire()制限内 | E-11 L162-168 HINCRBY | ○ |
| C-123 | acquire()制限到達 | E-11 L164 <= ARGV[4] | ○ |
| C-124 | acquire()リセット | E-11 L153-156, L170 reset() | ○ |
| C-125 | tooManyAttempts()未満 | E-11 L120-127 remaining > 0 | ○ |
| C-126 | tooManyAttempts()到達 | E-11 L126 remaining <= 0 | ○ |
| C-127 | clear() | E-11 L134-137 del() | ○ |

### LimiterBuilder（UT-RDS-128〜142）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-128 | ConcurrencyLimiterBuilder.__construct | E-12 L60-64 __construct() | ○ |
| C-129 | limit() | E-12 L72-77 limit() | ○ |
| C-130 | releaseAfter() | E-12 L85-90 releaseAfter() | ○ |
| C-131 | block() | E-12 L98-103 block() | ○ |
| C-132 | sleep() | E-12 L111-116 sleep() | ○ |
| C-133 | then()成功 | E-12 L127-140 then() | ○ |
| C-134 | then()失敗コールバック | E-12 L133-136 failure | ○ |
| C-135 | then()例外 | E-12 L138 throw | ○ |
| C-136 | DurationLimiterBuilder.__construct | E-13 L60-64 __construct() | ○ |
| C-137 | allow() | E-13 L72-77 allow() | ○ |
| C-138 | every() | E-13 L85-90 every() | ○ |
| C-139 | block() | E-13 L98-103 block() | ○ |
| C-140 | sleep() | E-13 L111-116 sleep() | ○ |
| C-141 | then()成功 | E-13 L127-140 then() | ○ |
| C-142 | then()失敗 | E-13 L133-136 failure | ○ |

### PacksPhpRedisValues（UT-RDS-143〜156）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-143 | pack()基本 | E-07 L41-86 pack() | ○ |
| C-144 | pack()空配列 | E-07 L43-45 empty check | ○ |
| C-145 | pack()LZF | E-07 L52-59 lzf_compress | ○ |
| C-146 | pack()Zstd | E-07 L60-73 zstd_compress | ○ |
| C-147 | pack()LZF関数なし | E-07 L53-55 RuntimeException | ○ |
| C-148 | pack()Zstd関数なし | E-07 L61-63 RuntimeException | ○ |
| C-149 | pack()未対応圧縮 | E-07 L74-78 UnexpectedValueException | ○ |
| C-150 | withoutSerializationOrCompression() | E-07 L94-123 | ○ |
| C-151 | serialized()true | E-07 L130-134 serialized() | ○ |
| C-152 | serialized()false | E-07 L133 SERIALIZER_NONE | ○ |
| C-153 | compressed() | E-07 L141-145 compressed() | ○ |
| C-154 | lzfCompressed() | E-07 L152-156 lzfCompressed() | ○ |
| C-155 | zstdCompressed() | E-07 L163-167 zstdCompressed() | ○ |
| C-156 | lz4Compressed() | E-07 L174-178 lz4Compressed() | ○ |

### ClusterConnection（UT-RDS-157〜163）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-157 | PhpRedisClusterConnection.scan() | E-05 L33-46 scan() | ○ |
| C-158 | デフォルトノード | E-05 L36 defaultNode() | ○ |
| C-159 | flushdb() | E-05 L53-64 flushdb() | ○ |
| C-160 | flushdb()ASYNC | E-05 L60-62 async | ○ |
| C-161 | defaultNode()例外 | E-05 L76 InvalidArgumentException | ○ |
| C-162 | PredisClusterConnection.keys() | E-06 L16-25 keys() | ○ |
| C-163 | PredisClusterConnection.flushdb() | E-06 L32-41 flushdb() | ○ |

### ServiceProvider/Events（UT-RDS-164〜170）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-164 | register()redis | E-14 L18-22 singleton | ○ |
| C-165 | register()redis.connection | E-14 L24-26 bind | ○ |
| C-166 | provides() | E-14 L34-37 provides() | ○ |
| C-167 | CommandExecuted.__construct | E-15 L50-57 __construct() | ○ |
| C-168 | connectionName取得 | E-15 L56 getName() | ○ |
| C-169 | CommandFailed.__construct | E-16 L52-59 __construct() | ○ |
| C-170 | exception保持 | E-16 L55 exception | ○ |

## 4) 不足情報（Unknown / Missing）
- **なし** - 全てのテストケースはソースコードから直接抽出された根拠に基づいています

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 全テストケースがソースコードに基づいており、実装との乖離リスクは低い
- **要注意点**:
  - Limiter関連のLuaスクリプトテストは、実際のRedis環境での動作確認が推奨される
  - 圧縮機能のテストは、lzf/zstd PHP拡張の有無に依存する
  - クラスター関連テストは、RedisCluster環境が必要

## 6) レビュアーチェックリスト（最小）
- [ ] テストID（UT-RDS-XXX）が連番で重複なく付与されているか
- [ ] 対象ファイル・クラス・メソッドがソースコードと一致しているか
- [ ] テスト観点（正常系/異常系/境界値）が適切に分類されているか
- [ ] 入力値と期待結果がコードの実装と整合しているか
- [ ] 優先度（高/中/低）が基準に従って適切に設定されているか
- [ ] Limiter関連のテストがLuaスクリプトの動作を正しく反映しているか
- [ ] 圧縮・シリアライズ関連のテストが拡張機能の有無を考慮しているか
