package basic 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 DeleteTests struct { Test *testing.T g *Gutil } func DeleteTest(t *testing.T) { g := test.TestG() t.Run("InitG", func(t *testing.T) { test := &DeleteTests{Test: t, g: g} test.InitG() }) t.Run("Class", func(t *testing.T) { test := &DeleteTests{Test: t, g: g} test.Class() }) t.Run("Data", func(t *testing.T) { test := &DeleteTests{Test: t, g: g} test.Data() }) time.Sleep(time.Duration(1) * time.Second) t.Run("Valid", func(t *testing.T) { test := &DeleteTests{Test: t, g: g} test.Valid() }) t.Run("Delete", func(t *testing.T) { test := &DeleteTests{Test: t, g: g} test.Delete() }) } func (t *DeleteTests) InitG() { require.NotNil(t.Test, t.g) } func (t *DeleteTests) Class() { _, _, err := t.g.Query(` create class if not exists /test/delete ( v_varchar varchar, v_timestamp timestamp, v_date date, indexes(v_varchar, v_timestamp, v_date), keys(v_varchar) );`) if err != nil { logger.Errorf("%v", err) } require.Nil(t.Test, err, fmt.Sprint(err)) } func (t *DeleteTests) Data() { var err error _, _, err = t.g.Query(`insert into /test/delete (v_varchar, v_date, v_timestamp) values ('1', '2019-10-20', '2019-10-20 23:59:59' )`) _, _, err = t.g.Query(`insert into /test/delete (v_varchar, v_date, v_timestamp) values ('2', '2019-10-21', '2019-10-21 23:59:59' )`) _, _, err = t.g.Query(`insert into /test/delete (v_varchar, v_date, v_timestamp) values ('3', '2019-10-22', '2019-10-22 23:59:59' )`) if err != nil { logger.Errorf("%v", err) } require.Nil(t.Test, err, fmt.Sprint(err)) } func (t *DeleteTests) Valid() { rtn, _, err := t.g.Query(`select * from /test/delete`) if err != nil { logger.Errorf("%v", err) } if assert.Nil(t.Test, err) { if assert.NotNil(t.Test, rtn) { assert.Equal(t.Test, len(rtn), 3, "they should be equal") /*for _, row := range rtn{ switch row["v_varchar"].(string) { case "1" : assert.Equal(t.Test, `hello word 2003 123-456-789 中华人民共和国是中国的唯一合法政府,台湾是中国一部分。 Mercury, Venus2,Earch%。Mars$Uranus CeresAndJupiterOrSaturn #Neptune Pluto_Charon"\""`, row["v_date"].(string), "they should be equal") } }*/ } } } func (t *DeleteTests) Delete() { var err error var rtn []map[string]interface{} rtn, _, err = t.g.Query(`select * from /test/delete where v_date = '2019-10-20'`) 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_date = %v", "2019-10-20")) } rtn, _, err = t.g.Query(`delete from /test/delete where v_date = '2019-10-20'`) if err != nil { logger.Errorf("%v", err) } rtn, _, err = t.g.Query(`select * from /test/delete where v_date = '2019-10-20'`) if err != nil { logger.Errorf("%v", err) } if assert.Nil(t.Test, err) { assert.Equal(t.Test, 0, len(rtn), fmt.Sprintf("not find v_date = %v", "2019-10-20")) } rtn, _, err = t.g.Query(`select * from /test/delete where v_timestamp = '2019-10-21 23:59:59'`) 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_timestamp = %v", "2019-10-21 23:59:59")) } rtn, _, err = t.g.Query(`delete from /test/delete where v_timestamp = '2019-10-21 23:59:59'`) if err != nil { logger.Errorf("%v", err) } rtn, _, err = t.g.Query(`select * from /test/delete where v_timestamp = '2019-10-21 23:59:59'`) if err != nil { logger.Errorf("%v", err) } if assert.Nil(t.Test, err) { assert.Equal(t.Test, 0, len(rtn), fmt.Sprintf("not find v_timestamp = %v", "2019-10-20 23:59:59")) } rtn, _, err = t.g.Query(`select * from /test/delete`) if err != nil { logger.Errorf("%v", err) } if assert.Nil(t.Test, err) { assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find ")) } }