Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Assignment 5

Create a trigger to send Survey Email to closed case. Email should be sent to Contact Email address related to Case or Supplied
Email address on Case.

Criteria for sending email -


Case Status - Closed
Case Type Not Equals Transfer / Spam

/*
* @Name : Assignment5_Trigger.apxc
* @Purpose : Apex Assignment 5.
* @Description : Trigger to create new Opportunity record when Application__c status is submitted
* @Since : 13 09 2022
* @date : 13 09 2022
* @Pre-Work : Created one object: 'Application__c' ;
* Three Custom Fileds : 'AIMS_Cycle__c', 'AIMS_Prime__c', 'Assay_Comments_or_Guidance__c'
*
* @OtherRelateFiles : Assignment5_Handler.apxc, Assignment5_Trigger.apxc, Assignment5_Test.apxc
*/

trigger Assignment5_Trigger on Application__c (after insert, after update) {


if((trigger.isafter && trigger.isinsert) || (trigger.isafter && trigger.isupdate)){
Assignment5_Handler.Method5(trigger.new);
}
}

/*
* @Name : Assignment5_Handler.apxc
* @Purpose : Apex Assignment 5.
* @Description : Trigger to create new Opportunity record when Application__c status is submitted
* @Since : 13 09 2022
* @date : 13 09 2022
* @Pre-Work : Created one object: 'Application__c' ;
* Three Custom Fileds : 'AIMS_Cycle__c', 'AIMS_Prime__c', 'Assay_Comments_or_Guidance__c'
*
* @OtherRelateFiles : Assignment5_Handler.apxc, Assignment5_Trigger.apxc, Assignment5_Test.apxc
*/

public class Assignment5_Handler {


public static void Method5(List<Application__c> applicationList){
list<opportunity> oportunityList=new list<opportunity>();

for(Application__c applicationRecord:applicationList){
if(applicationRecord.Status__c == 'Submitted'){
//Checking Condition if Status of Application is Submitted, the create new Opportunity
Opportunity opportunityRecord = new opportunity();

//Initialising All Application Fields values to New Opportunity


opportunityRecord.Name = applicationRecord.Name;
opportunityRecord.AIMS_Cycle__c = applicationRecord.AIMS_Cycle__c;
opportunityRecord.AIMS_Prime__c = applicationRecord.AIMS_Prime__c;
opportunityRecord.Assay_Comments_or_Guidance__c = applicationRecord.Assay_Comments_or_Guidance__c;
opportunityRecord.StageName = 'Closed Won';
opportunityRecord.CloseDate= System.today();
oportunityList.add(opportunityRecord);
}
}
insert oportunityList; //Inserted Opportunity
System.debug(oportunityList);
}
}

/*
* @Name : Assignment5_Test.apxc
* @Purpose : Apex Assignment 5.
* @Description : Trigger to create new Opportunity record when Application__c status is submitted
* @Since : 13 09 2022
* @date : 13 09 2022

Assignment 5 1
* @Pre-Work : Created one object: 'Application__c' ;
* Three Custom Fileds : 'AIMS_Cycle__c', 'AIMS_Prime__c', 'Assay_Comments_or_Guidance__c'
*
* @OtherRelateFiles : Assignment5_Handler.apxc, Assignment5_Trigger.apxc, Assignment5_Test.apxc
*/

@isTest
public class Assignment5_Test {
@testSetup static void setup() {
// Create common test Applications
List<Application__c> NewApplication = new List<Application__c>();
for(Integer i=0;i<5;i++) {
NewApplication.add(new Application__c(Name = 'NewTest Account'+i));
}
insert NewApplication;
}

@isTest
public static void MyTestMethod_Negative(){
Application__c newApplicationList1 = [select id,Name,AIMS_Cycle__c,AIMS_Prime__c,Status__c,Assay_Comments_or_Guidance__c from Applic
//Fetching Application List and Initialising Record
newApplicationList1.Name='Rock';
newApplicationList1.Status__c='Prospecting';
list<opportunity> opportunityList = [select id,Name,CloseDate,StageName from opportunity];
system.assertEquals(0, opportunityList.size()); //Verify: Opportunity is Created or Not
}

@isTest
public static void MyTestMethod_Positive(){
Application__c newApplicationList = [select id,Name,AIMS_Cycle__c,AIMS_Prime__c,Status__c,Assay_Comments_or_Guidance__c from Applica
//Fetching Application List and Initialising Record
newApplicationList.Name='amit';
newApplicationList.Status__c='Submitted';

test.startTest(); //Start Test


database.upsert(newApplicationList,false);
list<opportunity> opportunityList = [select id,Name,CloseDate,StageName from opportunity];
//Fetching Opportunity,Which was Automatically Created after Application Record status set to Submitted
test.stopTest(); //Stop Test

system.assertEquals(1, opportunityList.size()); //Verify: Opportunity is Created or Not


}
}

Code Coverage 100%

Created New Application as Test Application with status as Submitted

Assignment 5 2
New Opportunity Automatically Created with same details and Stage Closed Won

Assignment 5 3

You might also like