You need to sign in to do that
Don't have an account?
lxch
Test on object returning aggregated SUM values from SOQL in apex class
I'm working on Apex Test Class. If anyone knows the problem the below test code. Thanks!
The Class is returning Object sumBalance with SUM values (alias: bl, bt, pt) from SOQL and component receives {v.sumBalance.bl}, {v.sumBalance.bt}, {v.sumBalance.pt}. These are working fine. But can't figure out how to test this Class....
Class
Test Class
The Class is returning Object sumBalance with SUM values (alias: bl, bt, pt) from SOQL and component receives {v.sumBalance.bl}, {v.sumBalance.bt}, {v.sumBalance.pt}. These are working fine. But can't figure out how to test this Class....
Class
public with sharing class DueBalanceController{ @AuraEnabled public static Object sumBalance (String recordId){ Date d_today = system.Date.today(); AggregateResult[] groupedResults = [ SELECT SUM(Balance__c)bl,SUM(Paid_Total__c)pt,SUM(Billing_Total__c)bt, Tenant__c FROM Billing__c WHERE Tenant__c = :recordId AND User_Due_Date__c <= :d_today AND (Status__c='Unpaid' OR Status__c='Paid' OR Status__c='Captured') GROUP BY Tenant__c ]; Object sumAmount = groupedResults[0]; return sumAmount; } }
Test Class
@isTest public class DueBalanceControllerTest { @isTest public static void testDueBalanceController(){ String recordTypeId = Schema.getGlobalDescribe().get('Account').getDescribe().getRecordTypeInfosByName().get('Person Account').getRecordTypeId(); Account acct= new Account( RecordTypeID = recordTypeId , FirstName = 'Test FName', LastName='Test LName', PersonMailingStreet='test@yahoo.com', PersonMailingPostalCode='12345', PersonMailingCity='SFO', PersonEmail='test@yahoo.com', PersonHomePhone='1234567', PersonMobilePhone='12345678' ); insert acct; Case cs = new Case( Subject='Test', Status ='Closed' ); insert cs; Billing__c bl = new Billing__c(Name='Test'); bl.Monthly_Rent__c = 200000; bl.Paid_Total__c = 100000; bl.Status__c = 'Paid'; bl.User_Due_Date__c = system.Date.today()-20; bl.Tenant__c = acct.Id; bl.Case__c = cs.Id; insert bl; Test.StartTest(); Object sumBalance = DueBalanceController.sumBalance(acct.Id); System.assertNotEquals(null,sumBalance); Test.StopTest(); } }
Best Answer chosen by lxch
lxch
Needed to return by AggregatedResult. Solved by other discussion board.