function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Pablo Ledesma 8Pablo Ledesma 8 

Test class for SOAP web service

Hello

I need urgent help here!
I need to write test class for this code generated from wsdl file:
 
https://bitbucket.org/pabloledesma/credifamilia/src/e16cbf0aed70a552580bd84404b21b7b17af31bf/Arenero/src/classes/WSOtorgamiento.cls?at=master&fileviewer=file-view-default
These is my mock implementation:
@isTest
global class WsOtorgamientoMock implements WebServiceMock {
    
   global void doInvoke(
           Object stub,
           Object request,
           Map<String, Object> response,
           String endpoint,
           String soapAction,
           String requestName,
           String responseNS,
           String responseName,
           String responseType) {
           	
        WSOtorgamiento.BuscaDeudorResponse_element response_x; 
        Map<String, WSOtorgamiento.BuscaDeudorResponse_element> response_map_x = new Map<String, WSOtorgamiento.BuscaDeudorResponse_element>();
        response_map_x.put('response_x', response_x);
       	List<WSOtorgamiento.Deudor> lstDeudor = new List<WSOtorgamiento.Deudor>();
       	WSOtorgamiento.Deudor deudor = new WSOtorgamiento.Deudor(
       		Beta_Capa_Pago_12=0.0, 
			Beta_Capa_Pago_13=-0.28589, 
			Beta_Capa_Pago_14=0, 
			Beta_Capa_Pago_15=0, 
			Beta_Consul_Sector_F_C_12=0, 
			Beta_Consul_Sector_F_C_13=0.04723, 
			Beta_Edad_Cre_Abi_Cer_11=-0.16931, 
			Beta_Edad_Cre_Abi_Cer_12=0, 
			Beta_Recursos_Propios=-0.0311202, 
			Beta_Rela_Cuota_Ingr_11=0, 
			Beta_Rela_Cuota_Ingr_12=-0.05562, 
			Beta_TC_11=0, 
			Beta_TC_12=0, 
			Calificacion='BB+', 
			Capacidad_Pago=59.33, 
			Cedula=80035035, 
			Cons_Sector_F_C=3, 
			Cred_Abiertos_Cerrados=35, 
			Edad=36, 
			Estado_Salesforce='desembolsado', 
			Fecha_Calculo=2017/10/19 10:59:59, 
			Indi_Recursos_Propios=0.17, 
			LTV=40.0, 
			PDI=12.0,  
			Perdida_Esperada=203255.79, 
			Porc_Utilizacion_TC=74.2, 
			Rela_Cuota_Ingreso=27.77, 
			Valor_Cupos_TC=30189000, 
			Valor_Inmueble=20656076, 
			Z=0.1816198 
	       		
       	);
       	
        response.put('response_x', lstDeudor); 
   
	}
}
AND
 
@isTest
    static void calificacion_con_informacion_completa()
    {
    	Id accId = TestDataFactory.createAccount('12345678');
    	Id datacreditoId = TestDataFactory.createDatacredito('12345678');
    	Opportunity opp = TestDataFactory.createRawOpportunity(accId);
    	insert opp;
    	Solicitud_de_credito__c sc = TestDataFactory.createRawSolicitudDeCredito(opp.Id); 
    	insert sc;
    	Informacion_comite__c ic = TestDataFactory.createRawInformacionComite(sc.Id);
    	RecordType rtHipotecario = [
    		select 
    			id, 
    			Name 
    		from RecordType
    		where sObjectType = 'Informacion_comite__c' 
    		and Name = 'Hipotecario'
    	];
    	
    	ic.RecordTypeId = rtHipotecario.Id;
    	
    	/** Variables requeridas para el modelo **/
        
        //Cliente deudor
        ic.Cliente_deudor__c = accId;
        
        //Relación cuota ingreso
        ic.Credito_sugerido__c = 500000; // Valor del desembolso
        ic.Ingresos_mes__c = 1200000;
        ic.Factor_por_millon_propuesta__c = 3568;
        
        // Tipo de proceso
        ic.Tipo_de_proceso_informacion_comite__c = 'Nuevo';
        
        // Indice relación cuota ingreso neto propuesta
        ic.Ingreso_neto_total__c = 10000000;
        
        // Ltv sugerido
        ic.Compromisos_de_pago__c = 1000000;
        ic.Cesantias_propuesta__c = 1000;
        ic.Subsidio_propuesta__c = 1000;
        ic.Diferencia_Mejoramiento_Sugerido__c = 1000;
        
    	insert ic; 
    	 
        PageReference infoComite = Page.informacion_comite;
    	Test.setCurrentPage(infoComite);
        ApexPages.StandardController icController = new ApexPages.StandardController(ic);
        CalificacionCtrl ctrl = new CalificacionCtrl(icController);
        
        System.assertEquals(
        	0,
        	ctrl.errores.size(),
        	'Falta información requerida en la información comite'
        );
        
        Test.setMock(WSOtorgamiento.class, new WsOtorgamientoMock());
        
        Test.startTest();
	    	String respuesta = CalificacionCtrl.calificacion(
	    		Double.valueOf(ctrl.infocomite.Ind_relacion_cuota_ingeso_neto_propuesta__c),
	    		Double.valueOf(ctrl.infocomite.Relacion_cuota_ingreso_propuesta__c),
	    		Double.valueOf(ctrl.infocomite.Recurso_propio__c),
	    		Integer.valueOf(ctrl.diaDeNacimiento),
	    		Integer.valueOf(ctrl.mesDeNacimiento),
	    		Integer.valueOf(ctrl.anoDeNacimiento),       		
	    		ctrl.clienteDeudor.Numero_de_documento__c,
	    		Integer.valueOf(ctrl.infocomite.Credito_sugerido__c),
	    		ctrl.infocomite.Solicitud_de_credito__r.Name,
	    		ctrl.infocomite.El_credito_fue__c,
	    		Double.valueOf(ctrl.infocomite.Ltv_sugerido__c),
	    		(Id)ctrl.infocomite.Id
	    	);
    	
	    	System.debug('respuesta: ' +respuesta);
    	Test.stopTest();
    	
    	
    	System.assertEquals(
    		1,
    		[select count() from calificacion__c where informacion_comite__c =:ic.id]
    	);
        
        
    }
I appreciate any indication to help me