You need to sign in to do that
Don't have an account?
Terminusbot
Test Class: WebServiceMock - Any advice on how to create a test class for the following callout?
Here is my class that I need to create a test class for:
public class ConfirmAccount{ public static Boolean AsyncFlag = false; @Future(callout=true) public static void confirmAccountName(Set<ID> ids) { try { Map<ID, Account> mapAccnt = getAccounts(ids); //Initialize Sagitta Services SagittaServices.Results sResult; SagittaServices.TransporterSoap port = new SagittaServices.TransporterSoap(); SagittaServices.AuthenticationHeader authHeader = new SagittaServices.AuthenticationHeader(); SagittaServices.Post post = new SagittaServices.Post(); for(Account accnt : mapAccnt.values()){ //Creating instances for complex data types. Postal Code, Producers, Servicers, Categeory Codes SagittaServices.clientInsertMap accounts = new SagittaServices.clientInsertMap(); //Get Sagitta Code from Account Owner and Set Producer Code List<User> accountOwner = [Select Sagitta_User_Code__c From User where id =: accnt.ownerid]; String prodCode = string.valueOf(accountOwner[0].Sagitta_User_Code__c); SagittaServices.ProducerCd prod = new SagittaServices.ProducerCd(); prod.Producer1Cd = prodCode; //Servicer Codes SagittaServices.ServicerCd serv = new SagittaServices.ServicerCd(); serv.Servicer1Cd = 'HO'; //Category Codes String catCode1; if (accnt.RecordType.Name == 'Business') { catCode1 = 'COM'; } else { catCode1 = 'PER'; } SagittaServices.CatCd catCode = new SagittaServices.CatCd(); catCode.Cat1Cd = catCode1; //Postal Code SagittaServices.Post postCodes = new SagittaServices.Post(); postCodes.PostalCode = accnt.BillingPostalCode; //TODO: Understand and set Sic Code //SagittaServices.SicCd sicCode = new SagittaServices.SicCd(); //Generate Unique ID for GUID over to Sagitta String genGuid = string.ValueOf(Datetime.now().formatGMT('yyyyMMddHHmmssSSS')); //Set Login Credentials to AuthHeader authHeader.Account = 'xxxxx'; authHeader.Username = 'xxxxx'; authHeader.Password = 'xxxxx'; authHeader.Serverpool = 'xxxxx'; port.AuthenticationHeader = authHeader; //Client Insert Map accounts.Guid = genGuid; accounts.ClientName = accnt.Name; accounts.DivisionNumber = 01; accounts.Addr1 = accnt.BillingStreet; String Addr2; accounts.City = accnt.BillingCity; accounts.StateProvCd = accnt.BillingState; accounts.PostCd = postCodes; accounts.Phone1Number = long.ValueOf(accnt.Phone.replaceAll('\\D', '')); accounts.Phone2Number = long.ValueOf(accnt.Phone_2__c.replaceAll('\\D', '')); accounts.FaxNumber = accnt.Fax.replaceAll('\\D', ''); accounts.WebSiteLink = accnt.Website; accounts.ContactMethod = accnt.Preferred_Method_of_Contact__c; accounts.EmailAddr = accnt.Email__c; accounts.ProducerCd = prod; accounts.ServicerCd = serv; accounts.CatCd = catCode; accounts.NetCommissionPct = accnt.Net_Commision__c; accounts.FEIN = Integer.valueOf(accnt.FEIN__c); accounts.DateBusinessStarted = accnt.Business_Start_Date__c; accounts.InspectionContact = accnt.Inspection_Contact__c; accounts.InspectionPhoneNumber = long.ValueOf(accnt.Inspection_Phone_Number__c.replaceAll('\\D', '')); accounts.InspectionPhoneExtensionNumber = Integer.valueOf(accnt.Inspection_Phone_Extension_Number__c); accounts.AccountingContact = accnt.Accounting_Contact__c; accounts.AccountingPhoneNumber = long.ValueOf(accnt.Accounting_Phone_Number__c.replaceAll('\\D', '')); accounts.AccountingPhoneExtensionNumber = Integer.valueOf(accnt.Accounting_Phone_Extension_Number__c); accounts.Phone1ExtensionNumber = Integer.valueOf(accnt.Phone_Ext__c); accounts.Phone2ExtensionNumber = Integer.valueOf(accnt.Phone_2_Ext__c); //TODO: Add fields /* String ReferenceCd; String CommentaryRemarkText; String CreditTerms; String SourceCd; DateTime SourceDt; String LegalEntityCd; SagittaServices.BusinessNature BusinessNature; Srting SicCd; */ //Execute Callout - Client Insert sResult = port.clientInsert(accounts); System.debug('Success:'+sResult.Success+'SagittaId:'+sResult.SagittaId+'SagittaCode:'+sResult.SagittaCode+'Errors:'); //If Succesful, update Account record with Sagitta ID and Client Code If (sResult.SagittaId != null & sResult.SagittaCode !=null) { accnt.SagittaId__c = string.ValueOf(sResult.SagittaId); accnt.Client_Code__c = sResult.SagittaCode; //String BillToCd; update accnt; } } AsyncFlag = true; } catch (Exception ex) { System.debug('ERROR: '+ ex); } } private static Map<Id, Account> getAccounts(Set<ID> ids){ Map<Id, Account> accounts; accounts = new Map<ID, Account>([Select ID, Name,BillingStreet,BillingCity,BillingState,FEIN__c, BillingPostalCode,Phone,Phone_2__c,Email__c,Fax,Website, Billing_Payment_Type__c,Sic,Preferred_Method_of_Contact__c,Net_Commision__c,Business_Start_Date__c,Inspection_Contact__c, Inspection_Phone_Number__c,Accounting_Contact__c,Accounting_Phone_Number__c, Accounting_Phone_Extension_Number__c,Inspection_Phone_Extension_Number__c,Phone_2_Ext__c, Phone_Ext__c, ownerid,RecordType.Name from Account where ID in :ids and recordtypeid in (Select Id from RecordType where sobjecttype = 'Account')]); System.debug('Account Map Private' + accounts); return accounts; } }