package search import ( "fmt" "testing" "time" . "git.wecise.com/wecise/odbserver/odb" "git.wecise.com/wecise/odbserver/odb/test" "gitee.com/wecisecode/util/logger" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) type CollectTests struct { Test *testing.T g *Gutil } func CollectTest(t *testing.T) { g := test.TestG() t.Run("InitG", func(t *testing.T) { test := &CollectTests{Test: t, g: g} test.InitG() }) t.Run("Class", func(t *testing.T) { test := &CollectTests{Test: t, g: g} test.Class() }) t.Run("Data", func(t *testing.T) { test := &CollectTests{Test: t, g: g} test.Data() }) time.Sleep(time.Duration(2) * time.Second) t.Run("Valid", func(t *testing.T) { test := &CollectTests{Test: t, g: g} test.Valid() }) t.Run("Search", func(t *testing.T) { test := &CollectTests{Test: t, g: g} test.Search() }) /*t.Run("Update", func(t *testing.T) { test := &CollectTests{Test: t, g: g} test.Update() })*/ } func (t *CollectTests) InitG() { require.NotNil(t.Test, t.g) } func (t *CollectTests) Class() { _, _, err := t.g.Query(` create class if not exists /test/scollect ( v_varchar varchar, v_map map, t_map map, v_list list, t_list list, v_set set, t_set set, indexes(v_varchar, v_map, v_list, v_set, t_map, t_list, t_set), keys(v_varchar) );`) if err != nil { logger.Errorf("%v", err) } require.Nil(t.Test, err, fmt.Sprint(err)) } func (t *CollectTests) Data() { var err error _, _, 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", "中华人民共和国"] )`) if err != nil { logger.Errorf("%v", err) } require.Nil(t.Test, err, fmt.Sprint(err)) } func (t *CollectTests) Valid() { rtn, _, err := t.g.Query(`select * from /test/scollect`) if err != nil { logger.Errorf("%v", err) } if assert.Nil(t.Test, err) { assert.Equal(t.Test, 1, len(rtn), "they should be equal") } } func (t *CollectTests) Search() { var err error var rtn []map[string]interface{} rtn, _, err = t.g.Search(`#/test/scollect | v_list = 'Hello world'`) if err != nil { logger.Errorf("%v", err) } if assert.Nil(t.Test, err) { assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find v_list = %v", "Hello world")) } rtn, _, err = t.g.Search(`#/test/scollect | v_set = 'Hello world'`) if err != nil { logger.Errorf("%v", err) } if assert.Nil(t.Test, err) { assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find v_set = %v", "Hello world")) } rtn, _, err = t.g.Search(`#/test/scollect | t_list = 'Hell*'`) if err != nil { logger.Errorf("%v", err) } if assert.Nil(t.Test, err) { assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find t_list = %v", "Hell*")) } rtn, _, err = t.g.Search(`#/test/scollect | t_set = 'Hell*'`) if err != nil { logger.Errorf("%v", err) } if assert.Nil(t.Test, err) { assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find t_set = %v", "Hell*")) } }