(t *testing.T)
| 392 | } |
| 393 | |
| 394 | func 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 | |
| 450 | func TestCompatibilityObjectStorePutLink(t *testing.T) { |
| 451 | t.Parallel() |
nothing calls this directly
no test coverage detected