client_test.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // 一个包文件夹中只能存在一个包名 或 其对应的 测试包名
  2. // 用 main 程序做测试,一个 main 包中只能有一个名为 main 函数
  3. // 因此一个文件夹中只能容纳一个主函数
  4. // 一个文件夹中包含多个带有 main 函数的文件会导致IDE无法自动编译并报告语法错误
  5. //
  6. // 测试程序 文件名形式必须为 xxx_test.go
  7. // 包名 形式必须为 xxx_test
  8. // 测试函数名形式必须为 TestXxxx(t *testing.T) 或 BenchmarkXxxx(b *testing.B)
  9. // 一个测试文件中可以容纳多个测试函数
  10. // 一个文件夹中可以容纳多个测试文件
  11. package client_test
  12. import (
  13. "encoding/json"
  14. "fmt"
  15. "testing"
  16. "git.wecise.com/wecise/odb-go/odb"
  17. "git.wecise.com/wecise/odb-go/odbc"
  18. "github.com/stretchr/testify/assert"
  19. )
  20. // 程序设置默认值
  21. // 可通过命令行参数、环境变量、配置文件设置,详情可通过 odbc.Usage 查看
  22. var odbconfig = &odb.Config{
  23. Hosts: []string{"47.92.151.165:11001"},
  24. Keyspace: "oktest",
  25. User: fmt.Sprint("测试客户端"),
  26. Pass: "********",
  27. PoolSize: 20,
  28. Debug: true,
  29. }
  30. func TestClientMQL(t *testing.T) {
  31. // 根据参数配置获取 ODBC 连接
  32. odbclient := odbc.ODBC(odbconfig)
  33. defer func() {
  34. // 结束前关闭 ODBC 连接
  35. odbclient.Close()
  36. }()
  37. // 执行 MQL
  38. ret, err := odbclient.Query("select signal('status') from /").Do()
  39. if !assert.Nil(t, err) {
  40. return
  41. }
  42. // 通过 odbc.Config 获取配置信息
  43. if odbc.Config.GetBool("test.print.result", true) {
  44. // 打印 MQL 执行结果
  45. bs, err := json.MarshalIndent(ret.Data, "", " ")
  46. if !assert.Nil(t, err) {
  47. return
  48. }
  49. // 通过 odbc.Logger 输出日志信息
  50. odbc.Logger.Info(string(bs))
  51. }
  52. }
  53. func TestClientCQL(t *testing.T) {
  54. // 根据参数配置获取 ODBC 连接
  55. odbclient := odbc.ODBC(odbconfig)
  56. defer func() {
  57. // 结束前关闭 ODBC 连接
  58. odbclient.Close()
  59. }()
  60. // 执行 CQL
  61. ret, err := odbclient.QueryCql("select listen_address, schema_version from system.local").Do()
  62. if !assert.Nil(t, err) {
  63. return
  64. }
  65. // 通过 odbc.Config 获取配置信息
  66. if odbc.Config.GetBool("test.print.result", true) {
  67. // 打印 CQL 执行结果
  68. bs, err := json.MarshalIndent(ret.Data, "", " ")
  69. if !assert.Nil(t, err) {
  70. return
  71. }
  72. // 通过 odbc.Logger 输出日志信息
  73. odbc.Logger.Info(string(bs))
  74. }
  75. }
  76. func TestClientSearch(t *testing.T) {
  77. // 根据参数配置获取 ODBC 连接
  78. odbclient := odbc.ODBC(odbconfig)
  79. defer func() {
  80. // 结束前关闭 ODBC 连接
  81. odbclient.Close()
  82. }()
  83. // 执行 Search
  84. ret, err := odbclient.Search("#/matrix/group").Do()
  85. if !assert.Nil(t, err) {
  86. return
  87. }
  88. // 通过 odbc.Config 获取配置信息
  89. if odbc.Config.GetBool("test.print.result", true) {
  90. // 打印 Search 执行结果
  91. bs, err := json.MarshalIndent(ret.Data, "", " ")
  92. if !assert.Nil(t, err) {
  93. return
  94. }
  95. // 通过 odbc.Logger 输出日志信息
  96. odbc.Logger.Info(string(bs))
  97. }
  98. }