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

Function TestObjectMetadata

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

Source from the content-addressed store, hash-verified

395}
396
397func TestObjectMetadata(t *testing.T) {
398 s := RunBasicJetStreamServer()
399 defer shutdownJSServerAndRemoveStorage(t, s)
400
401 nc, js := jsClient(t, s)
402 defer nc.Close()
403
404 bucketMetadata := map[string]string{"foo": "bar", "baz": "boo"}
405 obs, err := js.CreateObjectStore(&nats.ObjectStoreConfig{
406 Bucket: "META-TEST",
407 Metadata: bucketMetadata,
408 })
409 expectOk(t, err)
410 status, err := obs.Status()
411 expectOk(t, err)
412 for k, v := range bucketMetadata {
413 if status.Metadata()[k] != v {
414 t.Fatalf("invalid bucket metadata: %+v", status.Metadata())
415 }
416 }
417
418 // Simple with no Meta.
419 _, err = obs.PutString("A", "AAA")
420 expectOk(t, err)
421 buf := bytes.NewBufferString("CCC")
422 objectMetadata := map[string]string{"name": "C", "description": "descC"}
423 info, err := obs.Put(&nats.ObjectMeta{Name: "C", Metadata: objectMetadata}, buf)
424 expectOk(t, err)
425 if !reflect.DeepEqual(info.Metadata, objectMetadata) {
426 t.Fatalf("invalid object metadata: %+v", info.Metadata)
427 }
428
429 meta := &nats.ObjectMeta{Name: "A"}
430 meta.Description = "descA"
431 meta.Headers = make(nats.Header)
432 meta.Headers.Set("color", "blue")
433 objectMetadata["description"] = "updated desc"
434 objectMetadata["version"] = "0.1"
435 meta.Metadata = objectMetadata
436
437 // simple update that does not change the name, just adds data
438 err = obs.UpdateMeta("A", meta)
439 expectOk(t, err)
440
441 info, err = obs.GetInfo("A")
442 expectOk(t, err)
443 if info.Name != "A" || info.Description != "descA" || info.Headers == nil || info.Headers.Get("color") != "blue" ||
444 !reflect.DeepEqual(info.Metadata, objectMetadata) {
445 t.Fatalf("Update failed: %+v", info)
446 }
447
448 // update that changes the name and some data
449 meta = &nats.ObjectMeta{Name: "B"}
450 meta.Description = "descB"
451 meta.Headers = make(nats.Header)
452 meta.Headers.Set("color", "red")
453 meta.Metadata = nil
454

Callers

nothing calls this directly

Calls 15

FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
jsClientFunction · 0.70
expectOkFunction · 0.70
expectErrFunction · 0.70
CreateObjectStoreMethod · 0.65
StatusMethod · 0.65
MetadataMethod · 0.65
PutStringMethod · 0.65
PutMethod · 0.65
SetMethod · 0.65

Tested by

no test coverage detected