(t *testing.T)
| 286 | } |
| 287 | |
| 288 | func 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 | |
| 328 | func TestObjectMultiWithDelete(t *testing.T) { |
| 329 | s := RunBasicJetStreamServer() |
nothing calls this directly
no test coverage detected