@@ -11,6 +11,7 @@ import (
1111 "testing"
1212 "time"
1313
14+ "github.com/stretchr/testify/assert"
1415 "gopkg.d7z.net/middleware/connects"
1516)
1617
@@ -39,7 +40,10 @@ func testPutGet(t *testing.T, factory CacheFactory) {
3940 value := []byte ("test-value" )
4041
4142 // 测试正常存入和读取
42- err := cache .Put (ctx , key , bytes .NewReader (value ), TTLKeep )
43+ metadata := map [string ]string {
44+ "key" : "value" ,
45+ }
46+ err := cache .Put (ctx , key , metadata , bytes .NewReader (value ), TTLKeep )
4347 if err != nil {
4448 t .Fatalf ("Put failed: %v" , err )
4549 }
@@ -59,15 +63,7 @@ func testPutGet(t *testing.T, factory CacheFactory) {
5963 if ! bytes .Equal (data , value ) {
6064 t .Errorf ("Content mismatch: expected %q, got %q" , value , data )
6165 }
62-
63- // 验证元数据
64- if content .Length != uint64 (len (value )) {
65- t .Errorf ("Length mismatch: expected %d, got %d" , len (value ), content .Length )
66- }
67-
68- if content .LastModified .IsZero () {
69- t .Error ("LastModified should not be zero" )
70- }
66+ assert .Equal (t , metadata , content .Metadata )
7167}
7268
7369// testPutInvalidTTL 测试无效 TTL 的处理
@@ -80,13 +76,13 @@ func testPutInvalidTTL(t *testing.T, factory CacheFactory) {
8076 value := []byte ("test-value" )
8177
8278 // 测试负 TTL
83- err := cache .Put (ctx , key , bytes .NewReader (value ), - time .Second )
79+ err := cache .Put (ctx , key , map [ string ] string {}, bytes .NewReader (value ), - time .Second )
8480 if ! errors .Is (err , ErrInvalidTTL ) {
8581 t .Errorf ("Expected ErrInvalidTTL for negative TTL, got: %v" , err )
8682 }
8783
8884 // 测试零 TTL
89- err = cache .Put (ctx , key , bytes .NewReader (value ), 0 )
85+ err = cache .Put (ctx , key , map [ string ] string {}, bytes .NewReader (value ), 0 )
9086 if ! errors .Is (err , ErrInvalidTTL ) {
9187 t .Errorf ("Expected ErrInvalidTTL for zero TTL, got: %v" , err )
9288 }
@@ -116,7 +112,7 @@ func testDelete(t *testing.T, factory CacheFactory) {
116112 value := []byte ("delete-value" )
117113
118114 // 先存入
119- err := cache .Put (ctx , key , bytes .NewReader (value ), TTLKeep )
115+ err := cache .Put (ctx , key , map [ string ] string {}, bytes .NewReader (value ), TTLKeep )
120116 if err != nil {
121117 t .Fatalf ("Put failed: %v" , err )
122118 }
@@ -157,13 +153,13 @@ func testUpdate(t *testing.T, factory CacheFactory) {
157153 value2 := []byte ("value2-updated" )
158154
159155 // 第一次存入
160- err := cache .Put (ctx , key , bytes .NewReader (value1 ), TTLKeep )
156+ err := cache .Put (ctx , key , map [ string ] string {}, bytes .NewReader (value1 ), TTLKeep )
161157 if err != nil {
162158 t .Fatalf ("First Put failed: %v" , err )
163159 }
164160
165161 // 更新
166- err = cache .Put (ctx , key , bytes .NewReader (value2 ), TTLKeep )
162+ err = cache .Put (ctx , key , map [ string ] string {}, bytes .NewReader (value2 ), TTLKeep )
167163 if err != nil {
168164 t .Fatalf ("Second Put failed: %v" , err )
169165 }
@@ -196,7 +192,7 @@ func testTTL(t *testing.T, factory CacheFactory) {
196192 ttl := 1 * time .Second
197193
198194 // 存入带 TTL 的缓存
199- err := cache .Put (ctx , key , bytes .NewReader (value ), ttl )
195+ err := cache .Put (ctx , key , map [ string ] string {}, bytes .NewReader (value ), ttl )
200196 if err != nil {
201197 t .Fatalf ("Put with TTL failed: %v" , err )
202198 }
@@ -241,7 +237,7 @@ func testConcurrency(t *testing.T, factory CacheFactory) {
241237 // 随机执行操作
242238 switch j % 3 {
243239 case 0 : // Put
244- err := cache .Put (ctx , key , bytes .NewReader (value ), TTLKeep )
240+ err := cache .Put (ctx , key , map [ string ] string {}, bytes .NewReader (value ), TTLKeep )
245241 if err != nil {
246242 t .Logf ("Concurrent Put error: %v" , err )
247243 }
@@ -269,7 +265,7 @@ func testConcurrency(t *testing.T, factory CacheFactory) {
269265 // 验证缓存仍然可用
270266 key := "final-check"
271267 value := []byte ("final-value" )
272- err := cache .Put (ctx , key , bytes .NewReader (value ), TTLKeep )
268+ err := cache .Put (ctx , key , map [ string ] string {}, bytes .NewReader (value ), TTLKeep )
273269 if err != nil {
274270 t .Errorf ("Put after concurrency test failed: %v" , err )
275271 }
@@ -299,7 +295,7 @@ func testClose(t *testing.T, factory CacheFactory) {
299295
300296 // 关闭后尝试操作(具体行为取决于实现,这里只测试不会 panic)
301297 ctx := context .Background ()
302- _ = cache .Put (ctx , "closed-key" , bytes .NewReader ([]byte ("value" )), TTLKeep )
298+ _ = cache .Put (ctx , "closed-key" , map [ string ] string {}, bytes .NewReader ([]byte ("value" )), TTLKeep )
303299 _ , _ = cache .Get (ctx , "closed-key" )
304300 _ = cache .Delete (ctx , "closed-key" )
305301}
@@ -315,7 +311,7 @@ func testCacheErrorReader(t *testing.T, factory CacheFactory) {
315311 // 创建会返回错误的 Reader
316312 errorReader := & errorReader {err : errors .New ("mock read error" )}
317313
318- err := cache .Put (ctx , key , errorReader , TTLKeep )
314+ err := cache .Put (ctx , key , map [ string ] string {}, errorReader , TTLKeep )
319315 if err == nil {
320316 t .Error ("Expected error from faulty reader, but got none" )
321317 }
0 commit comments