sdk.go 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. package v1
  2. import (
  3. "fmt"
  4. "git.sxidc.com/service-supports/dps-sdk"
  5. "git.sxidc.com/service-supports/dps-sdk/ports"
  6. "github.com/stretchr/testify/assert"
  7. "testing"
  8. )
  9. var clientInstance ports.Client
  10. func initClient(t *testing.T, address string) {
  11. client, err := dps.NewClient(address, "v1")
  12. if err != nil {
  13. t.Fatal(err)
  14. }
  15. clientInstance = client
  16. }
  17. func destroyClient(t *testing.T) {
  18. err := dps.DestroyClient("v1")
  19. if err != nil {
  20. t.Fatal(err)
  21. }
  22. clientInstance = nil
  23. }
  24. type ToolKit struct {
  25. t *testing.T
  26. }
  27. func newToolKit(t *testing.T) *ToolKit {
  28. return &ToolKit{t: t}
  29. }
  30. func (toolKit *ToolKit) autoMigrate(req *ports.AutoMigrateRequest) *ToolKit {
  31. err := clientInstance.AutoMigrate(req)
  32. if err != nil {
  33. toolKit.t.Fatal(err)
  34. }
  35. return toolKit
  36. }
  37. func (toolKit *ToolKit) autoMigrateBatch(req *ports.AutoMigrateBatchRequest) *ToolKit {
  38. err := clientInstance.AutoMigrateBatch(req)
  39. if err != nil {
  40. toolKit.t.Fatal(err)
  41. }
  42. return toolKit
  43. }
  44. func (toolKit *ToolKit) transaction(databaseID string, txFunc ports.TransactionFunc) *ToolKit {
  45. err := clientInstance.Transaction(databaseID, txFunc)
  46. if err != nil {
  47. toolKit.t.Fatal(err)
  48. }
  49. return toolKit
  50. }
  51. func (toolKit *ToolKit) insert(req *ports.InsertRequest) *ToolKit {
  52. statement, err := clientInstance.Insert(req)
  53. if err != nil {
  54. toolKit.t.Fatal(err)
  55. }
  56. fmt.Println(statement)
  57. return toolKit
  58. }
  59. func (toolKit *ToolKit) insertBatch(req *ports.InsertBatchRequest) *ToolKit {
  60. statement, err := clientInstance.InsertBatch(req)
  61. if err != nil {
  62. toolKit.t.Fatal(err)
  63. }
  64. fmt.Println(statement)
  65. return toolKit
  66. }
  67. func (toolKit *ToolKit) delete(req *ports.DeleteRequest) *ToolKit {
  68. statement, err := clientInstance.Delete(req)
  69. if err != nil {
  70. toolKit.t.Fatal(err)
  71. }
  72. fmt.Println(statement)
  73. return toolKit
  74. }
  75. func (toolKit *ToolKit) deleteBatch(req *ports.DeleteBatchRequest) *ToolKit {
  76. statement, err := clientInstance.DeleteBatch(req)
  77. if err != nil {
  78. toolKit.t.Fatal(err)
  79. }
  80. fmt.Println(statement)
  81. return toolKit
  82. }
  83. func (toolKit *ToolKit) update(req *ports.UpdateRequest) *ToolKit {
  84. statement, err := clientInstance.Update(req)
  85. if err != nil {
  86. toolKit.t.Fatal(err)
  87. }
  88. fmt.Println(statement)
  89. return toolKit
  90. }
  91. func (toolKit *ToolKit) reply(req *ports.ReplayRequest) *ToolKit {
  92. statement, err := clientInstance.Replay(req)
  93. if err != nil {
  94. toolKit.t.Fatal(err)
  95. }
  96. fmt.Println(statement)
  97. return toolKit
  98. }
  99. func (toolKit *ToolKit) queryByWhereAndOrderBy(req *ports.QueryByWhereAndOrderByRequest, retInfosMap *[]map[string]any) *ToolKit {
  100. statement, infosMap, totalCount, err := clientInstance.QueryByWhereAndOrderBy(req)
  101. if err != nil {
  102. toolKit.t.Fatal(err)
  103. }
  104. toolKit.assertEqual(len(infosMap), int(totalCount), "总数不一致")
  105. fmt.Println(statement)
  106. if retInfosMap != nil {
  107. *retInfosMap = make([]map[string]any, 0)
  108. *retInfosMap = infosMap
  109. }
  110. return toolKit
  111. }
  112. func (toolKit *ToolKit) commonQuery(req *ports.CommonQueryRequest, retInfosMap *[]map[string]any) *ToolKit {
  113. statement, infosMap, totalCount, err := clientInstance.CommonQuery(req)
  114. if err != nil {
  115. toolKit.t.Fatal(err)
  116. }
  117. toolKit.assertEqual(len(infosMap), int(totalCount), "总数不一致")
  118. fmt.Println(statement)
  119. if retInfosMap != nil {
  120. *retInfosMap = make([]map[string]any, 0)
  121. *retInfosMap = infosMap
  122. }
  123. return toolKit
  124. }
  125. func (toolKit *ToolKit) queryByKeys(req *ports.QueryByKeysRequest, retInfoMap *map[string]any) *ToolKit {
  126. statement, infoMap, err := clientInstance.QueryByKeys(req)
  127. if err != nil {
  128. toolKit.t.Fatal(err)
  129. }
  130. fmt.Println(statement)
  131. if retInfoMap != nil {
  132. *retInfoMap = make(map[string]any)
  133. *retInfoMap = infoMap
  134. }
  135. return toolKit
  136. }
  137. func (toolKit *ToolKit) countWhere(req *ports.CountWhereRequest, retCount *int64) *ToolKit {
  138. statement, count, err := clientInstance.CountWhere(req)
  139. if err != nil {
  140. toolKit.t.Fatal(err)
  141. }
  142. fmt.Println(statement)
  143. if retCount != nil {
  144. *retCount = count
  145. }
  146. return toolKit
  147. }
  148. func (toolKit *ToolKit) commonCount(req *ports.CommonCountRequest, retCount *int64) *ToolKit {
  149. statement, count, err := clientInstance.CommonCount(req)
  150. if err != nil {
  151. toolKit.t.Fatal(err)
  152. }
  153. fmt.Println(statement)
  154. if retCount != nil {
  155. *retCount = count
  156. }
  157. return toolKit
  158. }
  159. func (toolKit *ToolKit) assertEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) *ToolKit {
  160. assert.Equal(toolKit.t, expected, actual, msgAndArgs)
  161. return toolKit
  162. }
  163. func (toolKit *ToolKit) assertNotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) *ToolKit {
  164. assert.NotEqual(toolKit.t, expected, actual, msgAndArgs)
  165. return toolKit
  166. }
  167. func (toolKit *ToolKit) assertNotEmpty(object interface{}, msgAndArgs ...interface{}) *ToolKit {
  168. assert.NotEmpty(toolKit.t, object, msgAndArgs)
  169. return toolKit
  170. }