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
jmburnsjmburns 

Little bit of help, please?

Trying to write test code for this apex class, can some one please help? I have another class to upload and my part-time developer is out of town! I am at 74% can some one PLEASE help me get it up a bit so I can upload my class?

 

 

public class tableSort {

    public List<Task> opps;
    public Id theT;
    public String sortField {get; set;}
    public String previousSortField {get; set;}
    
      {
        theT = ApexPages.currentPage().getParameters().get('id');
        
    }
    
    public List<Task> getOpps() {
        if(opps == null){
            opps = [select WhatId, Subject, OwnerId, Description, ActivityDate from Task WHERE WhatId = :theT ];
        }
        return opps;
    }
    
    public void doSort(){
        String order = 'asc';
        
        /*This checks to see if the same header was click two times in a row, if so 
        it switches the order.*/
        if(previousSortField == sortField){
            order = 'desc';
            previousSortField = null;
        }else{
            previousSortField = sortField;
        }
       
        //To sort the table we simply need to use this one line, nice!
        superSort.sortList(opps,sortField,order);
    }
}

 

 

Thanks in advance to anyone who might help!

 

JB

Best Answer chosen by Admin (Salesforce Developers) 
sfdcfoxsfdcfox

 

@isTest
private class test_TableSort {
  private static void test() {
    Account a = new Account(name='Test');
    insert a;
    List<Task> tasks = new List<Task>{
      new Task(Subject='A Task',ActivityDate=System.Today(),Status='Completed',WhatId=a.id),
      new Task(Subject='Z Task',ActivityDate=System.Today().addDays(-1),Status='Not Started',WhatId=a.id));
    insert tasks;
    Test.setCurrentPage(Page.tableSortPage); // Replace with your page's name.
    Test.startTest();
    ApexPages.currentPage().getParameters().put('id',a.id);
    tableSort controller = new tableSort();
    System.assertEquals(2,controller.getOpps().size());
    controller.sortField = 'Subject';
    controller.doSort();
    System.assertEquals('A Task',controller.getOpps()[0].Subject);
    controller.doSort();
    System.assertEquals('Z Task',controller.getOpps()[0].Subject);
    controller.sortField='ActivityDate';
    controller.doSort();
    System.assertEquals(System.Today().addDays(-1),controller.getOpps()[0].ActivityDate);
    controller.sortField='Subject';
    controller.doSort();
    System.assertEquals('A Task',controller.getOpps()[0].Subject);
    Test.stopTest();
  }
}

 This should achieve near 100% completion... Try it out.

 

All Answers

sfdcfoxsfdcfox

 

@isTest
private class test_TableSort {
  private static void test() {
    Account a = new Account(name='Test');
    insert a;
    List<Task> tasks = new List<Task>{
      new Task(Subject='A Task',ActivityDate=System.Today(),Status='Completed',WhatId=a.id),
      new Task(Subject='Z Task',ActivityDate=System.Today().addDays(-1),Status='Not Started',WhatId=a.id));
    insert tasks;
    Test.setCurrentPage(Page.tableSortPage); // Replace with your page's name.
    Test.startTest();
    ApexPages.currentPage().getParameters().put('id',a.id);
    tableSort controller = new tableSort();
    System.assertEquals(2,controller.getOpps().size());
    controller.sortField = 'Subject';
    controller.doSort();
    System.assertEquals('A Task',controller.getOpps()[0].Subject);
    controller.doSort();
    System.assertEquals('Z Task',controller.getOpps()[0].Subject);
    controller.sortField='ActivityDate';
    controller.doSort();
    System.assertEquals(System.Today().addDays(-1),controller.getOpps()[0].ActivityDate);
    controller.sortField='Subject';
    controller.doSort();
    System.assertEquals('A Task',controller.getOpps()[0].Subject);
    Test.stopTest();
  }
}

 This should achieve near 100% completion... Try it out.

 

This was selected as the best answer
jmburnsjmburns

Wow your a lifesaver, I have a meeting in 10 minutes I will try it as soon as i get out!

 

THANK YOU!

 

JB