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

Function TestKeyValueNonDirectGet

test/kv_test.go:1452–1496  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1450}
1451
1452func TestKeyValueNonDirectGet(t *testing.T) {
1453 s := RunBasicJetStreamServer()
1454 defer shutdownJSServerAndRemoveStorage(t, s)
1455
1456 nc, js := jsClient(t, s)
1457 defer nc.Close()
1458
1459 _, err := js.CreateKeyValue(&nats.KeyValueConfig{Bucket: "TEST"})
1460 if err != nil {
1461 t.Fatalf("Error creating store: %v", err)
1462 }
1463 si, err := js.StreamInfo("KV_TEST")
1464 if err != nil {
1465 t.Fatalf("Error getting stream info: %v", err)
1466 }
1467 if !si.Config.AllowDirect {
1468 t.Fatal("Expected allow direct to be set, it was not")
1469 }
1470
1471 cfg := si.Config
1472 cfg.AllowDirect = false
1473 if _, err := js.UpdateStream(&cfg); err != nil {
1474 t.Fatalf("Error updating stream: %v", err)
1475 }
1476 kvi, err := js.KeyValue("TEST")
1477 if err != nil {
1478 t.Fatalf("Error getting kv: %v", err)
1479 }
1480
1481 if _, err := kvi.PutString("key1", "val1"); err != nil {
1482 t.Fatalf("Error putting key: %v", err)
1483 }
1484 if _, err := kvi.PutString("key2", "val2"); err != nil {
1485 t.Fatalf("Error putting key: %v", err)
1486 }
1487 if v, err := kvi.Get("key2"); err != nil || string(v.Value()) != "val2" {
1488 t.Fatalf("Error on get: v=%+v err=%v", v, err)
1489 }
1490 if v, err := kvi.GetRevision("key1", 1); err != nil || string(v.Value()) != "val1" {
1491 t.Fatalf("Error on get revision: v=%+v err=%v", v, err)
1492 }
1493 if v, err := kvi.GetRevision("key1", 2); err == nil {
1494 t.Fatalf("Expected error, got %+v", v)
1495 }
1496}
1497
1498func TestKeyValueRePublish(t *testing.T) {
1499 s := RunBasicJetStreamServer()

Callers

nothing calls this directly

Calls 13

FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
jsClientFunction · 0.70
CreateKeyValueMethod · 0.65
StreamInfoMethod · 0.65
UpdateStreamMethod · 0.65
KeyValueMethod · 0.65
PutStringMethod · 0.65
GetMethod · 0.65
ValueMethod · 0.65
GetRevisionMethod · 0.65

Tested by

no test coverage detected