report_controller_test.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package controller
  2. import (
  3. "go-template/business/util"
  4. "io/ioutil"
  5. "os"
  6. "path/filepath"
  7. "testing"
  8. )
  9. // make test test_func=Test_reportController_Query test_pkg=./business/controller
  10. func Test_reportController_Query(t *testing.T) {
  11. t.Run("普通查询", func(t *testing.T) {
  12. response, err := util.NewTestPostHttpRequest(`{"params":{"id":1}}`, NewReportController().ReportInfo)
  13. util.NewTesting(t).CheckResult(response, err)
  14. })
  15. t.Run("分页查询-1", func(t *testing.T) {
  16. response, err := util.NewTestPostHttpRequest(`{"params":{"user_id":3768605}}`, NewReportController().ReportList)
  17. util.NewTesting(t).CheckResult(response, err)
  18. })
  19. t.Run("分页查询-2", func(t *testing.T) {
  20. response, err := util.NewTestPostHttpRequest(`{"params":{"user_id":3768605,"page":1,"page_size":5}}`, NewReportController().ReportList)
  21. util.NewTesting(t).CheckResult(response, err)
  22. })
  23. }
  24. // make test test_func=Test_reportController_DownLoadCsvFile test_pkg=./business/controller
  25. // mkdir -p /data/tmp/go-template
  26. // http://localhost:8080/go-template/download/csv/file?row=1000&column=20
  27. func Test_reportController_DownLoadCsvFile(t *testing.T) {
  28. response, err := util.NewTestHttpRequestWithDownLoadFile(map[string]string{"row": "1000", "column": "20"}, NewReportController().DownLoadCsvFile)
  29. if err != nil {
  30. t.Fatal(err)
  31. }
  32. body, err := ioutil.ReadAll(response.Body)
  33. if err != nil {
  34. t.Fatal(err)
  35. }
  36. fileName := filepath.Join("/data/tmp/go-template", "test.csv")
  37. t.Logf("open file : %s\n", fileName)
  38. file, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
  39. if err != nil {
  40. t.Fatal(err)
  41. }
  42. defer file.Close()
  43. if _, err := file.Write(body); err != nil {
  44. t.Fatal(err)
  45. }
  46. }
  47. // make test test_func=Test_reportController_DownLoadAndUploadXlsxFile test_pkg=./business/controller
  48. // mkdir -p /data/tmp/go-template
  49. // 下载 http://localhost:8080/go-template/download/xlsx/file?row=1000&column=20&&sheet=3
  50. func Test_reportController_DownLoadAndUploadXlsxFile(t *testing.T) {
  51. fileName := "test.xlsx"
  52. filePath := filepath.Join("/data/tmp/go-template", fileName)
  53. t.Run("下载excel文件: "+filePath, func(t *testing.T) {
  54. response, err := util.NewTestHttpRequestWithDownLoadFile(map[string]string{"row": "1000", "column": "20", "sheet": "3"}, NewReportController().DownLoadXlsxFile)
  55. if err != nil {
  56. t.Fatal(err)
  57. }
  58. body, err := ioutil.ReadAll(response.Body)
  59. if err != nil {
  60. t.Fatal(err)
  61. }
  62. t.Logf("open file : %s\n", filePath)
  63. file, err := os.OpenFile(filePath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
  64. if err != nil {
  65. t.Fatal(err)
  66. }
  67. defer file.Close()
  68. if _, err := file.Write(body); err != nil {
  69. t.Fatal(err)
  70. }
  71. })
  72. t.Run("上传excel文件: "+filePath, func(t *testing.T) {
  73. response, err := util.NewTestHttpRequestWithUploadFile(
  74. map[string]string{"sheet_name": "demo数据-0"},
  75. []util.FileForm{util.NewFileFormFromFile("file", fileName, filePath)},
  76. NewReportController().UploadXlsxFile)
  77. util.NewTesting(t).CheckResult(response, err)
  78. })
  79. }
  80. // make test test_func=Test_reportController_SendMQ test_pkg=./business/controller
  81. func Test_reportController_SendMQ(t *testing.T) {
  82. t.Run("test-1", func(t *testing.T) {
  83. response, err := util.NewTestPostHttpRequest(`{"params":{"topic":"test_topic","message":"hello world , my name is go-template !!!!"}}`, NewReportController().SendMQ)
  84. util.NewTesting(t).CheckResult(response, err)
  85. })
  86. t.Run("test-2", func(t *testing.T) {
  87. response, err := util.NewTestPostHttpRequest(`{"params":{"message":"hello world , my name is go-template !!!!"}}`, NewReportController().SendMQ)
  88. util.NewTesting(t).CheckResult(response, err)
  89. })
  90. }
  91. // 记得检测日志!
  92. // make test test_func=Test_reportController_Panic test_pkg=./business/controller
  93. func Test_reportController_Panic(t *testing.T) {
  94. response, err := util.NewTestGetHttpRequest(map[string]string{}, NewReportController().TestPanic)
  95. if err != nil {
  96. t.Fatal(err)
  97. }
  98. body, err := ioutil.ReadAll(response.Body)
  99. if err != nil {
  100. t.Fatal(err)
  101. }
  102. t.Logf("response body: %s, status: %v", body, response.StatusCode)
  103. }