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

Function TestCompatibilityObjectStoreGetLink

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

Source from the content-addressed store, hash-verified

392}
393
394func TestCompatibilityObjectStoreGetLink(t *testing.T) {
395 t.Parallel()
396
397 type config struct {
398 Bucket string `json:"bucket"`
399 Object string `json:"object"`
400 }
401
402 nc := connect(t)
403 js, err := jetstream.New(nc)
404 if err != nil {
405 t.Fatalf("Error connecting to NATS: %v", err)
406 }
407 defer nc.Close()
408 ctx := context.Background()
409 // setup subscription on which tester will be sending requests
410 sub, err := nc.SubscribeSync("tests.object-store.get-link.>")
411 if err != nil {
412 t.Fatalf("Error subscribing to test subject: %v", err)
413 }
414 defer sub.Unsubscribe()
415
416 msg, err := sub.NextMsg(1 * time.Hour)
417 if err != nil {
418 t.Fatalf("Error getting message: %v", err)
419 }
420 // Watch object
421 var cfg config
422 if err := json.Unmarshal(msg.Data, &cfg); err != nil {
423 t.Fatalf("Error unmarshalling message: %v", err)
424 }
425 os, err := js.ObjectStore(ctx, cfg.Bucket)
426 if err != nil {
427 t.Fatalf("Error getting object store: %v", err)
428 }
429 obj, err := os.Get(ctx, cfg.Object)
430 if err != nil {
431 t.Fatalf("Error getting object: %v", err)
432 }
433
434 data, err := io.ReadAll(obj)
435 if err != nil {
436 t.Fatalf("Error reading object: %v", err)
437 }
438 // calculate sha256 of the object
439 h := sha256.New()
440 h.Write(data)
441 sha := h.Sum(nil)
442
443 if err := msg.Respond(sha); err != nil {
444 t.Fatalf("Error responding to message: %v", err)
445 }
446
447 validateTestResult(t, sub)
448}
449
450func TestCompatibilityObjectStorePutLink(t *testing.T) {
451 t.Parallel()

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
GetMethod · 0.65
RespondMethod · 0.65
CloseMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected