|
|
|
@@ -0,0 +1,381 @@ |
|
|
|
package main |
|
|
|
|
|
|
|
import ( |
|
|
|
"encoding/json" |
|
|
|
"log" |
|
|
|
"testing" |
|
|
|
) |
|
|
|
|
|
|
|
func TestDecodeLeadInfo(t *testing.T) { |
|
|
|
msg := `{ |
|
|
|
"id": "58f4aa0682ea74bb8", |
|
|
|
"name": "same email", |
|
|
|
"deleted": false, |
|
|
|
"salutationName": "Mr", |
|
|
|
"firstName": "same", |
|
|
|
"lastName": "email", |
|
|
|
"title": "title", |
|
|
|
"status": "New", |
|
|
|
"source": "", |
|
|
|
"industry": "", |
|
|
|
"opportunityAmount": null, |
|
|
|
"website": "", |
|
|
|
"addressStreet": "", |
|
|
|
"addressCity": "", |
|
|
|
"addressState": "", |
|
|
|
"addressCountry": "", |
|
|
|
"addressPostalCode": "", |
|
|
|
"emailAddress": "test@gmail.com", |
|
|
|
"phoneNumber": "456", |
|
|
|
"doNotCall": false, |
|
|
|
"description": "", |
|
|
|
"createdAt": "2017-04-17 11:41:58", |
|
|
|
"modifiedAt": "2017-04-18 04:41:06", |
|
|
|
"accountName": "", |
|
|
|
"password": "abcdefg", |
|
|
|
"wechat_hitxy_id": "the user id obtained from wechat public account", |
|
|
|
"verifier": [ |
|
|
|
"231823091", |
|
|
|
"adkdaifaskfsafsa", |
|
|
|
"394kfdjafdsa", |
|
|
|
"39410498321041" |
|
|
|
], |
|
|
|
"opportunityAmountCurrency": null, |
|
|
|
"opportunityAmountConverted": null, |
|
|
|
"createdById": "1", |
|
|
|
"createdByName": "Admin", |
|
|
|
"modifiedById": "58ef420cac3cf6c95", |
|
|
|
"modifiedByName": "wechat robot", |
|
|
|
"assignedUserId": "1", |
|
|
|
"assignedUserName": "Admin", |
|
|
|
"campaignId": null, |
|
|
|
"createdAccountId": null, |
|
|
|
"createdContactId": null, |
|
|
|
"createdOpportunityId": null |
|
|
|
}` |
|
|
|
|
|
|
|
r := crmLeadInfo{} |
|
|
|
err := json.Unmarshal([]byte(msg), &r) |
|
|
|
log.Println(r) |
|
|
|
AssertEqual(t, err, nil, "Decode CRM Lead Json shold be correct") |
|
|
|
|
|
|
|
AssertEqual(t, r.ID, "58f4aa0682ea74bb8", "ID mismatch ") |
|
|
|
AssertEqual(t, r.Name, "same email", "Name mismatch") |
|
|
|
AssertEqual(t, r.Deleted, false, "") |
|
|
|
AssertEqual(t, r.SalutationName, "Mr", "") |
|
|
|
AssertEqual(t, r.FirstName, "same", "") |
|
|
|
AssertEqual(t, r.LastName, "email", "") |
|
|
|
AssertEqual(t, r.Title, "title", "") |
|
|
|
AssertEqual(t, r.Status, "New", "") |
|
|
|
AssertEqual(t, r.Source, "", "") |
|
|
|
AssertEqual(t, r.Industry, "", "") |
|
|
|
AssertEqual(t, r.OpportunityAmount, 0, "") |
|
|
|
AssertEqual(t, r.Website, "", "") |
|
|
|
AssertEqual(t, r.AddressStreet, "", "") |
|
|
|
AssertEqual(t, r.AddressCity, "", "") |
|
|
|
AssertEqual(t, r.AddressState, "", "") |
|
|
|
AssertEqual(t, r.AddressCountry, "", "") |
|
|
|
AssertEqual(t, r.AddressPostalCode, "", "") |
|
|
|
AssertEqual(t, r.EmailAddress, "test@gmail.com", "") |
|
|
|
AssertEqual(t, r.PhoneNumber, "456", "") |
|
|
|
AssertEqual(t, r.DoNotCall, false, "") |
|
|
|
AssertEqual(t, r.Description, "", "") |
|
|
|
AssertEqual(t, r.CreatedAt, "2017-04-17 11:41:58", "") |
|
|
|
AssertEqual(t, r.ModifiedAt, "2017-04-18 04:41:06", "") |
|
|
|
AssertEqual(t, r.AccountName, "", "") |
|
|
|
AssertEqual(t, r.Password, "abcdefg", "") |
|
|
|
AssertEqual(t, r.WechatHitxyID, "the user id obtained from wechat public account", "") |
|
|
|
AssertEqual(t, r.Verifier[0], "231823091", "") |
|
|
|
AssertEqual(t, r.Verifier[1], "adkdaifaskfsafsa", "") |
|
|
|
AssertEqual(t, r.Verifier[2], "394kfdjafdsa", "") |
|
|
|
AssertEqual(t, r.Verifier[3], "39410498321041", "") |
|
|
|
AssertEqual(t, r.OpportunityAmountCurrency, "", "") |
|
|
|
AssertEqual(t, r.OpportunityAmountConverted, 0, "") |
|
|
|
AssertEqual(t, r.CreatedByID, "1", "") |
|
|
|
AssertEqual(t, r.CreatedByName, "Admin", "") |
|
|
|
AssertEqual(t, r.ModifiedByID, "58ef420cac3cf6c95", "") |
|
|
|
AssertEqual(t, r.ModifiedByName, "wechat robot", "") |
|
|
|
AssertEqual(t, r.AssignedUserID, "1", "") |
|
|
|
AssertEqual(t, r.AssignedUserName, "Admin", "") |
|
|
|
AssertEqual(t, r.CampaignID, "", "") |
|
|
|
AssertEqual(t, r.CreatedAccountID, "", "") |
|
|
|
AssertEqual(t, r.CreatedContactID, "", "") |
|
|
|
AssertEqual(t, r.CreatedOpportunityID, "", "") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
func TestCrmLeadInfoByCompleteInfo(t *testing.T) { |
|
|
|
msg := `{ |
|
|
|
"id": "58f4aa0682ea74bb8", |
|
|
|
"name": "same email", |
|
|
|
"deleted": false, |
|
|
|
"salutationName": "", |
|
|
|
"firstName": "same", |
|
|
|
"lastName": "email", |
|
|
|
"title": "", |
|
|
|
"status": "New", |
|
|
|
"source": "", |
|
|
|
"industry": "", |
|
|
|
"opportunityAmount": 120, |
|
|
|
"website": "", |
|
|
|
"addressStreet": "", |
|
|
|
"addressCity": "", |
|
|
|
"addressState": "", |
|
|
|
"addressCountry": "", |
|
|
|
"addressPostalCode": "", |
|
|
|
"emailAddress": "test@gmail.com", |
|
|
|
"phoneNumber": "456", |
|
|
|
"doNotCall": false, |
|
|
|
"description": "", |
|
|
|
"createdAt": "2017-04-17 11:41:58", |
|
|
|
"modifiedAt": "2017-06-04 04:08:16", |
|
|
|
"accountName": "", |
|
|
|
"password": "abcdefg", |
|
|
|
"wechat_hitxy_id": "the user id obtained from wechat public account", |
|
|
|
"verifier": [ |
|
|
|
"231823091", |
|
|
|
"adkdaifaskfsafsa", |
|
|
|
"394kfdjafdsa", |
|
|
|
"39410498321041" |
|
|
|
], |
|
|
|
"opportunityAmountCurrency": "AUD", |
|
|
|
"opportunityAmountConverted": 120, |
|
|
|
"emailAddressData": [ |
|
|
|
{ |
|
|
|
"emailAddress": "test@gmail.com", |
|
|
|
"lower": "test@gmail.com", |
|
|
|
"primary": true, |
|
|
|
"optOut": false, |
|
|
|
"invalid": false |
|
|
|
}, |
|
|
|
{ |
|
|
|
"emailAddress": "abc@hotmail.com", |
|
|
|
"lower": "abc@hotmail.com", |
|
|
|
"primary": false, |
|
|
|
"optOut": false, |
|
|
|
"invalid": false |
|
|
|
}, |
|
|
|
{ |
|
|
|
"emailAddress": "def@jjx.com.au", |
|
|
|
"lower": "def@jjx.com.au", |
|
|
|
"primary": false, |
|
|
|
"optOut": false, |
|
|
|
"invalid": false |
|
|
|
} |
|
|
|
], |
|
|
|
"phoneNumberData": [ |
|
|
|
{ |
|
|
|
"phoneNumber": "456", |
|
|
|
"primary": true, |
|
|
|
"type": "Home" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"phoneNumber": "123", |
|
|
|
"primary": false, |
|
|
|
"type": "Mobile" |
|
|
|
} |
|
|
|
], |
|
|
|
"createdById": "1", |
|
|
|
"createdByName": "Admin", |
|
|
|
"modifiedById": "1", |
|
|
|
"modifiedByName": "Admin", |
|
|
|
"assignedUserId": "1", |
|
|
|
"assignedUserName": "Admin", |
|
|
|
"teamsIds": [], |
|
|
|
"teamsNames": {}, |
|
|
|
"campaignId": null, |
|
|
|
"campaignName": null, |
|
|
|
"createdAccountId": null, |
|
|
|
"createdAccountName": null, |
|
|
|
"createdContactId": null, |
|
|
|
"createdContactName": null, |
|
|
|
"createdOpportunityId": null, |
|
|
|
"createdOpportunityName": null, |
|
|
|
"imagesIds": [], |
|
|
|
"imagesNames": {}, |
|
|
|
"isFollowed": true, |
|
|
|
"followersIds": [ |
|
|
|
"1" |
|
|
|
], |
|
|
|
"followersNames": { |
|
|
|
"1": "Admin" |
|
|
|
}, |
|
|
|
"imagesTypes": {} |
|
|
|
}` |
|
|
|
r := crmLeadInfo{} |
|
|
|
err := json.Unmarshal([]byte(msg), &r) |
|
|
|
log.Println(r) |
|
|
|
AssertEqual(t, err, nil, "") |
|
|
|
|
|
|
|
AssertEqual(t, r.ID, "58f4aa0682ea74bb8", "ID mismatch ") |
|
|
|
AssertEqual(t, r.Name, "same email", "Name mismatch") |
|
|
|
AssertEqual(t, r.Deleted, false, "") |
|
|
|
AssertEqual(t, r.SalutationName, "", "") |
|
|
|
AssertEqual(t, r.FirstName, "same", "") |
|
|
|
AssertEqual(t, r.LastName, "email", "") |
|
|
|
AssertEqual(t, r.Title, "", "") |
|
|
|
AssertEqual(t, r.Status, "New", "") |
|
|
|
AssertEqual(t, r.Source, "", "") |
|
|
|
AssertEqual(t, r.Industry, "", "") |
|
|
|
AssertEqual(t, r.OpportunityAmount, 120, "") |
|
|
|
AssertEqual(t, r.Website, "", "") |
|
|
|
AssertEqual(t, r.AddressStreet, "", "") |
|
|
|
AssertEqual(t, r.AddressCity, "", "") |
|
|
|
AssertEqual(t, r.AddressState, "", "") |
|
|
|
AssertEqual(t, r.AddressCountry, "", "") |
|
|
|
AssertEqual(t, r.AddressPostalCode, "", "") |
|
|
|
AssertEqual(t, r.EmailAddress, "test@gmail.com", "") |
|
|
|
AssertEqual(t, r.PhoneNumber, "456", "") |
|
|
|
AssertEqual(t, r.DoNotCall, false, "") |
|
|
|
AssertEqual(t, r.Description, "", "") |
|
|
|
AssertEqual(t, r.CreatedAt, "2017-04-17 11:41:58", "") |
|
|
|
AssertEqual(t, r.ModifiedAt, "2017-06-04 04:08:16", "") |
|
|
|
AssertEqual(t, r.AccountName, "", "") |
|
|
|
AssertEqual(t, r.Password, "abcdefg", "") |
|
|
|
AssertEqual(t, r.WechatHitxyID, "the user id obtained from wechat public account", "") |
|
|
|
AssertEqual(t, r.Verifier[0], "231823091", "") |
|
|
|
AssertEqual(t, r.Verifier[1], "adkdaifaskfsafsa", "") |
|
|
|
AssertEqual(t, r.Verifier[2], "394kfdjafdsa", "") |
|
|
|
AssertEqual(t, r.Verifier[3], "39410498321041", "") |
|
|
|
AssertEqual(t, r.OpportunityAmountCurrency, "AUD", "") |
|
|
|
AssertEqual(t, r.OpportunityAmountConverted, 120, "") |
|
|
|
AssertEqual(t, r.CreatedByID, "1", "") |
|
|
|
AssertEqual(t, r.CreatedByName, "Admin", "") |
|
|
|
AssertEqual(t, r.ModifiedByID, "1", "") |
|
|
|
AssertEqual(t, r.ModifiedByName, "Admin", "") |
|
|
|
AssertEqual(t, r.AssignedUserID, "1", "") |
|
|
|
AssertEqual(t, r.AssignedUserName, "Admin", "") |
|
|
|
AssertEqual(t, r.CampaignID, "", "") |
|
|
|
AssertEqual(t, r.CreatedAccountID, "", "") |
|
|
|
AssertEqual(t, r.CreatedContactID, "", "") |
|
|
|
AssertEqual(t, r.CreatedOpportunityID, "", "") |
|
|
|
|
|
|
|
AssertEqual(t, r.EmailAddressData[0].EmailAddress, "test@gmail.com", "") |
|
|
|
AssertEqual(t, r.EmailAddressData[0].Lower, "test@gmail.com", "") |
|
|
|
AssertEqual(t, r.EmailAddressData[0].Primary, true, "") |
|
|
|
AssertEqual(t, r.EmailAddressData[0].OptOut, false, "") |
|
|
|
AssertEqual(t, r.EmailAddressData[0].Invalid, false, "") |
|
|
|
|
|
|
|
AssertEqual(t, r.EmailAddressData[1].EmailAddress, "abc@hotmail.com", "") |
|
|
|
AssertEqual(t, r.EmailAddressData[1].Lower, "abc@hotmail.com", "") |
|
|
|
AssertEqual(t, r.EmailAddressData[1].Primary, false, "") |
|
|
|
AssertEqual(t, r.EmailAddressData[1].OptOut, false, "") |
|
|
|
AssertEqual(t, r.EmailAddressData[1].Invalid, false, "") |
|
|
|
|
|
|
|
AssertEqual(t, r.EmailAddressData[2].EmailAddress, "def@jjx.com.au", "") |
|
|
|
AssertEqual(t, r.EmailAddressData[2].Lower, "def@jjx.com.au", "") |
|
|
|
AssertEqual(t, r.EmailAddressData[2].Primary, false, "") |
|
|
|
AssertEqual(t, r.EmailAddressData[2].OptOut, false, "") |
|
|
|
AssertEqual(t, r.EmailAddressData[2].Invalid, false, "") |
|
|
|
|
|
|
|
AssertEqual(t, r.PhoneNumberData[0].PhoneNumber, "456", "") |
|
|
|
AssertEqual(t, r.PhoneNumberData[0].Primary, true, "") |
|
|
|
AssertEqual(t, r.PhoneNumberData[0].Type, "Home", "") |
|
|
|
|
|
|
|
AssertEqual(t, r.PhoneNumberData[1].PhoneNumber, "123", "") |
|
|
|
AssertEqual(t, r.PhoneNumberData[1].Primary, false, "") |
|
|
|
AssertEqual(t, r.PhoneNumberData[1].Type, "Mobile", "") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
func TestSearchResult(t *testing.T) { |
|
|
|
msg := `{ |
|
|
|
"total": 2, |
|
|
|
"list": [ |
|
|
|
{ |
|
|
|
"id": "58f4aa0682ea74bb8", |
|
|
|
"name": "same email", |
|
|
|
"deleted": false, |
|
|
|
"salutationName": "", |
|
|
|
"firstName": "same", |
|
|
|
"lastName": "email", |
|
|
|
"title": "", |
|
|
|
"status": "New", |
|
|
|
"source": "", |
|
|
|
"industry": "", |
|
|
|
"opportunityAmount": 120, |
|
|
|
"website": "", |
|
|
|
"addressStreet": "", |
|
|
|
"addressCity": "", |
|
|
|
"addressState": "", |
|
|
|
"addressCountry": "", |
|
|
|
"addressPostalCode": "", |
|
|
|
"emailAddress": "test@gmail.com", |
|
|
|
"phoneNumber": "456", |
|
|
|
"doNotCall": true, |
|
|
|
"description": "", |
|
|
|
"createdAt": "2017-04-17 11:41:58", |
|
|
|
"modifiedAt": "2017-06-04 06:57:48", |
|
|
|
"accountName": "", |
|
|
|
"password": "abcdefg", |
|
|
|
"wechat_hitxy_id": "the user id obtained from wechat public account", |
|
|
|
"verifier": [ |
|
|
|
"231823091", |
|
|
|
"adkdaifaskfsafsa", |
|
|
|
"394kfdjafdsa", |
|
|
|
"39410498321041" |
|
|
|
], |
|
|
|
"opportunityAmountCurrency": "AUD", |
|
|
|
"opportunityAmountConverted": 120, |
|
|
|
"createdById": "1", |
|
|
|
"createdByName": "Admin", |
|
|
|
"modifiedById": "1", |
|
|
|
"modifiedByName": "Admin", |
|
|
|
"assignedUserId": "1", |
|
|
|
"assignedUserName": "Admin", |
|
|
|
"campaignId": null, |
|
|
|
"createdAccountId": null, |
|
|
|
"createdContactId": null, |
|
|
|
"createdOpportunityId": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "58f4a849502da6f33", |
|
|
|
"name": "not searchable", |
|
|
|
"deleted": false, |
|
|
|
"salutationName": "Mr.", |
|
|
|
"firstName": "not", |
|
|
|
"lastName": "searchable", |
|
|
|
"title": "", |
|
|
|
"status": "New", |
|
|
|
"source": "", |
|
|
|
"industry": "", |
|
|
|
"opportunityAmount": null, |
|
|
|
"website": "", |
|
|
|
"addressStreet": "", |
|
|
|
"addressCity": "", |
|
|
|
"addressState": "", |
|
|
|
"addressCountry": "", |
|
|
|
"addressPostalCode": "", |
|
|
|
"emailAddress": null, |
|
|
|
"phoneNumber": null, |
|
|
|
"doNotCall": false, |
|
|
|
"description": "", |
|
|
|
"createdAt": "2017-04-17 11:34:33", |
|
|
|
"modifiedAt": "2017-04-18 05:09:36", |
|
|
|
"accountName": "", |
|
|
|
"password": null, |
|
|
|
"wechat_hitxy_id": "the user id obtained from wechat public account", |
|
|
|
"verifier": [], |
|
|
|
"opportunityAmountCurrency": null, |
|
|
|
"opportunityAmountConverted": null, |
|
|
|
"createdById": "1", |
|
|
|
"createdByName": "Admin", |
|
|
|
"modifiedById": "58ef420cac3cf6c95", |
|
|
|
"modifiedByName": "wechat robot", |
|
|
|
"assignedUserId": "1", |
|
|
|
"assignedUserName": "Admin", |
|
|
|
"campaignId": null, |
|
|
|
"createdAccountId": null, |
|
|
|
"createdContactId": null, |
|
|
|
"createdOpportunityId": null |
|
|
|
} |
|
|
|
] |
|
|
|
}` |
|
|
|
r := crmSearchLead{} |
|
|
|
err := json.Unmarshal([]byte(msg), &r) |
|
|
|
AssertEqual(t, err, nil, "") |
|
|
|
AssertEqual(t, r.Total, 2, "") |
|
|
|
AssertEqual(t, len(r.List), 2, "") |
|
|
|
AssertEqual(t, r.List[0].ID, "58f4aa0682ea74bb8", "") |
|
|
|
AssertEqual(t, r.List[1].ID, "58f4a849502da6f33", "") |
|
|
|
} |