MCPcopy
hub / github.com/redis/go-redis / TestDelExArgsWithDigest

Function TestDelExArgsWithDigest

digest_test.go:204–265  ·  view source on GitHub ↗

TestDelExArgsWithDigest validates DelExArgs works with digest matching

(t *testing.T)

Source from the content-addressed store, hash-verified

202
203// TestDelExArgsWithDigest validates DelExArgs works with digest matching
204func TestDelExArgsWithDigest(t *testing.T) {
205 skipIfRedisBelow84(t)
206
207 ctx := context.Background()
208 client := redis.NewClient(&redis.Options{
209 Addr: "localhost:6379",
210 })
211 defer client.Close()
212
213 if err := client.Ping(ctx).Err(); err != nil {
214 t.Skipf("Redis not available: %v", err)
215 }
216
217 client.Del(ctx, "del-test-key")
218
219 // Set a value
220 value := "delete-me"
221 err := client.Set(ctx, "del-test-key", value, 0).Err()
222 if err != nil {
223 t.Fatalf("Failed to set value: %v", err)
224 }
225
226 // Get correct digest
227 correctDigest := client.Digest(ctx, "del-test-key").Val()
228 wrongDigest := uint64(54321)
229
230 // Test 1: Delete with wrong digest should fail
231 deleted := client.DelExArgs(ctx, "del-test-key", redis.DelExArgs{
232 Mode: "IFDEQ",
233 MatchDigest: wrongDigest,
234 }).Val()
235
236 if deleted != 0 {
237 t.Errorf("Delete with wrong digest should not delete: got %d deletions", deleted)
238 } else {
239 t.Logf("✓ DelExArgs with wrong digest correctly refused to delete")
240 }
241
242 // Verify key still exists
243 exists := client.Exists(ctx, "del-test-key").Val()
244 if exists != 1 {
245 t.Errorf("Key should still exist after failed delete")
246 }
247
248 // Test 2: Delete with correct digest should succeed
249 deleted = client.DelExArgs(ctx, "del-test-key", redis.DelExArgs{
250 Mode: "IFDEQ",
251 MatchDigest: correctDigest,
252 }).Val()
253
254 if deleted != 1 {
255 t.Errorf("Delete with correct digest should delete: got %d deletions", deleted)
256 } else {
257 t.Logf("✓ DelExArgs with correct digest successfully deleted")
258 }
259
260 // Verify key was deleted
261 exists = client.Exists(ctx, "del-test-key").Val()

Callers

nothing calls this directly

Calls 10

skipIfRedisBelow84Function · 0.85
CloseMethod · 0.65
ErrMethod · 0.65
PingMethod · 0.65
DelMethod · 0.65
SetMethod · 0.65
DigestMethod · 0.65
DelExArgsMethod · 0.65
ExistsMethod · 0.65
ValMethod · 0.45

Tested by

no test coverage detected