Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

92 lines
2.6KB

  1. package main
  2. import (
  3. "encoding/json"
  4. "log"
  5. "testing"
  6. "time"
  7. )
  8. func TestGetEntity(t *testing.T) {
  9. SetupConfig()
  10. leadID := "595071f8450974b72"
  11. entity, err := crmGetEntity("Lead", leadID)
  12. AssertEqual(t, err, nil, "get entity should return nil error")
  13. lead, ok := entity.(crmdLead)
  14. AssertEqual(t, ok, true, "type assertion should be true")
  15. AssertEqual(t, leadID, lead.ID, "lead id mismatch")
  16. lead1 := entity.(crmdLead)
  17. AssertEqual(t, lead.ID, lead1.ID, "type casting should work")
  18. }
  19. func TestCreateEntity(t *testing.T) {
  20. SetupConfig()
  21. e := crmdLead{}
  22. e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
  23. e.LastName = "ll"
  24. e.Password = "pp"
  25. e.Status = "New"
  26. b, _ := json.Marshal(e)
  27. log.Println(string(b))
  28. entity, _ := createEntity("Lead", b)
  29. lead1 := entity.(crmdLead)
  30. log.Println(lead1)
  31. lead2, _ := crmGetLead(lead1.ID)
  32. AssertEqual(t, lead2.ID, lead1.ID, "lead id should be equal")
  33. e.Password = "newpass"
  34. b, _ = json.Marshal(e)
  35. entity, _ = updateEntity("Lead", lead2.ID, b)
  36. lead3 := entity.(crmdLead)
  37. log.Println(lead3)
  38. AssertEqual(t, lead3.ID, lead1.ID, "should be same lead")
  39. AssertEqual(t, lead3.Password, "newpass", "password should have been changed")
  40. AssertEqual(t, lead1.Password, "pp", "old password should be PP")
  41. //delete this test lead.
  42. deleted, _ := deleteEntity("Lead", lead1.ID)
  43. AssertEqual(t, deleted, true, "record should be deleted")
  44. }
  45. func TestCreateDuplicate(t *testing.T) {
  46. SetupConfig()
  47. e := crmdLead{}
  48. e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
  49. e.LastName = "ll"
  50. e.Password = "pp"
  51. e.Status = "New"
  52. e.WechatHitxyID = "someopenid"
  53. b, _ := json.Marshal(e)
  54. entity, _ := createEntity("Lead", b)
  55. lead1 := entity.(crmdLead)
  56. entity, _ = crmGetEntity("Lead", lead1.ID)
  57. lead2 := entity.(crmdLead)
  58. AssertEqual(t, lead1.ID, lead2.ID, "lead should have been created successfully")
  59. //try to create it again
  60. entity, err := createEntity("Lead", b)
  61. AssertEqual(t, err == nil, false, "should have error for duplicates")
  62. AssertEqual(t, isErrIndicateDuplicate(err), true, "this should be duplicate error")
  63. }
  64. func TestCreateEntityServerNotFound(t *testing.T) {
  65. SetupConfig()
  66. crmSite = "https://not-exist.hitxy.org.au/" //
  67. e := crmdLead{}
  68. e.FirstName = "ff" + time.Now().Format("2006-jan-02 03:04:05")
  69. e.LastName = "ll"
  70. e.Password = "pp"
  71. e.Status = "New"
  72. e.WechatHitxyID = "someopenid"
  73. b, _ := json.Marshal(e)
  74. entity, err := createEntity("Lead", b)
  75. AssertEqual(t, isErrIndicateDuplicate(err), false, "this should not be a duplicate error")
  76. AssertEqual(t, entity, nil, "should not be able to create entity, it should be nil")
  77. }