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

Function TestObjectMultiWithDelete

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

Source from the content-addressed store, hash-verified

326}
327
328func TestObjectMultiWithDelete(t *testing.T) {
329 s := RunBasicJetStreamServer()
330 defer shutdownJSServerAndRemoveStorage(t, s)
331
332 nc, js := jsClient(t, s)
333 defer nc.Close()
334
335 obs, err := js.CreateObjectStore(&nats.ObjectStoreConfig{Bucket: "2OD"})
336 expectOk(t, err)
337
338 pa := bytes.Repeat([]byte("A"), 2_000_000)
339 pb := bytes.Repeat([]byte("B"), 3_000_000)
340
341 _, err = obs.PutBytes("A", pa)
342 expectOk(t, err)
343
344 // Hold onto this so we can make sure DeleteObject clears all messages, chunks and meta.
345 si, err := js.StreamInfo("OBJ_2OD")
346 expectOk(t, err)
347
348 _, err = obs.PutBytes("B", pb)
349 expectOk(t, err)
350
351 pb2, err := obs.GetBytes("B")
352 expectOk(t, err)
353
354 if !bytes.Equal(pb, pb2) {
355 t.Fatalf("Did not retrieve same object")
356 }
357
358 // Now delete B
359 err = obs.Delete("B")
360 expectOk(t, err)
361
362 siad, err := js.StreamInfo("OBJ_2OD")
363 expectOk(t, err)
364 if siad.State.Msgs != si.State.Msgs+1 { // +1 more delete marker.
365 t.Fatalf("Expected to have %d msgs after delete, got %d", siad.State.Msgs, si.State.Msgs+1)
366 }
367}
368
369func TestObjectNames(t *testing.T) {
370 s := RunBasicJetStreamServer()

Callers

nothing calls this directly

Calls 12

EqualMethod · 0.80
FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
jsClientFunction · 0.70
expectOkFunction · 0.70
CreateObjectStoreMethod · 0.65
PutBytesMethod · 0.65
StreamInfoMethod · 0.65
GetBytesMethod · 0.65
DeleteMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected