Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.80 KB | None | 0 0
  1. @isTest
  2. private class TEST_PmtCompletedCreateOppty {
  3. static testMethod void doTest() {
  4.  
  5. test.startTest();
  6.  
  7. //create test objects
  8. Campaign cm1 = new Campaign();
  9. cm1.name='Not Sorted';
  10. cm1.IsActive=true;
  11. Campaign cm2 = new Campaign();
  12. cm2.name='Wednesday WIN';
  13. cm2.IsActive=true;
  14. Campaign cm3 = new Campaign();
  15. cm3.name='Made With Pencils Campaign';
  16. cm3.IsActive=true;
  17. Campaign camp = new Campaign();
  18. camp.Name = 'Holiday Welcome';
  19. insert camp;
  20.  
  21. Fundraiser__c f1 = new Fundraiser__c();
  22. f1.name='My Fundraiser';
  23. f1.Marketing_Campaign__c='';
  24. f1.Campaign__c = camp.Id;
  25. insert f1;
  26.  
  27. Contact c1 = new Contact();
  28. Contact c2 = new Contact();
  29. c1.FirstName = 'Bill';
  30. c1.LastName = 'Smith';
  31. c2.FirstName = 'Jill';
  32. c2.LastName = 'Smith';
  33. insert c1;
  34. insert c2;
  35.  
  36. pymt__Payment_Profile__c r1 = new pymt__Payment_Profile__c();
  37. r1.name='Foo';
  38. r1.pymt__Amount__c=19.69;
  39. r1.pymt__Contact__c=c1.Id;
  40. r1.pymt__Frequency__c=1;
  41. r1.pymt__Subscription_Start_Date__c=System.Today();
  42. r1.pymt__Period__c='Month';
  43. r1.pymt__Currency_ISO_Code__c='USD';
  44. r1.pymt__Invoice_Number__c=f1.Id + '|1';
  45. insert r1;
  46.  
  47. pymt__PaymentX__c p1 = new pymt__PaymentX__c();
  48. pymt__PaymentX__c p2 = new pymt__PaymentX__c();
  49. pymt__PaymentX__c p3 = new pymt__PaymentX__c();
  50. p1.pymt__Amount__c=12.56;
  51. p2.pymt__Amount__c=10.23;
  52. p3.pymt__Amount__c=19.69;
  53. p1.pymt__Contact__c=c1.Id;
  54. p2.pymt__Contact__c=c2.Id;
  55. p3.pymt__Contact__c=c1.Id;
  56. p3.pymt__Payment_Processor__c='Paypal';
  57. p1.pymt__Status__c='Completed';
  58. p2.pymt__Status__c='Completed';
  59. p3.pymt__Status__c='Completed';
  60. p1.pymt__Transaction_Type__c='Payment';
  61. p2.pymt__Transaction_Type__c='Payment';
  62. p3.pymt__Transaction_Type__c='Payment';
  63. p1.pymt__Date__c=System.Today();
  64. p2.pymt__Date__c=System.Today();
  65. p3.pymt__Date__c=System.Today();
  66. p1.pymt__Merchant_Custom_Data__c=f1.Id + '|1';
  67. p2.pymt__Merchant_Custom_Data__c=f1.Id + '|0';
  68. p3.pymt__Payment_Profile__c=r1.Id;
  69. insert p1;
  70. insert p2;
  71. insert p3;
  72.  
  73. update p1;
  74. update p2;
  75. update p3;
  76.  
  77. // Query the database for the newly inserted records.
  78. Opportunity o1 = [SELECT id,name,amount,campaignId FROM Opportunity WHERE amount = :12.56 LIMIT 1];
  79. Opportunity o2 = [SELECT id,name,amount,campaignId FROM Opportunity WHERE amount = :10.23 LIMIT 1];
  80. Opportunity o3 = [SELECT id,name,amount,campaignId FROM Opportunity WHERE amount = :19.69 LIMIT 1];
  81.  
  82. //is it kosher?
  83. //System.assertEquals(c1.FirstName + ' ' + c1.LastName + ' Donation',o1.name);
  84. //System.assertEquals(c2.FirstName + ' ' + c2.LastName + ' Donation',o2.name);
  85. System.assertEquals(12.56,o1.amount);
  86. System.assertEquals(10.23,o2.amount);
  87. System.assertEquals(19.69,o3.amount);
  88. System.assertEquals(cm1.Id,o1.campaignId);
  89. System.assertEquals(cm1.Id,o2.campaignId);
  90.  
  91. test.stopTest();
  92.  
  93. }
  94. }
  95.  
  96. trigger OnPmtCompletedCreateOppty on pymt__PaymentX__c (before insert, before update, after update) {
  97. for (pymt__PaymentX__c p : Trigger.new) {
  98. if ((p.pymt__Status__c == 'Completed' || p.pymt__Status__c == 'Charged') && p.pymt__Opportunity__c==null) {
  99. String contactId = p.pymt__Contact__c;
  100. List<Contact> contacts = [select id, name, account.id, account.name from Contact where id =:contactId];
  101. if (contacts.size()==0) { return; }
  102. Contact c = contacts[0];
  103. List<Account> accounts= [select id, name from Account where id =:c.account.id];
  104. if (accounts.size()==0) { return; }
  105. Account a = accounts[0];
  106. if (p.pymt__Transaction_Type__c == 'Payment') {
  107. // Set up opportunity
  108. Opportunity o = new Opportunity();
  109. o.AccountId= a.id;
  110. //o.npe01__Contact_Id_for_Role__c = contactId;
  111. o.Name = c.name + ' Donation';
  112. o.Probability = 100;åç
  113. o.StageName = 'Posted';
  114. o.CloseDate = p.pymt__Date__c;
  115. o.Amount= p.pymt__Amount__c;
  116. List<Campaign> campaigns = [select id from Campaign where name =:'Not Sorted' LIMIT 1];
  117. if (campaigns.size()>0) {
  118. o.CampaignId = campaigns[0].id;
  119. }
  120. insert o;
  121. p.pymt__Opportunity__c=o.id;
  122. Boolean hasOcr = false;
  123. List<OpportunityContactRole> ocrs= [select id from OpportunityContactRole where OpportunityId=:'o.id' AND ContactId=:'o.id' LIMIT 2];
  124. if (ocrs.size()>0) {
  125. hasOcr = true;
  126. }
  127. if (!hasOcr) {
  128. OpportunityContactRole ocr = new OpportunityContactRole();
  129. ocr.isPrimary=true;
  130. ocr.OpportunityId = o.id;
  131. ocr.ContactId = c.id;
  132. ocr.Role = 'Donor';
  133. insert ocr;
  134. }
  135. }
  136. //else if (p.pymt__Transaction_Type__c == 'Refund') {
  137. //delete one existing opportunity that matches
  138. //}
  139. }
  140. }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement