delete.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package basic
  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 DeleteTests struct {
  13. Test *testing.T
  14. g *Gutil
  15. }
  16. func DeleteTest(t *testing.T) {
  17. g := test.TestG()
  18. t.Run("InitG", func(t *testing.T) {
  19. test := &DeleteTests{Test: t, g: g}
  20. test.InitG()
  21. })
  22. t.Run("Class", func(t *testing.T) {
  23. test := &DeleteTests{Test: t, g: g}
  24. test.Class()
  25. })
  26. t.Run("Data", func(t *testing.T) {
  27. test := &DeleteTests{Test: t, g: g}
  28. test.Data()
  29. })
  30. time.Sleep(time.Duration(1) * time.Second)
  31. t.Run("Valid", func(t *testing.T) {
  32. test := &DeleteTests{Test: t, g: g}
  33. test.Valid()
  34. })
  35. t.Run("Delete", func(t *testing.T) {
  36. test := &DeleteTests{Test: t, g: g}
  37. test.Delete()
  38. })
  39. }
  40. func (t *DeleteTests) InitG() {
  41. require.NotNil(t.Test, t.g)
  42. }
  43. func (t *DeleteTests) Class() {
  44. _, _, err := t.g.Query(`
  45. create class if not exists /test/delete (
  46. v_varchar varchar,
  47. v_timestamp timestamp,
  48. v_date date,
  49. indexes(v_varchar, v_timestamp, v_date),
  50. keys(v_varchar)
  51. );`)
  52. if err != nil {
  53. logger.Errorf("%v", err)
  54. }
  55. require.Nil(t.Test, err, fmt.Sprint(err))
  56. }
  57. func (t *DeleteTests) Data() {
  58. var err error
  59. _, _, 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' )`)
  60. _, _, 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' )`)
  61. _, _, 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' )`)
  62. if err != nil {
  63. logger.Errorf("%v", err)
  64. }
  65. require.Nil(t.Test, err, fmt.Sprint(err))
  66. }
  67. func (t *DeleteTests) Valid() {
  68. rtn, _, err := t.g.Query(`select * from /test/delete`)
  69. if err != nil {
  70. logger.Errorf("%v", err)
  71. }
  72. if assert.Nil(t.Test, err) {
  73. if assert.NotNil(t.Test, rtn) {
  74. assert.Equal(t.Test, len(rtn), 3, "they should be equal")
  75. /*for _, row := range rtn{
  76. switch row["v_varchar"].(string) {
  77. 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")
  78. }
  79. }*/
  80. }
  81. }
  82. }
  83. func (t *DeleteTests) Delete() {
  84. var err error
  85. var rtn []map[string]interface{}
  86. rtn, _, err = t.g.Query(`select * from /test/delete where v_date = '2019-10-20'`)
  87. if err != nil {
  88. logger.Errorf("%v", err)
  89. }
  90. if assert.Nil(t.Test, err) {
  91. assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find v_date = %v", "2019-10-20"))
  92. }
  93. rtn, _, err = t.g.Query(`delete from /test/delete where v_date = '2019-10-20'`)
  94. if err != nil {
  95. logger.Errorf("%v", err)
  96. }
  97. rtn, _, err = t.g.Query(`select * from /test/delete where v_date = '2019-10-20'`)
  98. if err != nil {
  99. logger.Errorf("%v", err)
  100. }
  101. if assert.Nil(t.Test, err) {
  102. assert.Equal(t.Test, 0, len(rtn), fmt.Sprintf("not find v_date = %v", "2019-10-20"))
  103. }
  104. rtn, _, err = t.g.Query(`select * from /test/delete where v_timestamp = '2019-10-21 23:59:59'`)
  105. if err != nil {
  106. logger.Errorf("%v", err)
  107. }
  108. if assert.Nil(t.Test, err) {
  109. assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find v_timestamp = %v", "2019-10-21 23:59:59"))
  110. }
  111. rtn, _, err = t.g.Query(`delete from /test/delete where v_timestamp = '2019-10-21 23:59:59'`)
  112. if err != nil {
  113. logger.Errorf("%v", err)
  114. }
  115. rtn, _, err = t.g.Query(`select * from /test/delete where v_timestamp = '2019-10-21 23:59:59'`)
  116. if err != nil {
  117. logger.Errorf("%v", err)
  118. }
  119. if assert.Nil(t.Test, err) {
  120. assert.Equal(t.Test, 0, len(rtn), fmt.Sprintf("not find v_timestamp = %v", "2019-10-20 23:59:59"))
  121. }
  122. rtn, _, err = t.g.Query(`select * from /test/delete`)
  123. if err != nil {
  124. logger.Errorf("%v", err)
  125. }
  126. if assert.Nil(t.Test, err) {
  127. assert.Equal(t.Test, 1, len(rtn), fmt.Sprintf("not find "))
  128. }
  129. }