openidec

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

db_test.go (1422B)


      1 package ii
      2 
      3 import (
      4 	"io/ioutil"
      5 	"os"
      6 	"testing"
      7 )
      8 
      9 func TestOpenDB(t *testing.T) {
     10 	var db *DB
     11 	InitLog()
     12 	dir, err := ioutil.TempDir(os.TempDir(), "ii.test.*")
     13 	if err != nil {
     14 		t.Error("Can not create temp dir")
     15 		return
     16 	}
     17 	defer os.RemoveAll(dir)
     18 	path := dir + "/db"
     19 	db = OpenDB(path)
     20 	if db == nil {
     21 		t.Error("Can not open db")
     22 		return
     23 	}
     24 	var m *Msg
     25 	if m, err = DecodeBundle(Test_msg); m == nil {
     26 		t.Error("Can not decode msg", err)
     27 		return
     28 	}
     29 	if err := db.Store(m); err != nil {
     30 		t.Error("Can not save msg", err)
     31 		return
     32 	}
     33 	m2 := db.Get(m.MsgId)
     34 	if m2 == nil || m2.Text != m.Text {
     35 		t.Error("Can not lookup msg")
     36 		return
     37 	}
     38 	os.Remove(db.IndexPath())
     39 
     40 	db = OpenDB(path) // reopen
     41 	m2 = db.Get(m.MsgId)
     42 	if m2 == nil || m2.Text != m.Text {
     43 		t.Error("Can not lookup msg (create new index)")
     44 		return
     45 	}
     46 	m2.Text = "Edited"
     47 	if err := db.Edit(m2); err != nil {
     48 		t.Error("Can not save duplicate msg", err)
     49 		return
     50 	}
     51 	m3 := db.Get(m2.MsgId)
     52 	if m3 == nil || m3.Text != m2.Text {
     53 		t.Error("Can not lookup msg (edited)")
     54 		return
     55 	}
     56 	db = OpenDB(path) // reopen
     57 	m3 = db.Get(m.MsgId)
     58 	if m3 == nil || m3.Text != m2.Text {
     59 		t.Error("Can not lookup msg (reopen, edited msg)", m3.Text)
     60 		return
     61 	}
     62 	os.Remove(db.IndexPath())
     63 	db = OpenDB(path) // reopen
     64 	m3 = db.Get(m.MsgId)
     65 	if m3 == nil || m3.Text != m2.Text {
     66 		t.Error("Can not lookup msg (create new index, edited msg)", m3.Text)
     67 		return
     68 	}
     69 }