Нема описа
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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  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. Creator: "admin",
  42. CreatedAt: time.Now(),
  43. UpdatedAt: time.Now(),
  44. Fields: []configure.DicTableFieldRequest{
  45. {
  46. FieldID: "sdk_test_table_001.id",
  47. TableID: "sdk_test_table_001",
  48. FiledType: "实际字段",
  49. DataType: "数值型",
  50. FieldName: "id",
  51. FieldNameCN: "主键ID",
  52. Description: "SDK测试主键字段",
  53. Creator: "admin",
  54. CreatedAt: time.Now(),
  55. UpdatedAt: time.Now(),
  56. },
  57. {
  58. FieldID: "sdk_test_table_001.name",
  59. TableID: "sdk_test_table_001",
  60. FiledType: "实际字段",
  61. DataType: "字符型",
  62. FieldName: "name",
  63. FieldNameCN: "名称",
  64. Description: "SDK测试名称字段",
  65. Creator: "admin",
  66. CreatedAt: time.Now(),
  67. UpdatedAt: time.Now(),
  68. },
  69. },
  70. }
  71. ctx2, cancel2 := context.WithTimeout(context.Background(), 10*time.Second)
  72. defer cancel2()
  73. detail, err := client.SaveTable(ctx2, req)
  74. if err != nil {
  75. log.Fatalf("Failed to save table: %v", err)
  76. }
  77. fmt.Printf("SaveTable success: TableID=%s, Name=%s, Fields=%d\n",
  78. detail.Table.TableID, detail.Table.Name, len(detail.Fields))
  79. // 4. 测试查询详情
  80. fmt.Println("\nTesting GetTable...")
  81. ctx3, cancel3 := context.WithTimeout(context.Background(), 10*time.Second)
  82. defer cancel3()
  83. tableDetail, err := client.GetTable(ctx3, "sdk_test_table_001")
  84. if err != nil {
  85. log.Fatalf("Failed to get table: %v", err)
  86. }
  87. fmt.Printf("GetTable success: TableID=%s, Description=%s\n",
  88. tableDetail.Table.TableID, tableDetail.Table.Description)
  89. fmt.Printf("Fields in detail: %d\n", len(tableDetail.Fields))
  90. // 5. 测试更新表
  91. fmt.Println("\nTesting UpdateTable...")
  92. ctx4, cancel4 := context.WithTimeout(context.Background(), 10*time.Second)
  93. defer cancel4()
  94. req.Description = "更新后的SDK测试表描述"
  95. req.Name = "更新后的SDK测试表001"
  96. req.UpdatedAt = time.Now()
  97. // 添加一个新字段
  98. req.Fields = append(req.Fields, configure.DicTableFieldRequest{
  99. FieldID: "sdk_test_table_001.status",
  100. TableID: "sdk_test_table_001",
  101. FiledType: "实际字段",
  102. DataType: "字符型",
  103. FieldName: "status",
  104. FieldNameCN: "状态",
  105. Description: "SDK测试状态字段",
  106. Creator: "admin",
  107. CreatedAt: time.Now(),
  108. UpdatedAt: time.Now(),
  109. })
  110. updatedDetail, err := client.SaveTable(ctx4, req)
  111. if err != nil {
  112. log.Fatalf("Failed to update table: %v", err)
  113. }
  114. fmt.Printf("UpdateTable success: Description=%s, Fields=%d\n",
  115. updatedDetail.Table.Description, len(updatedDetail.Fields))
  116. // 6. 测试删除表
  117. fmt.Println("\nTesting DeleteTable...")
  118. ctx5, cancel5 := context.WithTimeout(context.Background(), 10*time.Second)
  119. defer cancel5()
  120. if err := client.DeleteTable(ctx5, "sdk_test_table_001"); err != nil {
  121. log.Fatalf("Failed to delete table: %v", err)
  122. }
  123. fmt.Println("DeleteTable success")
  124. // 7. 验证删除
  125. fmt.Println("\nVerifying deletion...")
  126. ctx6, cancel6 := context.WithTimeout(context.Background(), 10*time.Second)
  127. defer cancel6()
  128. _, err = client.GetTable(ctx6, "sdk_test_table_001")
  129. if err == configure.ErrNotFound {
  130. fmt.Println("Table deleted successfully (NotFound error as expected)")
  131. } else if err != nil {
  132. fmt.Printf("Unexpected error: %v\n", err)
  133. } else {
  134. fmt.Println("ERROR: Table still exists after deletion!")
  135. }
  136. fmt.Println("\nAll tests passed!")
  137. }