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.

155 line
5.4KB

  1. package main
  2. import (
  3. "encoding/json"
  4. "testing"
  5. "time"
  6. )
  7. func TestConvertLead2Contact(t *testing.T) {
  8. //create a lead
  9. l := crmdLead{}
  10. l.FirstName = "testConvert" + time.Now().Format(getCrmTimeLayout())
  11. l.LastName = "temp lead (deletable)"
  12. l.Status = "Deletable"
  13. l.Password = "password"
  14. l.EmailAddress = "non-exit-fake@badmail.com"
  15. l.PhoneNumber = "12345678-1"
  16. l.ForceDuplicate = true
  17. jsonB, err := json.Marshal(l)
  18. AssertEqual(t, err, nil, "")
  19. entity, err := crmCreateEntity("Lead", jsonB)
  20. AssertEqual(t, err, nil, "")
  21. lead := entity.(crmdLead)
  22. AssertEqual(t, lead.ID != "", true, "")
  23. //conver to contact
  24. cc := crmdContact{}
  25. err = cc.convertFromLead(lead.ID)
  26. AssertEqual(t, err, nil, "")
  27. AssertEqual(t, cc.OriginalLeadID, lead.ID, "")
  28. AssertEqual(t, cc.FirstName, lead.FirstName, "")
  29. AssertEqual(t, cc.LastName, lead.LastName, "")
  30. AssertEqual(t, cc.EmailAddress, lead.EmailAddress, "")
  31. AssertEqual(t, cc.PhoneNumber, lead.PhoneNumber, "")
  32. //delete lead
  33. crmDeleteEntity("Lead", lead.ID)
  34. //delete contact
  35. crmDeleteEntity("Contact", cc.ID)
  36. }
  37. func TestDecodeContact(t *testing.T) {
  38. msg := `{
  39. "id": "57efb926aa6725fdd",
  40. "name": "Vincent Zhang",
  41. "deleted": false,
  42. "salutationName": "Mr.",
  43. "firstName": "Vincent",
  44. "lastName": "Zhang",
  45. "accountId": "57e3de733402c8d5f",
  46. "title": "IT Admin",
  47. "description": "somedescription",
  48. "emailAddress": "testemail@gmail.com",
  49. "phoneNumber": "12315",
  50. "doNotCall": false,
  51. "addressStreet": "street",
  52. "addressCity": "city",
  53. "addressState": "state",
  54. "addressCountry": "au",
  55. "addressPostalCode": "123",
  56. "accountType": "Customer",
  57. "createdAt": "2016-10-01 13:24:54",
  58. "modifiedAt": "2016-10-10 06:18:54",
  59. "emailAddressData": [],
  60. "phoneNumberData": [],
  61. "accountName": "Macquarie Mandarin",
  62. "accountsIds": [
  63. "57e3de733402c8d5f"
  64. ],
  65. "accountsNames": {
  66. "57e3de733402c8d5f": "Macquarie Mandarin"
  67. },
  68. "accountsColumns": {
  69. "57e3de733402c8d5f": {
  70. "role": "IT Admin"
  71. }
  72. },
  73. "campaignId": "cid",
  74. "campaignName": "campaignname",
  75. "createdById": "1",
  76. "createdByName": "spp",
  77. "modifiedById": "1",
  78. "modifiedByName": "spp",
  79. "assignedUserId": "1",
  80. "assignedUserName": "spp",
  81. "teamsIds": [],
  82. "teamsNames": {},
  83. "portalUserId": "pi",
  84. "portalUserName": "pu",
  85. "originalLeadId": "oid",
  86. "originalLeadName": "oname",
  87. "isFollowed": true,
  88. "followersIds": [
  89. "1"
  90. ],
  91. "followersNames": {
  92. "1": "spp"
  93. },
  94. "avatarId": "57fb32cd3de8755df",
  95. "avatarName": "06_vincen.jpg",
  96. "namecardId": null,
  97. "namecardName": null,
  98. "namecardbackId": null,
  99. "namecardbackName": null
  100. }`
  101. cc := crmdContact{}
  102. err := json.Unmarshal([]byte(msg), &cc)
  103. //log.Println(err)
  104. AssertEqual(t, err, nil, "decode contact should be correct")
  105. AssertEqual(t, cc.ID, "57efb926aa6725fdd", "contact ID mismatch")
  106. AssertEqual(t, cc.Name, "Vincent Zhang", "contact name mismatch")
  107. AssertEqual(t, cc.Deleted, false, "deleted should be false")
  108. AssertEqual(t, cc.SalutationName, "Mr.", "solutation should be Mr.")
  109. AssertEqual(t, cc.FirstName, "Vincent", "first name should be Vincent")
  110. AssertEqual(t, cc.LastName, "Zhang", "last name should be zhang")
  111. AssertEqual(t, cc.AccountID, "57e3de733402c8d5f", "accound id should be 57e3de733402c8d5f")
  112. AssertEqual(t, cc.Title, "IT Admin", "title should be IT Admin")
  113. AssertEqual(t, cc.Description, "somedescription", "description not right")
  114. AssertEqual(t, cc.EmailAddress, "testemail@gmail.com", "email address not right")
  115. AssertEqual(t, cc.PhoneNumber, "12315", "")
  116. AssertEqual(t, cc.DoNotCall, false, "do not call should be false ")
  117. AssertEqual(t, cc.AddressStreet, "street", "street not right")
  118. AssertEqual(t, cc.AddressCity, "city", "city not right")
  119. AssertEqual(t, cc.AddressState, "state", "state not right")
  120. AssertEqual(t, cc.AddressCountry, "au", "country mismatch")
  121. AssertEqual(t, cc.AddresPostalCode, "123", "post code not right")
  122. AssertEqual(t, cc.AccountType, "Customer", "account type shold be customer")
  123. AssertEqual(t, cc.CreatedAt, "2016-10-01 13:24:54", "")
  124. AssertEqual(t, cc.ModifiedAt, "2016-10-10 06:18:54", "")
  125. AssertEqual(t, cc.AccountName, "Macquarie Mandarin", "")
  126. AssertEqual(t, cc.AccountIDs[0], "57e3de733402c8d5f", "first account id mismatch")
  127. AssertEqual(t, cc.AccountNames["57e3de733402c8d5f"], "Macquarie Mandarin", "")
  128. AssertEqual(t, cc.AccountsColumns["57e3de733402c8d5f"].Role, "IT Admin", "")
  129. AssertEqual(t, cc.CampaignName, "campaignname", "")
  130. AssertEqual(t, cc.CampaignID, "cid", "campaignID mismatch")
  131. AssertEqual(t, cc.CreatedByID, "1", "creatd by should be 1")
  132. AssertEqual(t, cc.CreatedByName, "spp", "created by name not match")
  133. AssertEqual(t, cc.ModifiedByID, "1", "modified by should be 1")
  134. AssertEqual(t, cc.ModifiedByName, "spp", "modified by name not match")
  135. AssertEqual(t, cc.AssignedUserID, "1", "assigned user id should be 1")
  136. AssertEqual(t, cc.AssignedUserName, "spp", "assigned user name not match")
  137. AssertEqual(t, len(cc.TeamsIDs), 0, "")
  138. AssertEqual(t, len(cc.TeamsNames), 0, "")
  139. AssertEqual(t, cc.PortalUserID, "pi", "")
  140. AssertEqual(t, cc.PortalUserName, "pu", "")
  141. AssertEqual(t, cc.OriginalLeadID, "oid", "")
  142. AssertEqual(t, cc.OriginalLeadName, "oname", "")
  143. AssertEqual(t, cc.IsFollowed, true, "is followed should be true")
  144. AssertEqual(t, cc.FollwersIDs[0], "1", "follower id should be 1")
  145. AssertEqual(t, cc.FollowersNames["1"], "spp", "follower name should be sp")
  146. }