-2

How to cover the line if (minhaSolicitacao == null) { throw new AuraHandledException('Registro não encontrado'); in the last method on the AuxilioResidDetalhesAlterContratoCtrl to the test class? Observation: The line it's marked by *

@isTest
public class AuxilioResidDetalhesAlterContratoTest {

     @isTest static void getDetalhesSolicitacao(){

         User usuario = new User(Username = 'Joãoo@joao.teste', LastName = 'Constantino' ,Email = 'joao@joao.teste', Alias = 'GEST', CommunityNickname = 'COM_GESTOR', TimeZoneSidKey = 'Pacific/Kiritimati', LocaleSidKey = 'en_US', EmailEncodingKey = 'ISO-8859-1', ProfileId = [SELECT Id FROM Profile WHERE Name IN ('Gestor') limit 1].Id, LanguageLocaleKey = 'en_US', FuncionalColaborador__c = 'FUNCIONAL_GESSTOR', Title = 'GESTOR', Department = 'GESTOR_TESTE'); 

        insert usuario;



        Case idSolicitar = new Case();
        idSolicitar.Nova_Data_Inicio_Contrato__c=date.parse('20/07/2017');
        idSolicitar.Data_Vigencia_Mudanca__c=date.parse('20/07/2017');
        idSolicitar.Nova_Data_Termino_Contrato__c=date.parse('20/07/2019');
        idSolicitar.Novo_Valor_Aluguel__c=decimal.valueOf(29);
        idSolicitar.Inicio_Beneficio__c=date.parse('20/08/2017');
        idSolicitar.DataAbertura__c=date.parse('21/08/2017');
        idSolicitar.Data_Inicio_Contrato__c=date.parse('05/07/2017');
        idSolicitar.Data_Termino_Contrato__c=date.parse('05/07/2019');
        idSolicitar.Numero_Solicitacao__c='0393';
        idSolicitar.OwnerId= usuario.id;
        idSolicitar.Status='pendente';
        idSolicitar.Valor_Aluguel__c=decimal.valueOf(39);
        idSolicitar.Previsao_Encerramento__c=date.parse('20/08/2019');
        idSolicitar.RecordTypeId = RecordTypeMemory.getRecType('Case', 'Ajuda_Residencia_Alteracao_Contrato');
        insert idSolicitar;


        Test.startTest();

        System.runAs(usuario){
        try{   
        Case minhaSolicitacao = AuxilioResidDetalhesAlterContratoCtrl.getDetalhesSolicitacao();
        } catch(AuraHandledException e){   
        }
        }

        try{
            Case minhaSolicitacao = AuxilioResidDetalhesAlterContratoCtrl.getDetalhesSolicitacao();

        }catch(AuraHandledException e ){

        }
    }


    @isTest static void getAnexos(){


        User usuario = new User(Username = 'Joãoo@joao.teste', LastName = 'Constantino' ,Email = 'joao@joao.teste', Alias = 'GEST', CommunityNickname = 'COM_GESTOR', TimeZoneSidKey = 'Pacific/Kiritimati', LocaleSidKey = 'en_US', EmailEncodingKey = 'ISO-8859-1', ProfileId = [SELECT Id FROM Profile WHERE Name IN ('Gestor') limit 1].Id, LanguageLocaleKey = 'en_US', FuncionalColaborador__c = 'FUNCIONAL_GESSTOR', Title = 'GESTOR', Department = 'GESTOR_TESTE');
        insert usuario;

            //Case mimhaSolicitacao = new Case();


         //Attachment  a = [SELECT Id, ParentId, Name, Body, Description, ContentType, BodyLength, LastModifiedDate, OwnerId FROM Attachment WHERE ParentId =: mimhaSolicitacao.id];
         //insert a;
         //insert b;

        Case idSolicitar = new Case();
        idSolicitar.Nova_Data_Inicio_Contrato__c=date.parse('20/07/2017');
        idSolicitar.Data_Vigencia_Mudanca__c=date.parse('20/07/2017');
        idSolicitar.Nova_Data_Termino_Contrato__c=date.parse('20/07/2019');
        idSolicitar.Novo_Valor_Aluguel__c=decimal.valueOf(029);
        //idSolicitar.Tipo_Solicitacao__c='';
        idSolicitar.Inicio_Beneficio__c=date.parse('20/08/2017');
        idSolicitar.DataAbertura__c=date.parse('21/08/2017');
        idSolicitar.Data_Inicio_Contrato__c=date.parse('21/08/2017');
        idSolicitar.Data_Termino_Contrato__c=date.parse('05/07/2019');
        idSolicitar.Numero_Solicitacao__c='0393';
        idSolicitar.OwnerId= usuario.Id;
        idSolicitar.Status='pendente';
        idSolicitar.Previsao_Encerramento__c=date.parse('20/08/2019');
        idSolicitar.RecordTypeId = RecordTypeMemory.getRecType('Case', 'Ajuda_Residencia_Alteracao_Contrato');
        insert idSolicitar;

       Attachment  Solicitar = new Attachment(ParentId = idSolicitar.Id, Body = Blob.valueOf('test'), Name= String.valueOf('test.txt'), Description = idSolicitar.Description, OwnerId= idSolicitar.OwnerId);

        insert Solicitar;


        Test.startTest();

        System.runAs(usuario){
        try{
            List<Attachment> anexos = AuxilioResidDetalhesAlterContratoCtrl.getAnexos();  
        }catch(AuraHandledException e){
            System.assert(true);

        }
        }

        try{
         List<Attachment> anexos = AuxilioResidDetalhesAlterContratoCtrl.getAnexos();  
        }catch(AuraHandledException e){
            System.assert(true);
        }



        Test.stopTest();
    }

        //variaveis do testsetMock
    private static final String return1 = '{"chave_produto":"0008","dados":{"codigo_retorno":"01","descricao_retorno":"PROCESSADO OK","id_solicitacao":"123124","sla":"3"}}';
    private static final String return2 = '{"chave_produto":"0008","dados":{"codigo_retorno":"0","descricao_retorno":"PROCESSADO OK","id_solicitacao":"123124","sla":"3"}}';
    private static final String return3 = '{"chave_produto":"0008","dados":{"codigo_retorno":"05","descricao_retorno":"PROCESSADO OK","id_solicitacao":"123124","sla":"3"}}';

    @isTest static void cancelarSolicitacao1(){

        User usuario = new User(Username = 'Joãoo@joao.teste', LastName = 'Constantino' ,Email = 'joao@joao.teste', Alias = 'GEST', CommunityNickname = 'COM_GESTOR', TimeZoneSidKey = 'Pacific/Kiritimati', LocaleSidKey = 'en_US', EmailEncodingKey = 'ISO-8859-1', ProfileId = [SELECT Id FROM Profile WHERE Name IN ('Gestor') limit 1].Id, LanguageLocaleKey = 'en_US', FuncionalColaborador__c = 'FUNCIONAL_GESSTOR', Title = 'GESTOR', Department = 'GESTOR_TESTE');


       insert usuario;


        Case idSolicitar = new Case();
        idSolicitar.Nova_Data_Inicio_Contrato__c=date.parse('20/07/2017');
        idSolicitar.Data_Vigencia_Mudanca__c=date.parse('20/07/2017');
        idSolicitar.Nova_Data_Termino_Contrato__c=date.parse('20/07/2019');
        idSolicitar.Novo_Valor_Aluguel__c=decimal.valueOf(029);
        //idSolicitar.Tipo_Solicitacao__c='';
        idSolicitar.Inicio_Beneficio__c=date.parse('20/08/2017');
        idSolicitar.DataAbertura__c=date.parse('21/08/2017');
        idSolicitar.Data_Inicio_Contrato__c=date.parse('05/07/2017');
        idSolicitar.Data_Termino_Contrato__c=date.parse('05/07/2019');
        idSolicitar.Numero_Solicitacao__c = null;
        idSolicitar.OwnerId= usuario.id;
        idSolicitar.Status='pendente';
        idSolicitar.Previsao_Encerramento__c=date.parse('20/08/2019');
        idSolicitar.RecordTypeId = RecordTypeMemory.getRecType('Case', 'Ajuda_Residencia_Alteracao_Contrato');
        insert idSolicitar;


        Acao_Integracao__c acaoIntegracao;


        acaoIntegracao = new Acao_Integracao__c();
        acaoIntegracao.Name = 'PeopleSoft_0283';
        acaoIntegracao.CodigoServico__c = '0000';
        acaoIntegracao.Modulo__c = 'AlterContrato';
        acaoIntegracao.Timeout__c = 60000;
        acaoIntegracao.Endpoint__c = 'www.google.com.br';
        acaoIntegracao.ServicoNome__c = 'Alteração Contrato';
        insert acaoIntegracao;

        Test.setMock(HttpCalloutMock.class, new AuxilioResidDetalAlterMock(return3));

        Test.startTest();
        System.runAs(usuario){    
        try{       
            **strong text**AuxilioResidDetalhesAlterContratoCtrl.cancelarSolicitacao('');
        }catch(AuraHandledException e){
            System.assert(e.getMessage().contains('Script-thrown exception')); 

            }

        }

        Test.stopTest();
    }    

    @isTest static void cancelarSolicitacao2(){

        User usuario = new User(Username = 'Joãoo@joao.teste', LastName = 'Constantino' ,Email = 'joao@joao.teste', Alias = 'GEST', CommunityNickname = 'COM_GESTOR', TimeZoneSidKey = 'Pacific/Kiritimati', LocaleSidKey = 'en_US', EmailEncodingKey = 'ISO-8859-1', ProfileId = [SELECT Id FROM Profile WHERE Name IN ('Gestor') limit 1].Id, LanguageLocaleKey = 'en_US', FuncionalColaborador__c = 'FUNCIONAL_GESSTOR', Title = 'GESTOR', Department = 'GESTOR_TESTE');


        insert usuario;

        Case idSolicitar = new Case();
        idSolicitar.Nova_Data_Inicio_Contrato__c=date.parse('20/07/2017');
        idSolicitar.Data_Vigencia_Mudanca__c=date.parse('20/07/2017');
        idSolicitar.Nova_Data_Termino_Contrato__c=date.parse('20/07/2019');
        idSolicitar.Novo_Valor_Aluguel__c=decimal.valueOf(029);
        //idSolicitar.Tipo_Solicitacao__c='';
        idSolicitar.Inicio_Beneficio__c=date.parse('20/08/2017');
        idSolicitar.DataAbertura__c=date.parse('21/08/2017');
        idSolicitar.Data_Inicio_Contrato__c=date.parse('05/07/2017');
        idSolicitar.Data_Termino_Contrato__c=date.parse('05/07/2019');
        idSolicitar.Numero_Solicitacao__c='128';
        idSolicitar.OwnerId= usuario.id;
        idSolicitar.Status='pendente';
        idSolicitar.Previsao_Encerramento__c=date.parse('20/08/2019');
        idSolicitar.RecordTypeId = RecordTypeMemory.getRecType('Case', 'Ajuda_Residencia_Alteracao_Contrato');
        insert idSolicitar;



        Acao_Integracao__c acaoIntegracao;


        acaoIntegracao = new Acao_Integracao__c();
        acaoIntegracao.Name = 'PeopleSoft_0283';
        acaoIntegracao.CodigoServico__c = '0000';
        acaoIntegracao.Modulo__c = 'AlterContrato';
        acaoIntegracao.Timeout__c = 60000;
        acaoIntegracao.Endpoint__c = 'www.google.com.br';
        acaoIntegracao.ServicoNome__c = 'Alteração Contrato';
        insert acaoIntegracao;



        Test.setMock(HttpCalloutMock.class, new AuxilioResidDetalAlterMock(return1));


         Test.startTest();

        System.runAs(usuario){
        try{
            AuxilioResidDetalhesAlterContratoCtrl.cancelarSolicitacao(idSolicitar.Numero_Solicitacao__c); 

        }catch(AuraHandledException e){
            System.assert(e.getMessage().contains('Script-thrown exception')); 

            }
        }
        try{
            AuxilioResidDetalhesAlterContratoCtrl.cancelarSolicitacao(idSolicitar.Numero_Solicitacao__c); 
        }catch(AuraHandledException e){
               System.assert(e.getMessage().contains('Script-thrown exception'));
        }

        Test.stopTest();
    }

     @isTest static void cancelarSolicitacao3(){

        User usuario = new User(Username = 'Joãoo@joao.teste', LastName = 'Constantino' ,Email = 'joao@joao.teste', Alias = 'GEST', CommunityNickname = 'COM_GESTOR', TimeZoneSidKey = 'Pacific/Kiritimati', LocaleSidKey = 'en_US', EmailEncodingKey = 'ISO-8859-1', ProfileId = [SELECT Id FROM Profile WHERE Name IN ('Gestor') limit 1].Id, LanguageLocaleKey = 'en_US', FuncionalColaborador__c = 'FUNCIONAL_GESSTOR', Title = 'GESTOR', Department = 'GESTOR_TESTE');


        insert usuario;

        Case idSolicitar = new Case();
        idSolicitar.Nova_Data_Inicio_Contrato__c=date.parse('20/07/2017');
        idSolicitar.Data_Vigencia_Mudanca__c=date.parse('20/07/2017');
        idSolicitar.Nova_Data_Termino_Contrato__c=date.parse('20/07/2019');
        idSolicitar.Novo_Valor_Aluguel__c=decimal.valueOf(029);
        //idSolicitar.Tipo_Solicitacao__c='';
        idSolicitar.Inicio_Beneficio__c=date.parse('20/08/2017');
        idSolicitar.DataAbertura__c=date.parse('21/08/2017');
        idSolicitar.Data_Inicio_Contrato__c=date.parse('05/07/2017');
        idSolicitar.Data_Termino_Contrato__c=date.parse('05/07/2019');
        idSolicitar.Numero_Solicitacao__c='123';
        idSolicitar.OwnerId= usuario.id;
        idSolicitar.Status='pendente';
        idSolicitar.Previsao_Encerramento__c=date.parse('20/08/2019');
        idSolicitar.RecordTypeId = RecordTypeMemory.getRecType('Case', 'Ajuda_Residencia_Alteracao_Contrato');
        insert idSolicitar;



        Acao_Integracao__c acaoIntegracao;


        acaoIntegracao = new Acao_Integracao__c();
        acaoIntegracao.Name = 'PeopleSoft_0283';
        acaoIntegracao.CodigoServico__c = '0000';
        acaoIntegracao.Modulo__c = 'AlterContrato';
        acaoIntegracao.Timeout__c = 60000;
        acaoIntegracao.Endpoint__c = 'www.google.com.br';
        acaoIntegracao.ServicoNome__c = 'Alteração Contrato';
        insert acaoIntegracao;



        Test.setMock(HttpCalloutMock.class, new AuxilioResidDetalAlterMock(return2));


         Test.startTest();

        System.runAs(usuario){
        try{
            AuxilioResidDetalhesAlterContratoCtrl.cancelarSolicitacao(idSolicitar.Numero_Solicitacao__c); 
        }catch(AuraHandledException e){
            System.assert(e.getMessage().contains('Script-thrown exception')); 

            }
        }

        Test.stopTest();
}

public class AuxilioResidDetalhesAlterContratoCtrl {

    @AuraEnabled
    public static Case getDetalhesSolicitacao() {

        Id RecTypeId = RecordTypeMemory.getRecType('Case', 'Ajuda_Residencia_Alteracao_Contrato');
        Case minhaSolicitacao = new Case();
        try {
            minhaSolicitacao = [SELECT Id, Nova_Data_Inicio_Contrato__c, Data_Vigencia_Mudanca__c, Nova_Data_Termino_Contrato__c, Novo_Valor_Aluguel__c, Tipo_Solicitacao__c, Inicio_Beneficio__c, DataAbertura__c, Data_Inicio_Contrato__c, Data_Termino_Contrato__c, Numero_Solicitacao__c, OwnerId, Status, Valor_Aluguel__c, Previsao_Encerramento__c FROM Case WHERE OwnerId = :UserInfo.getUserId() AND RecordTypeId = :RecTypeId limit 1];
            if (minhaSolicitacao == null) {
                System.debug('Retornou nulo no método getInscricaoAdesao()');
            } else {
                System.debug('Registro encontrado no método getInscricaoAdesao()');
            }
        } catch (Exception e) {
            throw new AuraHandledException('Ocorreu um erro ' + e.getMessage());
        }
        return minhaSolicitacao;
    }

    @AuraEnabled
    public static list<Attachment> getAnexos() {
        Id RecTypeId = RecordTypeMemory.getRecType('Case', 'Ajuda_Residencia_Alteracao_Contrato');
        list<Attachment> anexos = new list<Attachment>();
        Case minhaSolicitacao = new Case();
        try {
            minhaSolicitacao = [SELECT Id, Nova_Data_Inicio_Contrato__c, Data_Vigencia_Mudanca__c, Nova_Data_Termino_Contrato__c, Novo_Valor_Aluguel__c, Tipo_Solicitacao__c, Inicio_Beneficio__c, DataAbertura__c, Data_Inicio_Contrato__c, Data_Termino_Contrato__c, Numero_Solicitacao__c, OwnerId, Status, Valor_Aluguel__c, Previsao_Encerramento__c FROM Case WHERE OwnerId = :UserInfo.getUserId() AND RecordTypeId = :RecTypeId limit 1];
            anexos = [SELECT Id, ParentId, Name, Body, Description, ContentType, BodyLength, LastModifiedDate, OwnerId FROM Attachment WHERE ParentId = :minhaSolicitacao.Id];
        } catch (Exception e) {
            throw new AuraHandledException('Ocorreu um erro ' + e.getMessage());
        }
        return anexos;
    }

    @AuraEnabled
    public static void cancelarSolicitacao(String solicitacao_id) {

        Id RecTypeId = RecordTypeMemory.getRecType('Case', 'Ajuda_Residencia_Alteracao_Contrato');
        Case minhaSolicitacao = new Case();
        try {
            minhaSolicitacao = [SELECT Id, Nova_Data_Inicio_Contrato__c, Data_Vigencia_Mudanca__c, Nova_Data_Termino_Contrato__c, Novo_Valor_Aluguel__c, Tipo_Solicitacao__c, Inicio_Beneficio__c, DataAbertura__c, Data_Inicio_Contrato__c, Data_Termino_Contrato__c, Numero_Solicitacao__c, OwnerId, Status, Valor_Aluguel__c, Previsao_Encerramento__c FROM Case WHERE Numero_Solicitacao__c = :solicitacao_id];
            system.debug('minhaSolicitacao>>>>> ' + minhaSolicitacao);
            **if (minhaSolicitacao == null) {
                throw new AuraHandledException('Registro não encontrado');**
            } else {

                PeopleSoft_0283_REQUEST.Request cancelarSolicitacao = new PeopleSoft_0283_REQUEST.Request();
                cancelarSolicitacao.CANCELAMENTO_SS_INSTALACAO = new PeopleSoft_0283_REQUEST.CANCELAMENTO_SS_INSTALACAO();
                cancelarSolicitacao.CANCELAMENTO_SS_INSTALACAO.id_solicitacao = solicitacao_id;

                PeopleSoft_0283_RESPONSE.Response response = PeopleSoft_0283_REQUEST.sendRequest(cancelarSolicitacao);

                if (response.Dados.codigo_retorno != '99') {
                    if (response.Dados.codigo_retorno == '01') {
                        throw new AuraHandledException('Registro não encontrado no sistema PeopleSoft');
                    } else {

                        minhaSolicitacao.Status = 'Cancelado';
                        update minhaSolicitacao;
                    }
                }
            }
        } catch (Exception e) {
            System.debug('Registro não encontado Alterar contrato Catch ' + e.getMessage());
            throw new AuraHandledException('Registro não encontado');
        }
    }
}  
2

That particular line will never be executed because the query two lines above will not return null if no records are found. Instead, it'll throw an exception itself. See Using SOQL Queries That Return One Record.

You can handle this by catching the exception yourself and re-raising. The pattern would look something like this (pseudo-code):

try {
    Case minhaSolicitacao = [SELECT (fields) FROM Case WHERE Numero_Solicitacao__c = :solicitacao_id];
} catch (Exception e) {
    throw new AuraHandledException('Registro não encontrado');
}

You can test the exception handler because you control the data in the test environment. Running a test without creating data that matches the query will result in the exception being thrown, which you can catch and assert on in your test method.

  • Have I to declared solicitacao_id? This showing the error follow. Variable does not exist: solicitacao_id – Thiago S. Dec 29 '17 at 18:40
  • I just copied and pasted your query. The code in my answer is meant to illustrate the pattern; I deliberately omitted the field list, for example. – David Reed Dec 29 '17 at 18:41
  • Ok! But, will be can to cover the line. You it would have form other for to cover this line? – Thiago S. Dec 29 '17 at 18:45
  • Sorry, @ThiagoS, I don't have time to do one-on-one assistance. – David Reed Dec 29 '17 at 19:42
  • Thank you very much! Have other form for to resolved this line. if (minhaSolicitacao == null) { throw new AuraHandledException? – Thiago S. Dec 29 '17 at 19:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.