v1_test.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package v1
  2. import (
  3. "git.sxidc.com/service-supports/dps-sdk/ports"
  4. "math/rand"
  5. "testing"
  6. "time"
  7. )
  8. var tableModelDescribe = ports.TableModelDescribe{
  9. Fields: []ports.TableModelField{
  10. {"ID", "gorm:\"primary_key;type:varchar(32);comment:id;\""},
  11. {"Name", "gorm:\"not null;type:varchar(128);comment:数据库名称;\""},
  12. {"Time", "gorm:\"not null;type:timestamp with time zone;comment:数据库时间;\""},
  13. {"TableNum", "gorm:\"not null;type:integer;comment:数据库表数量;\""},
  14. },
  15. }
  16. func TestAutoMigrate(t *testing.T) {
  17. initClient(t, "localhost:30170")
  18. defer destroyClient(t)
  19. newToolKit(t).autoMigrate(&ports.AutoMigrateRequest{
  20. DatabaseID: "2b78141779ee432295ca371b91c5cac7",
  21. TablePrefixWithSchema: "test." + simpleUUID()[0:8],
  22. Version: "v1",
  23. TableModelDescribe: tableModelDescribe,
  24. })
  25. }
  26. func TestInsert(t *testing.T) {
  27. initClient(t, "localhost:30170")
  28. defer destroyClient(t)
  29. tablePrefix := "test." + simpleUUID()[0:8]
  30. id := simpleUUID()
  31. name := simpleUUID()
  32. now := time.Now().Local()
  33. tableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
  34. resultMap := make(map[string]any)
  35. newToolKit(t).
  36. autoMigrate(&ports.AutoMigrateRequest{
  37. DatabaseID: "2b78141779ee432295ca371b91c5cac7",
  38. TablePrefixWithSchema: tablePrefix,
  39. Version: "v1",
  40. TableModelDescribe: tableModelDescribe,
  41. }).
  42. insert(&ports.InsertRequest{
  43. DatabaseID: "2b78141779ee432295ca371b91c5cac7",
  44. TablePrefixWithSchema: tablePrefix,
  45. Version: "v1",
  46. KeyColumns: []string{"id"},
  47. TableRow: map[string]any{
  48. "id": id,
  49. "name": name,
  50. "time": now,
  51. "table_num": tableNum,
  52. },
  53. UserID: "test",
  54. }).
  55. queryByKeys(&ports.QueryByKeysRequest{
  56. DatabaseID: "2b78141779ee432295ca371b91c5cac7",
  57. TablePrefixWithSchema: tablePrefix,
  58. Version: "v1",
  59. KeyValues: map[string]string{"id": id},
  60. }, &resultMap).
  61. assertEqual(id, resultMap["id"], "ID不一致").
  62. assertEqual(name, resultMap["name"], "名称不一致").
  63. assertEqual(now.UnixMilli(), resultMap["time"].(time.Time).Local().UnixMilli(), "时间不一致").
  64. assertEqual(tableNum, resultMap["table_num"], "表数量不一致")
  65. }