collect.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package search
  2. import (
  3. "fmt"
  4. "testing"
  5. "time"
  6. . "git.wecise.com/wecise/odbserver/odb"
  7. "git.wecise.com/wecise/odbserver/odb/test"
  8. "gitee.com/wecisecode/util/logger"
  9. "github.com/stretchr/testify/assert"
  10. "github.com/stretchr/testify/require"
  11. )
  12. type CollectTests struct {
  13. Test *testing.T
  14. g *Gutil
  15. }
  16. func CollectTest(t *testing.T) {
  17. g := test.TestG()
  18. t.Run("InitG", func(t *testing.T) {
  19. test := &CollectTests{Test: t, g: g}
  20. test.InitG()
  21. })
  22. t.Run("Class", func(t *testing.T) {
  23. test := &CollectTests{Test: t, g: g}
  24. test.Class()
  25. })
  26. t.Run("Data", func(t *testing.T) {
  27. test := &CollectTests{Test: t, g: g}
  28. test.Data()
  29. })
  30. time.Sleep(time.Duration(2) * time.Second)
  31. t.Run("Valid", func(t *testing.T) {
  32. test := &CollectTests{Test: t, g: g}
  33. test.Valid()
  34. })
  35. t.Run("Search", func(t *testing.T) {
  36. test := &CollectTests{Test: t, g: g}
  37. test.Search()
  38. })
  39. /*t.Run("Update", func(t *testing.T) {
  40. test := &CollectTests{Test: t, g: g}
  41. test.Update()
  42. })*/
  43. }
  44. func (t *CollectTests) InitG() {
  45. require.NotNil(t.Test, t.g)
  46. }
  47. func (t *CollectTests) Class() {
  48. _, _, err := t.g.Query(`
  49. create class if not exists /test/scollect (
  50. v_varchar varchar,
  51. v_map map<varchar, varchar>,
  52. t_map map<varchar, text>,
  53. v_list list<varchar>,
  54. t_list list<text>,
  55. v_set set<varchar>,
  56. t_set set<text>,
  57. indexes(v_varchar, v_map, v_list, v_set, t_map, t_list, t_set),
  58. keys(v_varchar)
  59. );`)
  60. if err != nil {
  61. logger.Errorf("%v", err)
  62. }
  63. require.Nil(t.Test, err, fmt.Sprint(err))
  64. }
  65. func (t *CollectTests) Data() {
  66. var err error
  67. _, _, err = t.g.Query(`insert into /test/scollect (v_varchar, v_map, v_list, v_set, t_map, t_list, t_set ) values ('abcdef', {"map1": "Hello world", "map2":"中华人民共和国"}, ["Hello world", "中华人民共和国"], ["Hello world", "中华人民共和国"], {"map1": "Hello world", "map2":"中华人民共和国"}, ["Hello world", "中华人民共和国"], ["Hello world", "中华人民共和国"] )`)
  68. if err != nil {
  69. logger.Errorf("%v", err)
  70. }
  71. require.Nil(t.Test, err, fmt.Sprint(err))
  72. }
  73. func (t *CollectTests) Valid() {
  74. rtn, _, err := t.g.Query(`select * from /test/scollect`)
  75. if err != nil {
  76. logger.Errorf("%v", err)
  77. }
  78. if assert.Nil(t.Test, err) {
  79. assert.Equal(t.Test, 1, len(rtn), "they should be equal")
  80. }
  81. }
  82. func (t *CollectTests) Search() {
  83. var err error
  84. var rtn []map[string]interface{}
  85. rtn, _, err = t.g.Search(`#/test/scollect | v_list = 'Hello world'`)
  86. if err != nil {
  87. logger.Errorf("%v", err)
  88. }
  89. if assert.Nil(t.Test, err) {
  90. assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find v_list = %v", "Hello world"))
  91. }
  92. rtn, _, err = t.g.Search(`#/test/scollect | v_set = 'Hello world'`)
  93. if err != nil {
  94. logger.Errorf("%v", err)
  95. }
  96. if assert.Nil(t.Test, err) {
  97. assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find v_set = %v", "Hello world"))
  98. }
  99. rtn, _, err = t.g.Search(`#/test/scollect | t_list = 'Hell*'`)
  100. if err != nil {
  101. logger.Errorf("%v", err)
  102. }
  103. if assert.Nil(t.Test, err) {
  104. assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find t_list = %v", "Hell*"))
  105. }
  106. rtn, _, err = t.g.Search(`#/test/scollect | t_set = 'Hell*'`)
  107. if err != nil {
  108. logger.Errorf("%v", err)
  109. }
  110. if assert.Nil(t.Test, err) {
  111. assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find t_set = %v", "Hell*"))
  112. }
  113. }