github.com/peterbourgon/diskv@v2.0.1+incompatible/import_test.go (about) 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 }