prepare_delete_batch.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package prepare_batch
  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 PrepareDeleteBatchTests struct {
  13. Test *testing.T
  14. g *odb.Gutil
  15. }
  16. func PrepareDeleteBatchTest(t *testing.T) {
  17. g := test.TestG()
  18. t.Run("InitG", func(t *testing.T) {
  19. test := &PrepareDeleteBatchTests{Test: t, g: g}
  20. test.InitG()
  21. })
  22. t.Run("Class", func(t *testing.T) {
  23. test := &PrepareDeleteBatchTests{Test: t, g: g}
  24. test.Class()
  25. })
  26. time.Sleep(time.Duration(1) * time.Second)
  27. t.Run("Data", func(t *testing.T) {
  28. test := &PrepareDeleteBatchTests{Test: t, g: g}
  29. test.Data()
  30. })
  31. t.Run("Valid", func(t *testing.T) {
  32. test := &PrepareDeleteBatchTests{Test: t, g: g}
  33. test.Valid()
  34. })
  35. }
  36. func (t *PrepareDeleteBatchTests) InitG() {
  37. require.NotNil(t.Test, t.g)
  38. }
  39. func (t *PrepareDeleteBatchTests) Class() {
  40. _, _, err := t.g.Query(`
  41. create class if not exists /test/batch (
  42. v_varchar varchar,
  43. v_text text,
  44. v_int int,
  45. v_bigint bigint,
  46. v_smalldouble double,
  47. v_double double,
  48. v_float float,
  49. v_bool bool,
  50. indexes(v_varchar, v_text, v_int, v_bigint, v_double, v_float, v_smalldouble, v_bool),
  51. keys(v_varchar , v_text)
  52. ) with ckeys=v_bool`)
  53. if err != nil {
  54. logger.Errorf("%v", err)
  55. }
  56. require.Nil(t.Test, err, fmt.Sprint(err))
  57. }
  58. func (t *PrepareDeleteBatchTests) Data() {
  59. var err error
  60. stat, err := t.g.Prepare(`
  61. BEGIN BATCH
  62. delete from /test/batch where v_varchar = ? ;
  63. delete from /test/batch where v_varchar = ? ;
  64. delete from /test/batch where v_varchar = ? ;
  65. delete from /test/batch where v_varchar = ? ;
  66. delete from /test/batch where v_varchar = ? ;
  67. delete from /test/batch where v_varchar = ? ;
  68. delete from /test/batch where v_varchar = ? ;
  69. delete from /test/batch where v_varchar = ? ;
  70. delete from /test/batch where v_varchar = ? ;
  71. delete from /test/batch where v_varchar = ? ;
  72. END
  73. `)
  74. if err != nil {
  75. logger.Errorf("%v", err)
  76. }
  77. _, _, err = stat.Exec(
  78. "4006",
  79. "40",
  80. "400",
  81. "74006",
  82. "409",
  83. "500",
  84. "600",
  85. "700",
  86. "602",
  87. "708")
  88. require.Nil(t.Test, err, fmt.Sprint(err))
  89. }
  90. func (t *PrepareDeleteBatchTests) Valid() {
  91. rtn, _, err := t.g.Query(`select * from /test/batch`)
  92. if err != nil {
  93. logger.Errorf("%v", err)
  94. }
  95. if assert.Nil(t.Test, err, err) {
  96. if assert.NotNil(t.Test, rtn) {
  97. assert.Equal(t.Test, 0, len(rtn), "they should be equal")
  98. }
  99. }
  100. }