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

Function TestCompatibilityObjectStorePutLink

test/compat_test.go:450–500  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

448}
449
450func TestCompatibilityObjectStorePutLink(t *testing.T) {
451 t.Parallel()
452
453 type config struct {
454 Bucket string `json:"bucket"`
455 Object string `json:"object"`
456 LinkName string `json:"link_name"`
457 }
458
459 nc := connect(t)
460 js, err := jetstream.New(nc)
461 if err != nil {
462 t.Fatalf("Error connecting to NATS: %v", err)
463 }
464 defer nc.Close()
465 ctx := context.Background()
466 // setup subscription on which tester will be sending requests
467 sub, err := nc.SubscribeSync("tests.object-store.put-link.>")
468 if err != nil {
469 t.Fatalf("Error subscribing to test subject: %v", err)
470 }
471 defer sub.Unsubscribe()
472
473 msg, err := sub.NextMsg(1 * time.Hour)
474 if err != nil {
475 t.Fatalf("Error getting message: %v", err)
476 }
477 // Watch object
478 var cfg config
479 if err := json.Unmarshal(msg.Data, &cfg); err != nil {
480 t.Fatalf("Error unmarshalling message: %v", err)
481 }
482 os, err := js.ObjectStore(ctx, cfg.Bucket)
483 if err != nil {
484 t.Fatalf("Error getting object store: %v", err)
485 }
486 sourceObj, err := os.GetInfo(ctx, cfg.Object)
487 if err != nil {
488 t.Fatalf("Error getting object: %v", err)
489 }
490 _, err = os.AddLink(ctx, cfg.LinkName, sourceObj)
491 if err != nil {
492 t.Fatalf("Error adding link: %v", err)
493 }
494
495 if err := msg.Respond(nil); err != nil {
496 t.Fatalf("Error responding to message: %v", err)
497 }
498
499 validateTestResult(t, sub)
500}
501
502func validateTestResult(t *testing.T, sub *nats.Subscription) {
503 t.Helper()

Callers

nothing calls this directly

Calls 12

NewFunction · 0.92
connectFunction · 0.85
validateTestResultFunction · 0.85
FatalfMethod · 0.80
UnsubscribeMethod · 0.80
NextMsgMethod · 0.80
SubscribeSyncMethod · 0.65
ObjectStoreMethod · 0.65
GetInfoMethod · 0.65
AddLinkMethod · 0.65
RespondMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected