You need to sign in to do that
Don't have an account?

"System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out" Error in Test Class..
@isTest private class GSDCVSCallTest { private static Integer count=0; public class WebServiceMockImpl implements WebServiceMock{ public void doInvoke( Object stub, Object request, Map<String, Object> response, String endpoint, String soapAction, String requestName, String responseNS, String responseName, String responseType){ GSDCSCCVSStub.ComplianceValidationServiceResponseType RateObj= new GSDCSCCVSStub.ComplianceValidationServiceResponseType(); RateObj.applicationId='123456'; RateObj.applicationPasswd='23456'; GSDCSCCVSStub.authUserType AuthObj=new GSDCSCCVSStub.authUserType(); authobj.null_x='abc'; RateObj.authUser=authobj; RateObj.contentType='text'; GSDCSCCVSStub.countryType ct= new GSDCSCCVSStub.countryType() ; ct.null_x='India'; RateObj.country=ct; GSDCSCCVSStub.emailType et=new GSDCSCCVSStub.emailType(); et.null_x='navuluri@hp.com'; RateObj.email=et; GSDCSCCVSStub.httpSmUniversalIdType huid= new GSDCSCCVSStub.httpSmUniversalIdType(); huid.null_x='345678'; RateObj.httpSmUniversalId=huid; GSDCSCCVSStub.httpSmUserDnType hudt=new GSDCSCCVSStub.httpSmUserDnType(); hudt.null_x='testtype'; RateObj.httpSmUserDn=hudt; GSDCSCCVSStub.mockRequestType mrt=new GSDCSCCVSStub.mockRequestType(); mrt.null_x='requesttest'; RateObj.mockRequest=mrt; GSDCSCCVSStub.processLineItemResponseType plir=new GSDCSCCVSStub.processLineItemResponseType(); plir.null_x='testProcess'; GSDCSCCVSStub.requestOperationResponseType ror=new GSDCSCCVSStub.requestOperationResponseType(); ror.null_x='testOPeration'; GSDCSCCVSStub.CVSresponseCodeType rct=new GSDCSCCVSStub.CVSresponseCodeType(); rct.null_x='testresponse'; GSDCSCCVSStub.CVSresponseMessageType rmt=new GSDCSCCVSStub.CVSresponseMessageType(); rmt.null_x='testMessage'; GSDCSCCVSStub.errorMessageCodeType emc=new GSDCSCCVSStub.errorMessageCodeType(); emc.null_x='testeMessage'; GSDCSCCVSStub.errorMessageTextType emt=new GSDCSCCVSStub.errorMessageTextType (); emt.null_x='testMessagetext'; List<GSDCSCCVSStub.messageListType> mltl=new List<GSDCSCCVSStub.messageListType>(); GSDCSCCVSStub.messageListType mlt=new GSDCSCCVSStub.messageListType(); mlt.fraudMessageIdentifier='testfarudidentifier'; mlt.fraudMessageText='testfarudmessage'; mlt.fraudMessageTypeCode='testmessageType'; mlt.id='testId'; mlt.requestOperation='testrequestop'; mlt.responseCode='testresponsemlt'; mlt.responseMessage='testresponsemsgmlt'; mltl.add(mlt); GSDCSCCVSStub.messageListElementType mle= new GSDCSCCVSStub.messageListElementType(); mle.element=mlt; List<GSDCSCCVSStub.messageListElementType> mlel= new List<GSDCSCCVSStub.messageListElementType>(); mlel.add(mle); List<GSDCSCCVSStub.elementType> ettl=new List<GSDCSCCVSStub.elementType>(); GSDCSCCVSStub.elementType etts=new GSDCSCCVSStub.elementType(); etts.attributeList='testattrribute'; etts.checkTransactionId=987654; etts.conditionReferenceID='testCondition'; etts.lineItem='testline'; etts.validationResponseCode='testrequest'; etts.validationResponseID='testvresponse'; etts.processLineItem=plir; etts.requestOperation=ror; etts.responseCode=rct; etts.responseMessage=rmt; etts.errorMessageCode=emc; etts.errorMessageText=emt; etts.messageList=mlel; ettl.add(etts); GSDCSCCVSStub.inputAttributeListType ial=new GSDCSCCVSStub.inputAttributeListType (); ial.element=etts; GSDCSCCVSStub.payloadType plts=new GSDCSCCVSStub.payloadType(); plts.element=etts; List<GSDCSCCVSStub.payloadType> pltl=new List<GSDCSCCVSStub.payloadType>(); pltl.add(plts); RateObj.payload=pltl; etts.inputAttributeList=ial; RateObj.payload=pltl; GSDCSCCVSStub.remoteUserType rut=new GSDCSCCVSStub.remoteUserType(); rut.null_x='userremote'; RateObj.remoteUser=rut; GSDCSCCVSStub.smUserType sut=new GSDCSCCVSStub.smUserType(); sut.null_x='usersmUser'; RateObj.smUser=sut; RateObj.statusCode=227; RateObj.statusDescription='Description'; GSDCSCCVSStub.stubRequestType srt =new GSDCSCCVSStub.stubRequestType(); srt.null_x='Reuest123'; RateObj.stubRequest=srt; RateObj.testRequest='Reuest1234'; RateObj.unitOfWorkId='workiD123'; if(request instanceof GSDCSCCVSStub.rootType) response.put('response_x', RateObj); return; } } public static testMethod void MockTest(){ // Insert custom setting for endpoint url and certificate. createCustomSetting(); //String getCaseIdFromMethod=GetCaseID(); Id Ids = Id.valueOf(GetCaseID()); //String getTaskIdFromMethod=GetTaskID(); Id Idss = Id.valueOf(GetCaseID()); Test.startTest(); GSDCSCCVSCheckForCaseWizard cvswizard=new GSDCSCCVSCheckForCaseWizard(); new GSDCSCCVSStub.attributeListType(); new GSDCSCCVSStub.ComplianceValidationServiceResponseType(); new GSDCSCCVSStub.messageListElementType(); new GSDCSCCVSStub.messageListType(); new GSDCSCCVSStub.Value0Type(); new GSDCSCCVSStub.Value1Type(); new GSDCSCCVSStub.processLineItemType(); new GSDCSCCVSStub.requestOperationType(); new GSDCSCCVSStub.responseCodeType(); new GSDCSCCVSStub.responseMessageType(); new GSDCSCCVSStub.Value2Type(); cvswizard.transactionId = 'sfdc401'; cvswizard.ResponseStatus = 'active'; cvswizard.userRegion = 'AMS'; cvswizard.UserCallCenter = 'US'; cvswizard.endTime=system.Now(); MonitorUtility monstub = new MonitorUtility(); List<GSDCSCCVSCheckForCaseWizard.CreateOrderOutputWrapperClass> cvsCheckForCaseObj = new list<GSDCSCCVSCheckForCaseWizard.CreateOrderOutputWrapperClass>(); GSDCSCCVSCheckForCaseWizard.CreateOrderOutputWrapperClass CvsObj1=new GSDCSCCVSCheckForCaseWizard.CreateOrderOutputWrapperClass(); CvsObj1.output1='test1'; CvsObj1.output2='test2'; CvsObj1.output3='test3'; CvsObj1.output4='test4'; CvsObj1.output5='test5'; cvsCheckForCaseObj.add(CvsObj1); GSDCSCCVSStub.ComplianceValidationServiceResponseType cvsresponse= new GSDCSCCVSStub.ComplianceValidationServiceResponseType (); Test.setMock(WebServiceMock.class, new WebServiceMockImpl()); GSDCSCCVSStub.ComplianceValidationServiceEndpoint req= new GSDCSCCVSStub.ComplianceValidationServiceEndpoint(); cvswizard.getCVSDetails(ids); cvswizard.getCVSDetails(idss); Test.stopTest(); } public static testmethod void method1case(){ createCustomSetting(); //String getCaseIdFromMethod=GetCaseID(); Id Ids = Id.valueOf(GetCaseID()); system.debug('**Ids*'+Ids); test.startTest(); Test.setMock(WebServiceMock.class, new WebServiceMockImpl()); GSDCSCCVSCheckForCaseWizard cvswizard=new GSDCSCCVSCheckForCaseWizard(); cvswizard.getCVSDetails(ids); GSDCVSCall callCVsfromtest=new GSDCVSCall(); GSDCVSCall.invokeCVSTibcoService(ids); test.stopTest(); } public static testmethod void method2task(){ createCustomSetting(); //String getCaseIdFromMethod=GetCaseID(); Id Ids = Id.valueOf(GetCaseID()); system.debug('**Ids*'+Ids); test.startTest(); Test.setMock(WebServiceMock.class, new WebServiceMockImpl()); GSDCSCCVSCheckForCaseWizard cvswizard=new GSDCSCCVSCheckForCaseWizard(); cvswizard.getCVSDetails(ids); GSDCVSCall callCVsfromtest=new GSDCVSCall(); GSDCVSCall.callCVSFromEntitlement(ids); test.stopTest(); } public static testmethod void method1task(){ createCustomSetting(); //String getTaskIdFromMethod=getTaskId(); Id Idss = Id.valueOf(getTaskId()); system.debug('**Ids*'+Idss); Test.setMock(WebServiceMock.class, new WebServiceMockImpl()); GSDCSCCVSCheckForCaseWizard cvsCheckWizard=new GSDCSCCVSCheckForCaseWizard(); test.startTest(); cvsCheckWizard.getCVSDetails(idss); test.stopTest(); GSDCVSCall callCVsfromtest=new GSDCVSCall(); GSDCVSCall.invokeCVSTibcoServiceforTask(idss); } private static string GetCaseID(){ DateTime getguarnteedatetime = datetime.now(); DateTime latestServiceDateTime = getguarnteedatetime.addDays(6); ID recId= Schema.SObjectType.Case.RecordTypeInfosByName.get('GSD CSC Case Open').RecordTypeId; ID accRecTypeId = Schema.SObjectType.Account.RecordTypeInfosByName.get('Customer').RecordTypeId; Account acc = new Account( Name='HP', RecordTypeId = accRecTypeId); insert acc; System.debug('acc is inserted'+acc); Contact con = new Contact(AccountId=acc.Id, FirstName ='Kamal', LastName ='Rao', Telephone_Access_Code__c='India +91', Email ='kamal.rao@hp.com'); insert con; System.debug('con is inserted'+con); ID locRecTypeId = Schema.SObjectType.Location__c.RecordTypeInfosByName.get('Customer').RecordTypeId; Location__c loc = new Location__c(Account__c=acc.Id, City__c= 'Hyd', Country__c='India', name ='Sample Location'); insert loc; System.debug('loc is inserted'+loc); Product_Hierarchy__c proHie = new Product_Hierarchy__c(PM_PRODUCT_SERIES_KY__c = 731200, name ='Test2121', PM_PRODUCT_SERIES_NM__c='646902-372', PM_PRODUCT_NR__c='646902-371'); insert proHie; Asset ass = new Asset(AccountId=acc.id, ContactId = con.Id, Name='Sample Asset', HP_Asset_Type__c='PPS GSB Asset', Manufacturer__c = 'HP DesignJet (PL30)', HP_Product_Model__c ='30 - DesignJet HW', HP_Product_Number__c = '646902-371', Location__c = loc .id, SerialNumber='CN731200JN', Product_Hierarchy__c =proHie.id, IsCompetitorProduct=true); insert ass; Case newCase = new Case(); newCase.AccountId=acc.id; newCase.ContactId=con.id; newCase.Location__c=loc.Id; newCase.AssetId = ass.Id; newCase.Asset_Country_Name__c='INDIA'; newCase.Electronic_Country__c='INDIA'; newCase.Street__c='55/34,harinatha street'; newCase.Street_Line_2__c='Rayachoty'; newCase.City__c='Bangalore'; newCase.Zip_Postal_Code__c='516269'; newCase.SuppliedCompany='HP'; newCase.RecordTypeId = recId; newCase.Product_Series_Text__c = '1213'; newCase.Auto_Close__c=false; newCase.Status='Open'; newCase.Origin='Customer Portal'; newCase.ContactFirstName__c='test'; newCase.ContactLastname__c='ln'; newCase.SuppliedEmail='abc@hp.com'; newCase.Product_Hierarchy__c=proHie.Id; newCase.Latest_Service_DateTime__c=latestServiceDateTime; newCase.Guaranteed_DateTime__c=getguarnteedatetime; newCase.Requestor_s_TimeZone__c='(GMT+00:00) Greenwich Mean Time (GMT)'; newCase.Subject='Case Em3'; newCase.Severity__c='Normal'; newCase.Reason='ABP Support'; newCase.Contract_Identifier__c='106372993480'; newCase.Product_Number__c='VW668EC'; newCase.Asset_Serial_Number__c='USE4543MEM'; insert newCase; system.debug('Case From CaseMethod'+newCase); GSD_Compliance_Validation_System_Result__c cvsr=new GSD_Compliance_Validation_System_Result__c(Case__c=newCase.Id, Error_Type__c='HOLD', Error_Description__c='This is the Error', Transaction_Id__c='40879730', Condition_Level__c='Hold', Condition_Id__c='2684874', Call_Type__c='Case', status__c='Active' ); insert cvsr; System.debug('newCase is inserted'+newCase); //String caseIdCopy=newCase.id; return newCase.id; } private static Id getTaskId(){ CKSW__Region__c newRegion = new CKSW__Region__c(Name='Tamil Nadu'+count,Business_Center__c='xyz'+count); insert newRegion; CKSW__District__c newDistrict = new CKSW__District__c(Name='Alpha1'+count, CKSW__Region__c=newRegion.Id); insert newDistrict; Account acc = new Account(Name='test account1'); insert acc; Contact con = new Contact(LastName='Smith1', AccountId=acc.Id); insert con; CKSW__WorkOrder__c workOrder= new CKSW__WorkOrder__c(CKSW__Account__c=acc.Id, CKSW__Contact__c=con.Id); insert workOrder; CKSW__TaskType__c repTaskType = new CKSW__TaskType__c(Name='Repair'); insert repTaskType; CKSW__TaskType__c pickTaskType = new CKSW__TaskType__c(Name='PartPickup'); insert pickTaskType; Asset AsetObj=new Asset(name='as1',HP_Product_Number__c='H4U87ES',HP_Asset_Type__c='PPS GSB Asset',Manufacturer__c='HP DesignJet (PL30)', Status='Active',HP_Product_Model__c='30 - DesignJet HW',AccountId=acc.Id); insert AsetObj; BusinessHours newBusHours= new BusinessHours(Name='Default'); Case newCase= new Case(status='open', BusinessHours=newBusHours,source_system_case_id__c='98000057131', Severity__c='3-NORMAL', Description='Test Description', OwnerId=userinfo.getUserId(),Reason='ABP Support',NBD_SBD__c='SBD'); newCase.Requestor_s_TimeZone__c='(GMT+00:00) British Standard Time (Europe/London)'; newCase.AssetId=AsetObj.Id; newcase.Last_Service_Delivery_Time__c=system.now()+1; newCase.Mission_Critical__c=true; insert newCase; CKSW__Task__c newTask = new CKSW__Task__c(CKSW__Country__c='IN', case_number__c=newCase.Id, CKSW__WorkOrder__c=workOrder.Id, CKSW__District__c=newDistrict.Id, CKSW__Region__c= newRegion.Id, CKSW__City__c='Bangalore', CKSW__State__c='Karnataka', CKSW__Street__c='ElectronicsCity', CKSW__Zip_Postal_Code__c='560100', CKSW__TaskType__c=repTaskType.Id, CKSW__Duration__c=10,Guaranteed_Fix_Time__c=Date.Today()+2, CKSW__EarlyStart__c=system.Now(), Customer_Requested_Start_Time__c='18:22:22', Customer_Requested_End_Time__c='24:23:22', CKSW__DueDate__c=system.Now()+1); insert newTask; GSD_Compliance_Validation_System_Result__c cvsr=new GSD_Compliance_Validation_System_Result__c(Case__c=newTask.case_number__c, Error_Type__c='HOLD', Error_Description__c='This is the Error', Transaction_Id__c='40879730', Condition_Level__c='Hold', Condition_Id__c='2684874', Call_Type__c='Onsite', status__c='Active' ); insert cvsr; return newTask.id; } private static void createCustomSetting(){ MonitorUtility objmonitorutility=new MonitorUtility(); String Transactionids = objmonitorutility.beginMon('SF-ComplianceValidationSystem'); User u = [select Id, username from User where Id = : UserInfo.getUserId()]; GSD_CSC_Webservice_Endpoint_URL__c integrationData=new GSD_CSC_Webservice_Endpoint_URL__c(); integrationData.Name='GSDCSCCVS'; integrationData.Certificate__c='SFDC_Certificate'; integrationData.Endpoint_URL__c='https://it-services-gw-csc-stg.itcs.hp.com/gw/hpit/egit/compliancevalidationforsales.stg'; insert integrationData; HPTriggerFrameworkObjectMapping__c trigFramework = new HPTriggerFrameworkObjectMapping__c(); trigFramework.name = 'CKSW__Task__c'; trigFramework.DispatcherCalssName__c = 'GSDTask'; insert trigFramework; // inserting custom setting for workorder HPTriggerFrameworkObjectMapping__c workorder = new HPTriggerFrameworkObjectMapping__c(); workorder.name = 'CKSW__WorkOrder__c'; workorder.DispatcherCalssName__c = 'GSDWorkOrder'; insert workorder; HPTriggerFrameworkObjectMapping__c offercode = new HPTriggerFrameworkObjectMapping__c(); offercode.name = 'GSD_Offer__c'; offercode.DispatcherCalssName__c = 'GSDOffer'; insert offercode; GSD_CSC_Data_Value_Mapping__c MC = new GSD_CSC_Data_Value_Mapping__c(Name='Mission Critical', Value__c='Datacenter Hyperscale;Datacenter Care;Legacy MC'); insert MC; } }
I am getting "System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out" error in MockTest(),method1task() only,remaing two methods are passing and i am getting code coverage.
Kindly let me know why MockTest(),method1task() methods are failing.
Thanks,
Sudhakr


Please check if this is happenning due to any of these known issues: https://success.salesforce.com/issues_index?keywords=uncommitted%20work