• Gannon Middleton
  • NEWBIE
  • 0 Points
  • Member since 2023

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 1
    Replies

Hi all,

I am a novice, looking to write a test class for a redirect.
 

public class RedirectController {
    public String itemName { get; set; }
    public String externalID { get; set; }
    public String SFID { get; set; }

    public Client ac { get; set; }
    public License lic { get; set; }
    public Opportunity opp { get; set; }

    public RedirectController() {
        itemName = ApexPages.currentPage().getParameters().get('itemName');
        externalID = ApexPages.currentPage().getParameters().get('externalID');

        if (itemName == 'Client') {
            ac = [SELECT Id FROM Client__c WHERE extid_client__c = :externalID limit 1];
            SFID = ac.Id;
        }

        if (itemName == 'License') {
            lic = [SELECT Id FROM License__c WHERE extid_license__c = :externalID limit 1];
            SFID = lic.Id;
        }
        
        if (itemName == 'Opportunity') {
            opp = [SELECT Id FROM Opportunity WHERE extid_opportunity__c = :externalID limit 1];
            SFID = opp.Id;
        }
    }

    public PageReference redirect() {
        PageReference pageRef = new PageReference('/' + SFID);
        pageRef.setRedirect(true);
        return pageRef;
    }

}

The VF page is then:

<apex:page controller="RedirectController" action="{!redirect}">
</apex:page>

The above all works, but I can't deploy to Production without a test class and I am not even sure what I am testing, I've written them before with dummy data, but this one has be a bit confused.

Any direction would be greatly appreciated!

Hi all,

I am a novice, looking to write a test class for a redirect.
 

public class RedirectController {
    public String itemName { get; set; }
    public String externalID { get; set; }
    public String SFID { get; set; }

    public Client ac { get; set; }
    public License lic { get; set; }
    public Opportunity opp { get; set; }

    public RedirectController() {
        itemName = ApexPages.currentPage().getParameters().get('itemName');
        externalID = ApexPages.currentPage().getParameters().get('externalID');

        if (itemName == 'Client') {
            ac = [SELECT Id FROM Client__c WHERE extid_client__c = :externalID limit 1];
            SFID = ac.Id;
        }

        if (itemName == 'License') {
            lic = [SELECT Id FROM License__c WHERE extid_license__c = :externalID limit 1];
            SFID = lic.Id;
        }
        
        if (itemName == 'Opportunity') {
            opp = [SELECT Id FROM Opportunity WHERE extid_opportunity__c = :externalID limit 1];
            SFID = opp.Id;
        }
    }

    public PageReference redirect() {
        PageReference pageRef = new PageReference('/' + SFID);
        pageRef.setRedirect(true);
        return pageRef;
    }

}

The VF page is then:

<apex:page controller="RedirectController" action="{!redirect}">
</apex:page>

The above all works, but I can't deploy to Production without a test class and I am not even sure what I am testing, I've written them before with dummy data, but this one has be a bit confused.

Any direction would be greatly appreciated!