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.

127 satır
3.5KB

  1. package main
  2. import (
  3. "encoding/json"
  4. "log"
  5. "testing"
  6. "time"
  7. )
  8. func TestCrmCreateEntity(t *testing.T) {
  9. SetupConfig()
  10. e := crmdLead{}
  11. e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
  12. e.LastName = "ll"
  13. e.Password = "pp"
  14. e.Status = "New"
  15. b, _ := json.Marshal(e)
  16. //Create
  17. entity, _ := crmCreateEntity("Lead", b)
  18. lead1, ok := entity.(crmdLead)
  19. AssertEqual(t, ok, true, "entity type should be crmdLead")
  20. //Read
  21. lead2, _ := crmGetLead(lead1.ID)
  22. AssertEqual(t, lead2.ID, lead1.ID, "lead id should be equal")
  23. //Update
  24. e.Password = "newpass"
  25. b, _ = json.Marshal(e)
  26. entity, _ = crmUpdateEntity("Lead", lead2.ID, b)
  27. lead3 := entity.(crmdLead)
  28. AssertEqual(t, lead3.ID, lead1.ID, "should be same lead")
  29. AssertEqual(t, lead3.Password, "newpass", "password should have been changed")
  30. AssertEqual(t, lead1.Password, "pp", "old password should be PP")
  31. //Delete this test lead.
  32. deleted, _ := crmDeleteEntity("Lead", lead1.ID)
  33. AssertEqual(t, deleted, true, "record should be deleted")
  34. }
  35. func TestCreateDuplicate(t *testing.T) {
  36. SetupConfig()
  37. e := crmdLead{}
  38. e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
  39. e.LastName = "ll"
  40. e.Password = "pp"
  41. e.EmailAddress = "abc@gmail.com"
  42. e.Status = "New"
  43. e.WechatHitxyID = "someopenid"
  44. b, _ := json.Marshal(e)
  45. //create
  46. entity, _ := crmCreateEntity("Lead", b)
  47. lead1 := entity.(crmdLead)
  48. //Read
  49. entity, _ = crmGetEntity("Lead", lead1.ID)
  50. lead2 := entity.(crmdLead)
  51. AssertEqual(t, lead1.ID, lead2.ID, "lead should have been created successfully")
  52. //try to create it again
  53. entity, err := crmCreateEntity("Lead", b)
  54. AssertEqual(t, err == nil, false, "should have error for duplicates")
  55. AssertEqual(t, isErrIndicateDuplicate(err), true, "the err should be duplicate error")
  56. //delete
  57. deleted, _ := crmDeleteEntity("Lead", entity.(crmdLead).ID)
  58. AssertEqual(t, deleted, true, "test record should be deleted")
  59. }
  60. func TestCrmCreateEntityServerNotFound(t *testing.T) {
  61. return
  62. SetupConfig()
  63. crmSite = "https://not-exist.hitxy.org.au/" //
  64. e := crmdLead{}
  65. e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
  66. e.LastName = "ll"
  67. e.Password = "pp"
  68. e.Status = "New"
  69. e.WechatHitxyID = "someopenid"
  70. b, _ := json.Marshal(e)
  71. entity, err := crmCreateEntity("Lead", b)
  72. AssertEqual(t, isErrIndicateDuplicate(err), false, "this should not be a duplicate error")
  73. AssertEqual(t, entity, nil, "should not be able to create entity, it should be nil")
  74. }
  75. func TestCrmReplaceEntity(t *testing.T) {
  76. SetupConfig()
  77. e := crmdLead{}
  78. e.FirstName = "ff1" + time.Now().Format("2006-jan-02 03:04:05")
  79. e.LastName = "ll1"
  80. e.Password = "pp"
  81. e.Status = "New"
  82. e.EmailAddress = "abc@gmail.com"
  83. e.WechatHitxyID = "someopenid"
  84. b, _ := json.Marshal(e)
  85. entity, err := crmCreateEntity("Lead", b)
  86. if err != nil {
  87. log.Println("--------------")
  88. log.Println(err)
  89. log.Println("--------------")
  90. }
  91. AssertEqual(t, err, nil, "create record should be successful")
  92. AssertEqual(t, isErrIndicateDuplicate(err), false, "this should not be a duplicate error")
  93. id := entity.(crmdLead).ID
  94. //put
  95. e.WechatHitxyID = "newid"
  96. e.Password = "newpass"
  97. nb, _ := json.Marshal(e)
  98. entity, err = crmReplaceEntity("Lead", id, nb)
  99. AssertEqual(t, err, nil, "put should have no error")
  100. AssertEqual(t, entity.(crmdLead).WechatHitxyID, "newid", "wechat_hitxy_id should be updated")
  101. AssertEqual(t, entity.(crmdLead).Password, "newpass", "password should have been changed to newpass")
  102. return
  103. //delete
  104. deleted, _ := crmDeleteEntity("Lead", id)
  105. AssertEqual(t, deleted, true, "test record should have been deleted.")
  106. }