package storage import ( "os" "testing" "gitea.bel.blue/local/rproxy3/storage/packable" ) func TestDB(t *testing.T) { dbPath := "./fake_db_path" defer os.Remove(dbPath) cases := []func() DB{ func() DB { return DB(NewMap()) }, } raw := "hello world" for _, c := range cases { os.Remove(dbPath) s := packable.NewString(raw) db := c() if err := db.Set("ns", "key", s); err != nil { t.Errorf("cannot save: %v", err) } r := packable.NewString("") if err := db.Get("ns", "key", r); err != nil { t.Errorf("cannot load: %v", err) } if s.String() != r.String() { t.Errorf("set/get values not equal: %v vs %v", s, r) } if s.String() != raw { t.Errorf("set/get values not equal to raw: %v vs %v", s, raw) } if err := db.Close(); err != nil { t.Errorf("cannot close bolt: %v", err) } } }