login_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package login
  2. import (
  3. "ddpf/model/dbm"
  4. "ddpf/test"
  5. "github.com/tangs-drm/go-tool/log"
  6. "github.com/tangs-drm/go-tool/util"
  7. "net/http"
  8. "testing"
  9. "time"
  10. )
  11. func init() {
  12. test.SqlConf = "../../ddpf.sql"
  13. test.Init()
  14. mux := http.NewServeMux()
  15. Router()
  16. SrvAddr = func() string {
  17. return "http://127.0.0.1:7890"
  18. }
  19. mux.HandleFunc("/login", Login)
  20. go func() {
  21. log.Debug("init start listen on 7890")
  22. err := http.ListenAndServe(":7890", mux)
  23. if err != nil {
  24. panic(err)
  25. }
  26. }()
  27. time.Sleep(3 * time.Second)
  28. }
  29. func TestDoLogin(t *testing.T) {
  30. var times int = 3
  31. for i := 0; i < times; i++ {
  32. testDogin(t, i)
  33. }
  34. }
  35. func testDogin(t *testing.T, times int) {
  36. var err error
  37. log.Debug("testDologin times %v --- START", times)
  38. // 准备用户数据
  39. // user 1
  40. var sqlCommand = "INSERT INTO USER(ID, NAME, ACCOUNT, PASSWORD, ROLE, STATUS, COLLEGE) value(?, ?, ?, ?, ?, ?, ?);"
  41. _, err = dbm.Db().Exec(sqlCommand, util.UUID(), "user1", "123", "123456", 1, "normal", "computer")
  42. if err != nil {
  43. t.Error(err)
  44. return
  45. }
  46. // user 2
  47. _, err = dbm.Db().Exec(sqlCommand, util.UUID(), "user2", "124", "123456", 1, "normal", "computer")
  48. if err != nil {
  49. t.Error(err)
  50. return
  51. }
  52. // user 3
  53. _, err = dbm.Db().Exec(sqlCommand, util.UUID(), "user4", "125", "123456", 1, "normal", "computer")
  54. if err != nil {
  55. t.Error(err)
  56. return
  57. }
  58. log.Debug("START to login")
  59. // login
  60. var username, password string
  61. var result util.Map
  62. // username/password is empty
  63. result, err = DoLogin(username, password)
  64. if err == nil {
  65. t.Error(err)
  66. return
  67. }
  68. log.Debug("result --- %v", util.S2Json(result))
  69. // user is not exist
  70. result, err = DoLogin("halo", "halo")
  71. if err == nil {
  72. t.Error(err)
  73. return
  74. }
  75. // password is invalid
  76. result, err = DoLogin("123", "halo")
  77. if err == nil {
  78. t.Error(err)
  79. return
  80. }
  81. // success
  82. result, err = DoLogin("123", "123456")
  83. if err != nil {
  84. t.Error(err)
  85. return
  86. }
  87. log.Debug("DoLogin success result --- %v", util.S2Json(result))
  88. log.Debug("testDogin times %v --- END", times)
  89. }