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.

414 line
13KB

  1. package main
  2. import (
  3. "encoding/json"
  4. "log"
  5. "testing"
  6. )
  7. func TestDecodeLeadInfo(t *testing.T) {
  8. msg := `{
  9. "id": "58f4aa0682ea74bb8",
  10. "name": "same email",
  11. "deleted": false,
  12. "salutationName": "Mr",
  13. "firstName": "same",
  14. "lastName": "email",
  15. "title": "title",
  16. "status": "New",
  17. "source": "",
  18. "industry": "",
  19. "opportunityAmount": null,
  20. "website": "",
  21. "addressStreet": "",
  22. "addressCity": "",
  23. "addressState": "",
  24. "addressCountry": "",
  25. "addressPostalCode": "",
  26. "emailAddress": "test@gmail.com",
  27. "phoneNumber": "456",
  28. "doNotCall": false,
  29. "description": "",
  30. "createdAt": "2017-04-17 11:41:58",
  31. "modifiedAt": "2017-04-18 04:41:06",
  32. "accountName": "",
  33. "password": "abcdefg",
  34. "wechat_hitxy_id": "the user id obtained from wechat public account",
  35. "verifier": [
  36. "231823091",
  37. "adkdaifaskfsafsa",
  38. "394kfdjafdsa",
  39. "39410498321041"
  40. ],
  41. "opportunityAmountCurrency": null,
  42. "opportunityAmountConverted": null,
  43. "createdById": "1",
  44. "createdByName": "Admin",
  45. "modifiedById": "58ef420cac3cf6c95",
  46. "modifiedByName": "wechat robot",
  47. "assignedUserId": "1",
  48. "assignedUserName": "Admin",
  49. "campaignId": null,
  50. "createdAccountId": null,
  51. "createdContactId": null,
  52. "createdOpportunityId": null
  53. }`
  54. r := crmdLead{}
  55. err := json.Unmarshal([]byte(msg), &r)
  56. //log.Println(r)
  57. AssertEqual(t, err, nil, "Decode CRM Lead Json shold be correct")
  58. AssertEqual(t, r.ID, "58f4aa0682ea74bb8", "ID mismatch ")
  59. AssertEqual(t, r.Name, "same email", "Name mismatch")
  60. AssertEqual(t, r.Deleted, false, "")
  61. AssertEqual(t, r.SalutationName, "Mr", "")
  62. AssertEqual(t, r.FirstName, "same", "")
  63. AssertEqual(t, r.LastName, "email", "")
  64. AssertEqual(t, r.Title, "title", "")
  65. AssertEqual(t, r.Status, "New", "")
  66. AssertEqual(t, r.Source, "", "")
  67. AssertEqual(t, r.Industry, "", "")
  68. AssertEqual(t, r.OpportunityAmount, 0, "")
  69. AssertEqual(t, r.Website, "", "")
  70. AssertEqual(t, r.AddressStreet, "", "")
  71. AssertEqual(t, r.AddressCity, "", "")
  72. AssertEqual(t, r.AddressState, "", "")
  73. AssertEqual(t, r.AddressCountry, "", "")
  74. AssertEqual(t, r.AddressPostalCode, "", "")
  75. AssertEqual(t, r.EmailAddress, "test@gmail.com", "")
  76. AssertEqual(t, r.PhoneNumber, "456", "")
  77. AssertEqual(t, r.DoNotCall, false, "")
  78. AssertEqual(t, r.Description, "", "")
  79. AssertEqual(t, r.CreatedAt, "2017-04-17 11:41:58", "")
  80. AssertEqual(t, r.ModifiedAt, "2017-04-18 04:41:06", "")
  81. AssertEqual(t, r.AccountName, "", "")
  82. AssertEqual(t, r.Password, "abcdefg", "")
  83. AssertEqual(t, r.WechatHitxyID, "the user id obtained from wechat public account", "")
  84. AssertEqual(t, r.Verifier[0], "231823091", "")
  85. AssertEqual(t, r.Verifier[1], "adkdaifaskfsafsa", "")
  86. AssertEqual(t, r.Verifier[2], "394kfdjafdsa", "")
  87. AssertEqual(t, r.Verifier[3], "39410498321041", "")
  88. AssertEqual(t, r.OpportunityAmountCurrency, "", "")
  89. AssertEqual(t, r.OpportunityAmountConverted, 0, "")
  90. AssertEqual(t, r.CreatedByID, "1", "")
  91. AssertEqual(t, r.CreatedByName, "Admin", "")
  92. AssertEqual(t, r.ModifiedByID, "58ef420cac3cf6c95", "")
  93. AssertEqual(t, r.ModifiedByName, "wechat robot", "")
  94. AssertEqual(t, r.AssignedUserID, "1", "")
  95. AssertEqual(t, r.AssignedUserName, "Admin", "")
  96. AssertEqual(t, r.CampaignID, "", "")
  97. AssertEqual(t, r.CreatedAccountID, "", "")
  98. AssertEqual(t, r.CreatedContactID, "", "")
  99. AssertEqual(t, r.CreatedOpportunityID, "", "")
  100. }
  101. func TestcrmdLeadByCompleteInfo(t *testing.T) {
  102. msg := `{
  103. "id": "58f4aa0682ea74bb8",
  104. "name": "same email",
  105. "deleted": false,
  106. "salutationName": "",
  107. "firstName": "same",
  108. "lastName": "email",
  109. "title": "",
  110. "status": "New",
  111. "source": "",
  112. "industry": "",
  113. "opportunityAmount": 120,
  114. "website": "",
  115. "addressStreet": "",
  116. "addressCity": "",
  117. "addressState": "",
  118. "addressCountry": "",
  119. "addressPostalCode": "",
  120. "emailAddress": "test@gmail.com",
  121. "phoneNumber": "456",
  122. "doNotCall": false,
  123. "description": "",
  124. "createdAt": "2017-04-17 11:41:58",
  125. "modifiedAt": "2017-06-04 04:08:16",
  126. "accountName": "",
  127. "password": "abcdefg",
  128. "wechat_hitxy_id": "the user id obtained from wechat public account",
  129. "verifier": [
  130. "231823091",
  131. "adkdaifaskfsafsa",
  132. "394kfdjafdsa",
  133. "39410498321041"
  134. ],
  135. "opportunityAmountCurrency": "AUD",
  136. "opportunityAmountConverted": 120,
  137. "emailAddressData": [
  138. {
  139. "emailAddress": "test@gmail.com",
  140. "lower": "test@gmail.com",
  141. "primary": true,
  142. "optOut": false,
  143. "invalid": false
  144. },
  145. {
  146. "emailAddress": "abc@hotmail.com",
  147. "lower": "abc@hotmail.com",
  148. "primary": false,
  149. "optOut": false,
  150. "invalid": false
  151. },
  152. {
  153. "emailAddress": "def@jjx.com.au",
  154. "lower": "def@jjx.com.au",
  155. "primary": false,
  156. "optOut": false,
  157. "invalid": false
  158. }
  159. ],
  160. "phoneNumberData": [
  161. {
  162. "phoneNumber": "456",
  163. "primary": true,
  164. "type": "Home"
  165. },
  166. {
  167. "phoneNumber": "123",
  168. "primary": false,
  169. "type": "Mobile"
  170. }
  171. ],
  172. "createdById": "1",
  173. "createdByName": "Admin",
  174. "modifiedById": "1",
  175. "modifiedByName": "Admin",
  176. "assignedUserId": "1",
  177. "assignedUserName": "Admin",
  178. "teamsIds": [],
  179. "teamsNames": {},
  180. "campaignId": null,
  181. "campaignName": null,
  182. "createdAccountId": null,
  183. "createdAccountName": null,
  184. "createdContactId": null,
  185. "createdContactName": null,
  186. "createdOpportunityId": null,
  187. "createdOpportunityName": null,
  188. "imagesIds": [],
  189. "imagesNames": {},
  190. "isFollowed": true,
  191. "followersIds": [
  192. "1"
  193. ],
  194. "followersNames": {
  195. "1": "Admin"
  196. },
  197. "imagesTypes": {}
  198. }`
  199. r := crmdLead{}
  200. err := json.Unmarshal([]byte(msg), &r)
  201. //log.Println(r)
  202. AssertEqual(t, err, nil, "")
  203. AssertEqual(t, r.ID, "58f4aa0682ea74bb8", "ID mismatch ")
  204. AssertEqual(t, r.Name, "same email", "Name mismatch")
  205. AssertEqual(t, r.Deleted, false, "")
  206. AssertEqual(t, r.SalutationName, "", "")
  207. AssertEqual(t, r.FirstName, "same", "")
  208. AssertEqual(t, r.LastName, "email", "")
  209. AssertEqual(t, r.Title, "", "")
  210. AssertEqual(t, r.Status, "New", "")
  211. AssertEqual(t, r.Source, "", "")
  212. AssertEqual(t, r.Industry, "", "")
  213. AssertEqual(t, r.OpportunityAmount, 120, "")
  214. AssertEqual(t, r.Website, "", "")
  215. AssertEqual(t, r.AddressStreet, "", "")
  216. AssertEqual(t, r.AddressCity, "", "")
  217. AssertEqual(t, r.AddressState, "", "")
  218. AssertEqual(t, r.AddressCountry, "", "")
  219. AssertEqual(t, r.AddressPostalCode, "", "")
  220. AssertEqual(t, r.EmailAddress, "test@gmail.com", "")
  221. AssertEqual(t, r.PhoneNumber, "456", "")
  222. AssertEqual(t, r.DoNotCall, false, "")
  223. AssertEqual(t, r.Description, "", "")
  224. AssertEqual(t, r.CreatedAt, "2017-04-17 11:41:58", "")
  225. AssertEqual(t, r.ModifiedAt, "2017-06-04 04:08:16", "")
  226. AssertEqual(t, r.AccountName, "", "")
  227. AssertEqual(t, r.Password, "abcdefg", "")
  228. AssertEqual(t, r.WechatHitxyID, "the user id obtained from wechat public account", "")
  229. AssertEqual(t, r.Verifier[0], "231823091", "")
  230. AssertEqual(t, r.Verifier[1], "adkdaifaskfsafsa", "")
  231. AssertEqual(t, r.Verifier[2], "394kfdjafdsa", "")
  232. AssertEqual(t, r.Verifier[3], "39410498321041", "")
  233. AssertEqual(t, r.OpportunityAmountCurrency, "AUD", "")
  234. AssertEqual(t, r.OpportunityAmountConverted, 120, "")
  235. AssertEqual(t, r.CreatedByID, "1", "")
  236. AssertEqual(t, r.CreatedByName, "Admin", "")
  237. AssertEqual(t, r.ModifiedByID, "1", "")
  238. AssertEqual(t, r.ModifiedByName, "Admin", "")
  239. AssertEqual(t, r.AssignedUserID, "1", "")
  240. AssertEqual(t, r.AssignedUserName, "Admin", "")
  241. AssertEqual(t, r.CampaignID, "", "")
  242. AssertEqual(t, r.CreatedAccountID, "", "")
  243. AssertEqual(t, r.CreatedContactID, "", "")
  244. AssertEqual(t, r.CreatedOpportunityID, "", "")
  245. AssertEqual(t, r.EmailAddressData[0].EmailAddress, "test@gmail.com", "")
  246. AssertEqual(t, r.EmailAddressData[0].Lower, "test@gmail.com", "")
  247. AssertEqual(t, r.EmailAddressData[0].Primary, true, "")
  248. AssertEqual(t, r.EmailAddressData[0].OptOut, false, "")
  249. AssertEqual(t, r.EmailAddressData[0].Invalid, false, "")
  250. AssertEqual(t, r.EmailAddressData[1].EmailAddress, "abc@hotmail.com", "")
  251. AssertEqual(t, r.EmailAddressData[1].Lower, "abc@hotmail.com", "")
  252. AssertEqual(t, r.EmailAddressData[1].Primary, false, "")
  253. AssertEqual(t, r.EmailAddressData[1].OptOut, false, "")
  254. AssertEqual(t, r.EmailAddressData[1].Invalid, false, "")
  255. AssertEqual(t, r.EmailAddressData[2].EmailAddress, "def@jjx.com.au", "")
  256. AssertEqual(t, r.EmailAddressData[2].Lower, "def@jjx.com.au", "")
  257. AssertEqual(t, r.EmailAddressData[2].Primary, false, "")
  258. AssertEqual(t, r.EmailAddressData[2].OptOut, false, "")
  259. AssertEqual(t, r.EmailAddressData[2].Invalid, false, "")
  260. AssertEqual(t, r.PhoneNumberData[0].PhoneNumber, "456", "")
  261. AssertEqual(t, r.PhoneNumberData[0].Primary, true, "")
  262. AssertEqual(t, r.PhoneNumberData[0].Type, "Home", "")
  263. AssertEqual(t, r.PhoneNumberData[1].PhoneNumber, "123", "")
  264. AssertEqual(t, r.PhoneNumberData[1].Primary, false, "")
  265. AssertEqual(t, r.PhoneNumberData[1].Type, "Mobile", "")
  266. }
  267. func TestSearchResult(t *testing.T) {
  268. msg := `{
  269. "total": 2,
  270. "list": [
  271. {
  272. "id": "58f4aa0682ea74bb8",
  273. "name": "same email",
  274. "deleted": false,
  275. "salutationName": "",
  276. "firstName": "same",
  277. "lastName": "email",
  278. "title": "",
  279. "status": "New",
  280. "source": "",
  281. "industry": "",
  282. "opportunityAmount": 120,
  283. "website": "",
  284. "addressStreet": "",
  285. "addressCity": "",
  286. "addressState": "",
  287. "addressCountry": "",
  288. "addressPostalCode": "",
  289. "emailAddress": "test@gmail.com",
  290. "phoneNumber": "456",
  291. "doNotCall": true,
  292. "description": "",
  293. "createdAt": "2017-04-17 11:41:58",
  294. "modifiedAt": "2017-06-04 06:57:48",
  295. "accountName": "",
  296. "password": "abcdefg",
  297. "wechat_hitxy_id": "the user id obtained from wechat public account",
  298. "verifier": [
  299. "231823091",
  300. "adkdaifaskfsafsa",
  301. "394kfdjafdsa",
  302. "39410498321041"
  303. ],
  304. "opportunityAmountCurrency": "AUD",
  305. "opportunityAmountConverted": 120,
  306. "createdById": "1",
  307. "createdByName": "Admin",
  308. "modifiedById": "1",
  309. "modifiedByName": "Admin",
  310. "assignedUserId": "1",
  311. "assignedUserName": "Admin",
  312. "campaignId": null,
  313. "createdAccountId": null,
  314. "createdContactId": null,
  315. "createdOpportunityId": null
  316. },
  317. {
  318. "id": "58f4a849502da6f33",
  319. "name": "not searchable",
  320. "deleted": false,
  321. "salutationName": "Mr.",
  322. "firstName": "not",
  323. "lastName": "searchable",
  324. "title": "",
  325. "status": "New",
  326. "source": "",
  327. "industry": "",
  328. "opportunityAmount": null,
  329. "website": "",
  330. "addressStreet": "",
  331. "addressCity": "",
  332. "addressState": "",
  333. "addressCountry": "",
  334. "addressPostalCode": "",
  335. "emailAddress": null,
  336. "phoneNumber": null,
  337. "doNotCall": false,
  338. "description": "",
  339. "createdAt": "2017-04-17 11:34:33",
  340. "modifiedAt": "2017-04-18 05:09:36",
  341. "accountName": "",
  342. "password": null,
  343. "wechat_hitxy_id": "the user id obtained from wechat public account",
  344. "verifier": [],
  345. "opportunityAmountCurrency": null,
  346. "opportunityAmountConverted": null,
  347. "createdById": "1",
  348. "createdByName": "Admin",
  349. "modifiedById": "58ef420cac3cf6c95",
  350. "modifiedByName": "wechat robot",
  351. "assignedUserId": "1",
  352. "assignedUserName": "Admin",
  353. "campaignId": null,
  354. "createdAccountId": null,
  355. "createdContactId": null,
  356. "createdOpportunityId": null
  357. }
  358. ]
  359. }`
  360. r := crmdSearchLead{}
  361. err := json.Unmarshal([]byte(msg), &r)
  362. AssertEqual(t, err, nil, "")
  363. AssertEqual(t, r.Total, 2, "")
  364. AssertEqual(t, len(r.List), 2, "")
  365. AssertEqual(t, r.List[0].ID, "58f4aa0682ea74bb8", "")
  366. AssertEqual(t, r.List[1].ID, "58f4a849502da6f33", "")
  367. AssertEqual(t, r.List[1].AssignedUserName, "Admin", "")
  368. }
  369. func TestSearchResultZero(t *testing.T) {
  370. msg := `{"total":0,"list":[]}`
  371. r := crmdSearchLead{}
  372. err := json.Unmarshal([]byte(msg), &r)
  373. AssertEqual(t, err, nil, "")
  374. AssertEqual(t, r.Total, 0, "")
  375. AssertEqual(t, len(r.List), 0, "")
  376. }
  377. func TestFindOpenIDOnline(t *testing.T) {
  378. info, found, err := crmFindOpenID("weid1")
  379. log.Println(info)
  380. log.Println(found)
  381. log.Println(err)
  382. }
  383. func TestLeadJsonCompose(t *testing.T) {
  384. info := crmdLead{}
  385. info.FirstName = "中文First"
  386. }
  387. func TestGetLead(t *testing.T) {
  388. id := "595071f8450974b72"
  389. r, err := crmGetLead(id)
  390. AssertEqual(t, err, nil, "decode json should be nil")
  391. AssertEqual(t, r.ID, id, "Lead id should match")
  392. }