Нема описа
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package main
  2. import (
  3. "context"
  4. "fmt"
  5. "log"
  6. "time"
  7. "git.x2erp.com/qdy/go-base/model/request/queryreq"
  8. "git.x2erp.com/qdy/go-base/sdk/configure"
  9. )
  10. func main() {
  11. fmt.Println("Testing Configure SDK...")
  12. // 1. 测试创建客户端
  13. client, err := configure.NewBasicAuthClient("http://localhost:8080", "admin", "123")
  14. if err != nil {
  15. log.Fatalf("Failed to create client: %v", err)
  16. }
  17. fmt.Printf("Client created successfully: URL=%s\n", client.GetConfig().BaseURL)
  18. // 2. 测试查询列表
  19. fmt.Println("\nTesting ListTables...")
  20. query := &configure.DicTableQueryRequest{
  21. QueryRequest: queryreq.QueryRequest{
  22. Page: 0,
  23. PageSize: 10,
  24. },
  25. }
  26. ctx1, cancel1 := context.WithTimeout(context.Background(), 10*time.Second)
  27. defer cancel1()
  28. result, err := client.ListTables(ctx1, query)
  29. if err != nil {
  30. log.Fatalf("Failed to list tables: %v", err)
  31. }
  32. fmt.Printf("ListTables success: TotalCount=%d, LastPage=%d\n", result.TotalCount, result.LastPage)
  33. fmt.Printf("Tables count: %d\n", len(result.Data))
  34. // 3. 测试创建表
  35. fmt.Println("\nTesting SaveTable...")
  36. req := &configure.DicTableRequest{
  37. TableID: "sdk_test_table_001",
  38. TableType: "实体表",
  39. Name: "SDK测试表001",
  40. Description: "SDK集成测试表",
  41. Fields: []configure.DicTableFieldRequest{
  42. {
  43. FieldID: "sdk_test_table_001.id",
  44. TableID: "sdk_test_table_001",
  45. FiledType: "实际字段",
  46. DataType: "数值型",
  47. FieldName: "id",
  48. FieldNameCN: "主键ID",
  49. Description: "SDK测试主键字段",
  50. },
  51. {
  52. FieldID: "sdk_test_table_001.name",
  53. TableID: "sdk_test_table_001",
  54. FiledType: "实际字段",
  55. DataType: "字符型",
  56. FieldName: "name",
  57. FieldNameCN: "名称",
  58. Description: "SDK测试名称字段",
  59. },
  60. },
  61. }
  62. ctx2, cancel2 := context.WithTimeout(context.Background(), 10*time.Second)
  63. defer cancel2()
  64. detail, err := client.SaveTable(ctx2, req)
  65. if err != nil {
  66. log.Fatalf("Failed to save table: %v", err)
  67. }
  68. fmt.Printf("SaveTable success: TableID=%s, Name=%s, Fields=%d\n",
  69. detail.Table.TableID, detail.Table.Name, len(detail.Fields))
  70. // 4. 测试查询详情
  71. fmt.Println("\nTesting GetTable...")
  72. ctx3, cancel3 := context.WithTimeout(context.Background(), 10*time.Second)
  73. defer cancel3()
  74. tableDetail, err := client.GetTable(ctx3, "sdk_test_table_001")
  75. if err != nil {
  76. log.Fatalf("Failed to get table: %v", err)
  77. }
  78. fmt.Printf("GetTable success: TableID=%s, Description=%s\n",
  79. tableDetail.Table.TableID, tableDetail.Table.Description)
  80. fmt.Printf("Fields in detail: %d\n", len(tableDetail.Fields))
  81. // 5. 测试更新表
  82. fmt.Println("\nTesting UpdateTable...")
  83. ctx4, cancel4 := context.WithTimeout(context.Background(), 10*time.Second)
  84. defer cancel4()
  85. req.Description = "更新后的SDK测试表描述"
  86. req.Name = "更新后的SDK测试表001"
  87. // 添加一个新字段
  88. req.Fields = append(req.Fields, configure.DicTableFieldRequest{
  89. FieldID: "sdk_test_table_001.status",
  90. TableID: "sdk_test_table_001",
  91. FiledType: "实际字段",
  92. DataType: "字符型",
  93. FieldName: "status",
  94. FieldNameCN: "状态",
  95. Description: "SDK测试状态字段",
  96. })
  97. updatedDetail, err := client.SaveTable(ctx4, req)
  98. if err != nil {
  99. log.Fatalf("Failed to update table: %v", err)
  100. }
  101. fmt.Printf("UpdateTable success: Description=%s, Fields=%d\n",
  102. updatedDetail.Table.Description, len(updatedDetail.Fields))
  103. // 6. 测试删除表
  104. fmt.Println("\nTesting DeleteTable...")
  105. ctx5, cancel5 := context.WithTimeout(context.Background(), 10*time.Second)
  106. defer cancel5()
  107. if err := client.DeleteTable(ctx5, "sdk_test_table_001"); err != nil {
  108. log.Fatalf("Failed to delete table: %v", err)
  109. }
  110. fmt.Println("DeleteTable success")
  111. // 7. 验证删除
  112. fmt.Println("\nVerifying deletion...")
  113. ctx6, cancel6 := context.WithTimeout(context.Background(), 10*time.Second)
  114. defer cancel6()
  115. _, err = client.GetTable(ctx6, "sdk_test_table_001")
  116. if err == configure.ErrNotFound {
  117. fmt.Println("Table deleted successfully (NotFound error as expected)")
  118. } else if err != nil {
  119. fmt.Printf("Unexpected error: %v\n", err)
  120. } else {
  121. fmt.Println("ERROR: Table still exists after deletion!")
  122. }
  123. fmt.Println("\nAll tests passed!")
  124. }