MCPcopy
hub / github.com/nats-io/nats.go / TestObjectDeleteMarkers

Function TestObjectDeleteMarkers

test/object_test.go:288–326  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

286}
287
288func TestObjectDeleteMarkers(t *testing.T) {
289 s := RunBasicJetStreamServer()
290 defer shutdownJSServerAndRemoveStorage(t, s)
291
292 nc, js := jsClient(t, s)
293 defer nc.Close()
294
295 obs, err := js.CreateObjectStore(&nats.ObjectStoreConfig{Bucket: "OBJS"})
296 expectOk(t, err)
297
298 msg := bytes.Repeat([]byte("A"), 100)
299 _, err = obs.PutBytes("A", msg)
300 expectOk(t, err)
301
302 err = obs.Delete("A")
303 expectOk(t, err)
304
305 si, err := js.StreamInfo("OBJ_OBJS")
306 expectOk(t, err)
307
308 // We should have one message left, the "delete" marker.
309 if si.State.Msgs != 1 {
310 t.Fatalf("Expected 1 marker msg, got %d msgs", si.State.Msgs)
311 }
312 // For deleted object return error
313 _, err = obs.GetInfo("A")
314 expectErr(t, err, nats.ErrObjectNotFound)
315 _, err = obs.Get("A")
316 expectErr(t, err, nats.ErrObjectNotFound)
317
318 info, err := obs.GetInfo("A", nats.GetObjectInfoShowDeleted())
319 expectOk(t, err)
320 // Make sure we have a delete marker, this will be there to drive Watch functionality.
321 if !info.Deleted {
322 t.Fatalf("Expected info to be marked as deleted")
323 }
324 _, err = obs.Get("A", nats.GetObjectShowDeleted())
325 expectOk(t, err)
326}
327
328func TestObjectMultiWithDelete(t *testing.T) {
329 s := RunBasicJetStreamServer()

Callers

nothing calls this directly

Calls 13

FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
jsClientFunction · 0.70
expectOkFunction · 0.70
expectErrFunction · 0.70
CreateObjectStoreMethod · 0.65
PutBytesMethod · 0.65
DeleteMethod · 0.65
StreamInfoMethod · 0.65
GetInfoMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected