Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @isTest
- private class TEST_PmtCompletedCreateOppty {
- static testMethod void doTest() {
- test.startTest();
- //create test objects
- Campaign cm1 = new Campaign();
- cm1.name='Not Sorted';
- cm1.IsActive=true;
- Campaign cm2 = new Campaign();
- cm2.name='Wednesday WIN';
- cm2.IsActive=true;
- Campaign cm3 = new Campaign();
- cm3.name='Made With Pencils Campaign';
- cm3.IsActive=true;
- Campaign camp = new Campaign();
- camp.Name = 'Holiday Welcome';
- insert camp;
- Fundraiser__c f1 = new Fundraiser__c();
- f1.name='My Fundraiser';
- f1.Marketing_Campaign__c='';
- f1.Campaign__c = camp.Id;
- insert f1;
- Contact c1 = new Contact();
- Contact c2 = new Contact();
- c1.FirstName = 'Bill';
- c1.LastName = 'Smith';
- c2.FirstName = 'Jill';
- c2.LastName = 'Smith';
- insert c1;
- insert c2;
- pymt__Payment_Profile__c r1 = new pymt__Payment_Profile__c();
- r1.name='Foo';
- r1.pymt__Amount__c=19.69;
- r1.pymt__Contact__c=c1.Id;
- r1.pymt__Frequency__c=1;
- r1.pymt__Subscription_Start_Date__c=System.Today();
- r1.pymt__Period__c='Month';
- r1.pymt__Currency_ISO_Code__c='USD';
- r1.pymt__Invoice_Number__c=f1.Id + '|1';
- insert r1;
- pymt__PaymentX__c p1 = new pymt__PaymentX__c();
- pymt__PaymentX__c p2 = new pymt__PaymentX__c();
- pymt__PaymentX__c p3 = new pymt__PaymentX__c();
- p1.pymt__Amount__c=12.56;
- p2.pymt__Amount__c=10.23;
- p3.pymt__Amount__c=19.69;
- p1.pymt__Contact__c=c1.Id;
- p2.pymt__Contact__c=c2.Id;
- p3.pymt__Contact__c=c1.Id;
- p3.pymt__Payment_Processor__c='Paypal';
- p1.pymt__Status__c='Completed';
- p2.pymt__Status__c='Completed';
- p3.pymt__Status__c='Completed';
- p1.pymt__Transaction_Type__c='Payment';
- p2.pymt__Transaction_Type__c='Payment';
- p3.pymt__Transaction_Type__c='Payment';
- p1.pymt__Date__c=System.Today();
- p2.pymt__Date__c=System.Today();
- p3.pymt__Date__c=System.Today();
- p1.pymt__Merchant_Custom_Data__c=f1.Id + '|1';
- p2.pymt__Merchant_Custom_Data__c=f1.Id + '|0';
- p3.pymt__Payment_Profile__c=r1.Id;
- insert p1;
- insert p2;
- insert p3;
- update p1;
- update p2;
- update p3;
- // Query the database for the newly inserted records.
- Opportunity o1 = [SELECT id,name,amount,campaignId FROM Opportunity WHERE amount = :12.56 LIMIT 1];
- Opportunity o2 = [SELECT id,name,amount,campaignId FROM Opportunity WHERE amount = :10.23 LIMIT 1];
- Opportunity o3 = [SELECT id,name,amount,campaignId FROM Opportunity WHERE amount = :19.69 LIMIT 1];
- //is it kosher?
- //System.assertEquals(c1.FirstName + ' ' + c1.LastName + ' Donation',o1.name);
- //System.assertEquals(c2.FirstName + ' ' + c2.LastName + ' Donation',o2.name);
- System.assertEquals(12.56,o1.amount);
- System.assertEquals(10.23,o2.amount);
- System.assertEquals(19.69,o3.amount);
- System.assertEquals(cm1.Id,o1.campaignId);
- System.assertEquals(cm1.Id,o2.campaignId);
- test.stopTest();
- }
- }
- trigger OnPmtCompletedCreateOppty on pymt__PaymentX__c (before insert, before update, after update) {
- for (pymt__PaymentX__c p : Trigger.new) {
- if ((p.pymt__Status__c == 'Completed' || p.pymt__Status__c == 'Charged') && p.pymt__Opportunity__c==null) {
- String contactId = p.pymt__Contact__c;
- List<Contact> contacts = [select id, name, account.id, account.name from Contact where id =:contactId];
- if (contacts.size()==0) { return; }
- Contact c = contacts[0];
- List<Account> accounts= [select id, name from Account where id =:c.account.id];
- if (accounts.size()==0) { return; }
- Account a = accounts[0];
- if (p.pymt__Transaction_Type__c == 'Payment') {
- // Set up opportunity
- Opportunity o = new Opportunity();
- o.AccountId= a.id;
- //o.npe01__Contact_Id_for_Role__c = contactId;
- o.Name = c.name + ' Donation';
- o.Probability = 100;åç
- o.StageName = 'Posted';
- o.CloseDate = p.pymt__Date__c;
- o.Amount= p.pymt__Amount__c;
- List<Campaign> campaigns = [select id from Campaign where name =:'Not Sorted' LIMIT 1];
- if (campaigns.size()>0) {
- o.CampaignId = campaigns[0].id;
- }
- insert o;
- p.pymt__Opportunity__c=o.id;
- Boolean hasOcr = false;
- List<OpportunityContactRole> ocrs= [select id from OpportunityContactRole where OpportunityId=:'o.id' AND ContactId=:'o.id' LIMIT 2];
- if (ocrs.size()>0) {
- hasOcr = true;
- }
- if (!hasOcr) {
- OpportunityContactRole ocr = new OpportunityContactRole();
- ocr.isPrimary=true;
- ocr.OpportunityId = o.id;
- ocr.ContactId = c.id;
- ocr.Role = 'Donor';
- insert ocr;
- }
- }
- //else if (p.pymt__Transaction_Type__c == 'Refund') {
- //delete one existing opportunity that matches
- //}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement