No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

436 líneas
14KB

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