Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

84 lines
2.2KB

  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. }
  55. func TestCrmCreateEntityServerNotFound(t *testing.T) {
  56. SetupConfig()
  57. crmSite = "https://not-exist.hitxy.org.au/" //
  58. e := crmdLead{}
  59. e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
  60. e.LastName = "ll"
  61. e.Password = "pp"
  62. e.Status = "New"
  63. e.WechatHitxyID = "someopenid"
  64. b, _ := json.Marshal(e)
  65. entity, err := crmCreateEntity("Lead", b)
  66. AssertEqual(t, isErrIndicateDuplicate(err), false, "this should not be a duplicate error")
  67. AssertEqual(t, entity, nil, "should not be able to create entity, it should be nil")
  68. }