db_test.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package db
  2. import (
  3. uuid "github.com/satori/go.uuid"
  4. "github.com/stretchr/testify/assert"
  5. "os"
  6. "path/filepath"
  7. "strconv"
  8. "testing"
  9. )
  10. func TestSqlite(t *testing.T) {
  11. err := os.Remove(filepath.Join(os.TempDir(), "test.db"))
  12. assert.NoError(t, err)
  13. d := NewSqliteDb(filepath.Join(os.TempDir(), "test.db"))
  14. err = d.Init()
  15. assert.NoError(t, err)
  16. for _, tableName := range []string{"rule", "cert"} {
  17. var firstUuid, lastUuid string
  18. for i := 0; i < 1000; i++ {
  19. uid := uuid.NewV4().String()
  20. if i == 0 {
  21. firstUuid = uid
  22. }
  23. lastUuid = uid
  24. err = d.Insert(tableName, uid, "test"+strconv.Itoa(i))
  25. assert.NoError(t, err)
  26. }
  27. n, err := d.Count(tableName,"")
  28. assert.NoError(t, err)
  29. assert.Equal(t, int(n), 1000)
  30. list, err := d.QueryAll(tableName, "")
  31. assert.NoError(t, err)
  32. assert.Equal(t, len(list), 1000)
  33. one, err := d.QueryOne(tableName, firstUuid)
  34. assert.NoError(t, err)
  35. assert.Equal(t, one, "test0")
  36. list, err = d.QueryPage(tableName, 10, 10, "")
  37. assert.NoError(t, err)
  38. assert.Equal(t, len(list), 10)
  39. assert.Equal(t, list[0], "test989")
  40. err = d.Delete(tableName, lastUuid)
  41. assert.NoError(t, err)
  42. n, err = d.Count(tableName,"")
  43. assert.NoError(t, err)
  44. assert.Equal(t, n, int64(999))
  45. one, err = d.QueryOne(tableName, firstUuid)
  46. assert.NoError(t, err)
  47. err = d.Update(tableName, firstUuid, "test_new")
  48. assert.NoError(t, err)
  49. one, err = d.QueryOne(tableName, firstUuid)
  50. assert.NoError(t, err)
  51. assert.Equal(t, one, "test_new")
  52. }
  53. err = d.SetConfig("test_key1", "test_val1")
  54. assert.NoError(t, err)
  55. v, err := d.GetConfig("test_key1")
  56. assert.NoError(t, err)
  57. assert.Equal(t, v, "test_val1")
  58. v, err = d.GetConfig("test_key2")
  59. assert.Error(t, err)
  60. assert.Equal(t, v, "")
  61. err = d.SetConfig("test_key2", "test_val2")
  62. assert.NoError(t, err)
  63. v, err = d.GetConfig("test_key2")
  64. assert.NoError(t, err)
  65. assert.Equal(t, v, "test_val2")
  66. err = d.SetConfig("test_key1", "test_val2")
  67. assert.NoError(t, err)
  68. v, err = d.GetConfig("test_key1")
  69. assert.NoError(t, err)
  70. assert.Equal(t, v, "test_val2")
  71. }