You need to sign in to do that
Don't have an account?
DIVAKAR BABU 15
i need test class for this trigger
trigger Sumoftotalamount on Opportunity (after insert,after update) {
set<id>accid = new set<id>();
List<opportunity> oppList = new List<opportunity>();
for(Opportunity op:Trigger.new){
accid.add(op.Accountid);
}
list<Account> acc =[select Id,name,Rollup_Amount_Y__c,Rollup_Amount_X__c,Rollup_Amount__c from Account where Id=:accid];
Map<id,Account> accmap = new Map<id,Account>();
for(Account ac: acc){
accmap.put(ac.Id,ac);
}
if(trigger.isinsert){
for(Opportunity op :Trigger.new){
if(accmap.containskey(op.Accountid)){
Decimal sum=0;
Account a = accmap.get(op.Accountid);
if(op.type__c== 'positive'){
if(op.Amount_X__c!=null){
If(a.Rollup_Amount_X__c==null){
a.Rollup_Amount_X__c=op.Amount_X__c;
accmap.put(op.Accountid,a );
}
else {
a.Rollup_Amount_X__c=a.Rollup_Amount_X__c + op.Amount_X__c;
accmap.put(op.Accountid,a );
}
}
}
if(op.type__c== 'negative'){
if(op.Amount_Y__c!=null){
If(a.Rollup_Amount_Y__c==null){
a.Rollup_Amount_Y__c=op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
else {
a.Rollup_Amount_Y__c=a.Rollup_Amount_Y__c + op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
}
}
if(a.Rollup_Amount__c==null) {
a.Rollup_Amount__c=a.Rollup_Amount_Y__c+a.Rollup_Amount_X__c;
accmap.put(op.Accountid,a );
}
else{
a.Rollup_Amount__c=a.Rollup_Amount__c+(a.Rollup_Amount_X__c+a.Rollup_Amount_Y__c);
accmap.put(op.Accountid,a );
}
}
}
update accmap.values();
}
if(trigger.isupdate){
for(Opportunity op:Trigger.new){
if(op.AccountId!=trigger.oldmap.get(op.Id).Accountid){
if(op.type__c==trigger.oldmap.get(op.Id).type__c && op.type__c== 'positive'){
//new opportunity 'account id' is not equal to old oppertunity Account id {change Account id}//
if(accmap.containskey(op.Accountid)){
Account a = accmap.get(op.Accountid);
if(a.Rollup_Amount_X__c==null){
a.Rollup_Amount_X__c=op.Amount_X__c;
}
else{
a.Rollup_Amount_X__c = a.Rollup_Amount_X__c+op.Amount_X__c;
accmap.put(op.Accountid,a );
}
if(accmap.containskey(trigger.oldmap.get(op.Id).Accountid)){
Account a1 = accmap.get(trigger.oldmap.get(op.Id).Accountid);
a1.Rollup_Amount_X__c = a1.Rollup_Amount_X__c - op.Amount_X__c;
accmap.put(trigger.oldmap.get(op.Id).Accountid,a1 );
}
}
}
else if(op.type__c!=trigger.oldmap.get(op.Id).type__c && op.type__c== 'positive'){//it changed from negative to positive & account is also changed
if(accmap.containskey(op.Accountid)){
Account a = accmap.get(op.Accountid);
if(a.Rollup_Amount_X__c==null){
a.Rollup_Amount_X__c=op.Amount_X__c;
accmap.put(op.Accountid,a );
}
else
{
a.Rollup_Amount_X__c= a.Rollup_Amount_X__c + op.Amount_X__c;
accmap.put(op.Accountid,a );
}
if(a.Rollup_Amount__c!=null||op.Amount_Y__c==null||op.Amount_X__c==null){
a.Rollup_Amount__c=a.Rollup_Amount__c+(op.Amount_X__c+op.Amount_Y__c);
accmap.put(op.Accountid,a );
}
else{
a.Rollup_Amount__c= (a.Rollup_Amount_X__c+a.Rollup_Amount_Y__c);
accmap.put(op.Accountid,a );
}
if(accmap.containskey(trigger.oldmap.get(op.Id).Accountid)){
Account a1 = accmap.get(trigger.oldmap.get(op.Id).Accountid);
If(a1.Rollup_Amount_Y__c!=null){
a1.Rollup_Amount_Y__c=a1.Rollup_Amount_Y__c-op.Amount_Y__c;
accmap.put(op.Accountid,a1 );
}
a1.Rollup_Amount__c = a1.Rollup_Amount__c - (trigger.oldmap.get(op.Id).Amount_Y__c+trigger.oldmap.get(op.Id).Amount_X__c);
accmap.put(op.Accountid,a1 );
}
}
}
if(op.type__c==trigger.oldmap.get(op.Id).type__c && op.type__c== 'negative'){
if(accmap.containskey(op.Accountid)){
Account a = accmap.get(op.Accountid);
if(a.Rollup_Amount_Y__c==null){
a.Rollup_Amount_Y__c=op.Amount_Y__c;
}
else{
a.Rollup_Amount_Y__c = a.Rollup_Amount_Y__c+op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
}
if(accmap.containskey(trigger.oldmap.get(op.Id).Accountid)){
Account a1 = accmap.get(trigger.oldmap.get(op.Id).Accountid);
a1.Rollup_Amount_Y__c = a1.Rollup_Amount_Y__c -op.Amount_Y__c;
accmap.put(op.Accountid,a1);
}
}
else if(op.type__c!=trigger.oldmap.get(op.Id).type__c && op.type__c== 'negative'){//changed from positive to negative
if(accmap.containskey(op.Accountid)){
Account a = accmap.get(op.Accountid);
if(a.Rollup_Amount_Y__c==null){
a.Rollup_Amount_Y__c=op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
else
{
a.Rollup_Amount_Y__c= a.Rollup_Amount_Y__c + op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
if(a.Rollup_Amount__c!=null){
a.Rollup_Amount__c=a.Rollup_Amount__c+(a.Rollup_Amount_X__c+a.Rollup_Amount_Y__c);
accmap.put(op.Accountid,a);
}
else{
a.Rollup_Amount__c= (a.Rollup_Amount_X__c+a.Rollup_Amount_Y__c);
accmap.put(op.Accountid,a);
}
if(accmap.containskey(trigger.oldmap.get(op.Id).Accountid)){
Account a1 = accmap.get(trigger.oldmap.get(op.Id).Accountid);
If(a1.Rollup_Amount_X__c!=null){
a1.Rollup_Amount_X__c= a1.Rollup_Amount_X__c-op.Amount_X__c;
accmap.put(op.Accountid,a1 );
}
a1.Rollup_Amount__c = a1.Rollup_Amount__c - (trigger.oldmap.get(op.Id).Amount_X__c+trigger.oldmap.get(op.Id).Amount_Y__c);
accmap.put(op.Accountid,a1 );
}
}
}
}
else if(op.AccountId==trigger.oldmap.get(op.Id).Accountid){ //same account but change type
Account a = accmap.get(op.Accountid);
if(op.type__c!=trigger.oldmap.get(op.Id).type__c && op.type__c== 'positive'){
if(a.Rollup_Amount_X__c==null){
a.Rollup_Amount_X__c= op.Amount_X__c;
accmap.put(op.Accountid,a);
}else{
Decimal sum = op.Amount_X__c - trigger.oldmap.get(op.Id).Amount_X__c;
a.Rollup_Amount_X__c=a.Rollup_Amount_X__c+sum;
accmap.put(op.Accountid,a);
}
}
else if(op.type__c!=trigger.oldmap.get(op.Id).type__c && op.type__c== 'negative'){
if(a.Rollup_Amount_Y__c==null ){
a.Rollup_Amount_Y__c= op.Amount_Y__c;
accmap.put(op.Accountid,a);
}
else{
Decimal sum = op.Amount_Y__c - trigger.oldmap.get(op.Id).Amount_Y__c;
a.Rollup_Amount_Y__c=a.Rollup_Amount_Y__c+a.Rollup_Amount_Y__c+sum;
accmap.put(op.Accountid,a);
}
}
else if(op.type__c==trigger.oldmap.get(op.Id).type__c && op.type__c== 'positive'){
if(op.Amount_X__c!=trigger.oldmap.get(op.Id).Amount_X__c){
if(a.Rollup_Amount_X__c==null && op.Amount_X__c!=null){
a.Rollup_Amount_X__c=op.Amount_X__c;
accmap.put(op.Accountid,a);
}
else{
if(a.Rollup_Amount_X__c!=null && op.Amount_X__c!=null){
a.Rollup_Amount_X__c=a.Rollup_Amount_X__c-trigger.oldmap.get(op.Id).Amount_X__c;
a.Rollup_Amount_X__c=a.Rollup_Amount_X__c+op.Amount_X__c;
accmap.put(op.Accountid,a);
}
}
}
}
else if(op.type__c==trigger.oldmap.get(op.Id).type__c && op.type__c== 'negative'){
if(op.Amount_Y__c!=trigger.oldmap.get(op.Id).Amount_Y__c){
if(a.Rollup_Amount_Y__c==null && op.Amount_Y__c!=null){
a.Rollup_Amount_Y__c=op.Amount_Y__c;
accmap.put(op.Accountid,a);
}
else{
if(a.Rollup_Amount_Y__c!=null && op.Amount_Y__c!=null){
a.Rollup_Amount_Y__c=a.Rollup_Amount_Y__c-trigger.oldmap.get(op.Id).Amount_Y__c;
a.Rollup_Amount_Y__c=a.Rollup_Amount_Y__c+op.Amount_Y__c;
accmap.put(op.Accountid,a);
}
}
}
}
}
update accmap.values();
}
}
}
set<id>accid = new set<id>();
List<opportunity> oppList = new List<opportunity>();
for(Opportunity op:Trigger.new){
accid.add(op.Accountid);
}
list<Account> acc =[select Id,name,Rollup_Amount_Y__c,Rollup_Amount_X__c,Rollup_Amount__c from Account where Id=:accid];
Map<id,Account> accmap = new Map<id,Account>();
for(Account ac: acc){
accmap.put(ac.Id,ac);
}
if(trigger.isinsert){
for(Opportunity op :Trigger.new){
if(accmap.containskey(op.Accountid)){
Decimal sum=0;
Account a = accmap.get(op.Accountid);
if(op.type__c== 'positive'){
if(op.Amount_X__c!=null){
If(a.Rollup_Amount_X__c==null){
a.Rollup_Amount_X__c=op.Amount_X__c;
accmap.put(op.Accountid,a );
}
else {
a.Rollup_Amount_X__c=a.Rollup_Amount_X__c + op.Amount_X__c;
accmap.put(op.Accountid,a );
}
}
}
if(op.type__c== 'negative'){
if(op.Amount_Y__c!=null){
If(a.Rollup_Amount_Y__c==null){
a.Rollup_Amount_Y__c=op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
else {
a.Rollup_Amount_Y__c=a.Rollup_Amount_Y__c + op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
}
}
if(a.Rollup_Amount__c==null) {
a.Rollup_Amount__c=a.Rollup_Amount_Y__c+a.Rollup_Amount_X__c;
accmap.put(op.Accountid,a );
}
else{
a.Rollup_Amount__c=a.Rollup_Amount__c+(a.Rollup_Amount_X__c+a.Rollup_Amount_Y__c);
accmap.put(op.Accountid,a );
}
}
}
update accmap.values();
}
if(trigger.isupdate){
for(Opportunity op:Trigger.new){
if(op.AccountId!=trigger.oldmap.get(op.Id).Accountid){
if(op.type__c==trigger.oldmap.get(op.Id).type__c && op.type__c== 'positive'){
//new opportunity 'account id' is not equal to old oppertunity Account id {change Account id}//
if(accmap.containskey(op.Accountid)){
Account a = accmap.get(op.Accountid);
if(a.Rollup_Amount_X__c==null){
a.Rollup_Amount_X__c=op.Amount_X__c;
}
else{
a.Rollup_Amount_X__c = a.Rollup_Amount_X__c+op.Amount_X__c;
accmap.put(op.Accountid,a );
}
if(accmap.containskey(trigger.oldmap.get(op.Id).Accountid)){
Account a1 = accmap.get(trigger.oldmap.get(op.Id).Accountid);
a1.Rollup_Amount_X__c = a1.Rollup_Amount_X__c - op.Amount_X__c;
accmap.put(trigger.oldmap.get(op.Id).Accountid,a1 );
}
}
}
else if(op.type__c!=trigger.oldmap.get(op.Id).type__c && op.type__c== 'positive'){//it changed from negative to positive & account is also changed
if(accmap.containskey(op.Accountid)){
Account a = accmap.get(op.Accountid);
if(a.Rollup_Amount_X__c==null){
a.Rollup_Amount_X__c=op.Amount_X__c;
accmap.put(op.Accountid,a );
}
else
{
a.Rollup_Amount_X__c= a.Rollup_Amount_X__c + op.Amount_X__c;
accmap.put(op.Accountid,a );
}
if(a.Rollup_Amount__c!=null||op.Amount_Y__c==null||op.Amount_X__c==null){
a.Rollup_Amount__c=a.Rollup_Amount__c+(op.Amount_X__c+op.Amount_Y__c);
accmap.put(op.Accountid,a );
}
else{
a.Rollup_Amount__c= (a.Rollup_Amount_X__c+a.Rollup_Amount_Y__c);
accmap.put(op.Accountid,a );
}
if(accmap.containskey(trigger.oldmap.get(op.Id).Accountid)){
Account a1 = accmap.get(trigger.oldmap.get(op.Id).Accountid);
If(a1.Rollup_Amount_Y__c!=null){
a1.Rollup_Amount_Y__c=a1.Rollup_Amount_Y__c-op.Amount_Y__c;
accmap.put(op.Accountid,a1 );
}
a1.Rollup_Amount__c = a1.Rollup_Amount__c - (trigger.oldmap.get(op.Id).Amount_Y__c+trigger.oldmap.get(op.Id).Amount_X__c);
accmap.put(op.Accountid,a1 );
}
}
}
if(op.type__c==trigger.oldmap.get(op.Id).type__c && op.type__c== 'negative'){
if(accmap.containskey(op.Accountid)){
Account a = accmap.get(op.Accountid);
if(a.Rollup_Amount_Y__c==null){
a.Rollup_Amount_Y__c=op.Amount_Y__c;
}
else{
a.Rollup_Amount_Y__c = a.Rollup_Amount_Y__c+op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
}
if(accmap.containskey(trigger.oldmap.get(op.Id).Accountid)){
Account a1 = accmap.get(trigger.oldmap.get(op.Id).Accountid);
a1.Rollup_Amount_Y__c = a1.Rollup_Amount_Y__c -op.Amount_Y__c;
accmap.put(op.Accountid,a1);
}
}
else if(op.type__c!=trigger.oldmap.get(op.Id).type__c && op.type__c== 'negative'){//changed from positive to negative
if(accmap.containskey(op.Accountid)){
Account a = accmap.get(op.Accountid);
if(a.Rollup_Amount_Y__c==null){
a.Rollup_Amount_Y__c=op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
else
{
a.Rollup_Amount_Y__c= a.Rollup_Amount_Y__c + op.Amount_Y__c;
accmap.put(op.Accountid,a );
}
if(a.Rollup_Amount__c!=null){
a.Rollup_Amount__c=a.Rollup_Amount__c+(a.Rollup_Amount_X__c+a.Rollup_Amount_Y__c);
accmap.put(op.Accountid,a);
}
else{
a.Rollup_Amount__c= (a.Rollup_Amount_X__c+a.Rollup_Amount_Y__c);
accmap.put(op.Accountid,a);
}
if(accmap.containskey(trigger.oldmap.get(op.Id).Accountid)){
Account a1 = accmap.get(trigger.oldmap.get(op.Id).Accountid);
If(a1.Rollup_Amount_X__c!=null){
a1.Rollup_Amount_X__c= a1.Rollup_Amount_X__c-op.Amount_X__c;
accmap.put(op.Accountid,a1 );
}
a1.Rollup_Amount__c = a1.Rollup_Amount__c - (trigger.oldmap.get(op.Id).Amount_X__c+trigger.oldmap.get(op.Id).Amount_Y__c);
accmap.put(op.Accountid,a1 );
}
}
}
}
else if(op.AccountId==trigger.oldmap.get(op.Id).Accountid){ //same account but change type
Account a = accmap.get(op.Accountid);
if(op.type__c!=trigger.oldmap.get(op.Id).type__c && op.type__c== 'positive'){
if(a.Rollup_Amount_X__c==null){
a.Rollup_Amount_X__c= op.Amount_X__c;
accmap.put(op.Accountid,a);
}else{
Decimal sum = op.Amount_X__c - trigger.oldmap.get(op.Id).Amount_X__c;
a.Rollup_Amount_X__c=a.Rollup_Amount_X__c+sum;
accmap.put(op.Accountid,a);
}
}
else if(op.type__c!=trigger.oldmap.get(op.Id).type__c && op.type__c== 'negative'){
if(a.Rollup_Amount_Y__c==null ){
a.Rollup_Amount_Y__c= op.Amount_Y__c;
accmap.put(op.Accountid,a);
}
else{
Decimal sum = op.Amount_Y__c - trigger.oldmap.get(op.Id).Amount_Y__c;
a.Rollup_Amount_Y__c=a.Rollup_Amount_Y__c+a.Rollup_Amount_Y__c+sum;
accmap.put(op.Accountid,a);
}
}
else if(op.type__c==trigger.oldmap.get(op.Id).type__c && op.type__c== 'positive'){
if(op.Amount_X__c!=trigger.oldmap.get(op.Id).Amount_X__c){
if(a.Rollup_Amount_X__c==null && op.Amount_X__c!=null){
a.Rollup_Amount_X__c=op.Amount_X__c;
accmap.put(op.Accountid,a);
}
else{
if(a.Rollup_Amount_X__c!=null && op.Amount_X__c!=null){
a.Rollup_Amount_X__c=a.Rollup_Amount_X__c-trigger.oldmap.get(op.Id).Amount_X__c;
a.Rollup_Amount_X__c=a.Rollup_Amount_X__c+op.Amount_X__c;
accmap.put(op.Accountid,a);
}
}
}
}
else if(op.type__c==trigger.oldmap.get(op.Id).type__c && op.type__c== 'negative'){
if(op.Amount_Y__c!=trigger.oldmap.get(op.Id).Amount_Y__c){
if(a.Rollup_Amount_Y__c==null && op.Amount_Y__c!=null){
a.Rollup_Amount_Y__c=op.Amount_Y__c;
accmap.put(op.Accountid,a);
}
else{
if(a.Rollup_Amount_Y__c!=null && op.Amount_Y__c!=null){
a.Rollup_Amount_Y__c=a.Rollup_Amount_Y__c-trigger.oldmap.get(op.Id).Amount_Y__c;
a.Rollup_Amount_Y__c=a.Rollup_Amount_Y__c+op.Amount_Y__c;
accmap.put(op.Accountid,a);
}
}
}
}
}
update accmap.values();
}
}
}
HI,
Test Class coverage is nothing , You can develop your own code in Test class. Please follow Mr.Piyus Guide .
Regards,
Soundar Rajan P.