...
1 package diskv_test
2
3 import (
4 "bytes"
5 "io/ioutil"
6 "os"
7
8 "github.com/peterbourgon/diskv"
9
10 "testing"
11 )
12
13 func TestImportMove(t *testing.T) {
14 b := []byte(`0123456789`)
15 f, err := ioutil.TempFile("", "temp-test")
16 if err != nil {
17 t.Fatal(err)
18 }
19 if _, err := f.Write(b); err != nil {
20 t.Fatal(err)
21 }
22 f.Close()
23
24 d := diskv.New(diskv.Options{
25 BasePath: "test-import-move",
26 })
27 defer d.EraseAll()
28
29 key := "key"
30
31 if err := d.Write(key, []byte(`TBD`)); err != nil {
32 t.Fatal(err)
33 }
34
35 if err := d.Import(f.Name(), key, true); err != nil {
36 t.Fatal(err)
37 }
38
39 if _, err := os.Stat(f.Name()); err == nil || !os.IsNotExist(err) {
40 t.Errorf("expected temp file to be gone, but err = %v", err)
41 }
42
43 if !d.Has(key) {
44 t.Errorf("%q not present", key)
45 }
46
47 if buf, err := d.Read(key); err != nil || bytes.Compare(b, buf) != 0 {
48 t.Errorf("want %q, have %q (err = %v)", string(b), string(buf), err)
49 }
50 }
51
52 func TestImportCopy(t *testing.T) {
53 b := []byte(`¡åéîòü!`)
54
55 f, err := ioutil.TempFile("", "temp-test")
56 if err != nil {
57 t.Fatal(err)
58 }
59 if _, err := f.Write(b); err != nil {
60 t.Fatal(err)
61 }
62 f.Close()
63
64 d := diskv.New(diskv.Options{
65 BasePath: "test-import-copy",
66 })
67 defer d.EraseAll()
68
69 if err := d.Import(f.Name(), "key", false); err != nil {
70 t.Fatal(err)
71 }
72
73 if _, err := os.Stat(f.Name()); err != nil {
74 t.Errorf("expected temp file to remain, but got err = %v", err)
75 }
76 }
77
View as plain text