MCPcopy
hub / github.com/hashicorp/go-memdb / TestTxn_InsertDelete_Simple

Function TestTxn_InsertDelete_Simple

txn_test.go:458–539  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

456 }
457}
458func TestTxn_InsertDelete_Simple(t *testing.T) {
459 db := testDB(t)
460 txn := db.Txn(true)
461
462 obj1 := &TestObject{
463 ID: "my-cool-thing",
464 Foo: "xyz",
465 Qux: []string{"xyz1", "xyz2"},
466 }
467 obj2 := &TestObject{
468 ID: "my-other-cool-thing",
469 Foo: "xyz",
470 Qux: []string{"xyz1", "xyz2"},
471 }
472
473 err := txn.Insert("main", obj1)
474 if err != nil {
475 t.Fatalf("err: %v", err)
476 }
477 err = txn.Insert("main", obj2)
478 if err != nil {
479 t.Fatalf("err: %v", err)
480 }
481
482 // Check the shared secondary value,
483 // but the primary ID of obj2 should be first
484 raw, err := txn.First("main", "foo", obj2.Foo)
485 if err != nil {
486 t.Fatalf("err: %v", err)
487 }
488 if raw != obj1 {
489 t.Fatalf("bad: %#v %#v", raw, obj1)
490 }
491
492 // Commit and start a new transaction
493 txn.Commit()
494 txn = db.Txn(true)
495
496 // Delete obj1
497 err = txn.Delete("main", obj1)
498 if err != nil {
499 t.Fatalf("err: %v", err)
500 }
501
502 // Delete obj1 again and expect ErrNotFound
503 err = txn.Delete("main", obj1)
504 if err != ErrNotFound {
505 t.Fatalf("expected err to be %v, got %v", ErrNotFound, err)
506 }
507
508 // Lookup of the primary obj1 should fail
509 raw, err = txn.First("main", "id", obj1.ID)
510 if err != nil {
511 t.Fatalf("err: %v", err)
512 }
513 if raw != nil {
514 t.Fatalf("bad: %#v %#v", raw, obj1)
515 }

Callers

nothing calls this directly

Calls 6

testDBFunction · 0.85
TxnMethod · 0.80
InsertMethod · 0.80
FirstMethod · 0.80
CommitMethod · 0.80
DeleteMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…