Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

112 lines
3.1KB

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