controllersalesforceapex-codeapextest-class

List has no rows for assignment to SObject Test class error


i'm an Apex newbie Need help with Apex test class. The controller class works great but I cant find a way to replicate it into a test class without the error "List has no rows for assignment to SObject" Here is the actual controller class:

public with sharing class GoogleMap_Meeting_Controller {

    public List<Meeting__c> MeetingsList {get;set;}
    public List<Meeting__c> MeetingsList2 {get;set;}

    public GoogleMap_Meeting_Controller() {

        Id id = ApexPages.currentPage().getParameters().get('id');
        MeetingsList = [SELECT Id, Name, Group__r.Id, Meeting_Date__c, GPS_Meeting_Location__Latitude__s, GPS_Meeting_Location__Longitude__s FROM Meeting__c WHERE Group__r.Id =:id ORDER BY Meeting_Date__c DESC LIMIT 10 OFFSET 1];
        MeetingsList2 =[SELECT Id, Name, Group__r.Id, Meeting_Date__c, GPS_Meeting_Location__Latitude__s, GPS_Meeting_Location__Longitude__s FROM Meeting__c WHERE Group__r.Id =:id ORDER BY Meeting_Date__c DESC LIMIT 1];
    } // end constructor
} // end class

My test class;

public with sharing class GoogleMap_Meeting_Controller_Tester {

    static testMethod void myTest() {
        Meeting__c MeetingsList = new Meeting__c();
        Meeting__c MeetingsList2 = new Meeting__c();

        //Id id = ApexPages.currentPage().getParameters().get('id');
        MeetingsList = [SELECT Id, Name, Group__r.Id, Meeting_Date__c,        GPS_Meeting_Location__Latitude__s, GPS_Meeting_Location__Longitude__s FROM Meeting__c WHERE Group__r.Id ='a0Lc0000002zI9O' ORDER BY Meeting_Date__c DESC LIMIT 10 OFFSET 1];
        MeetingsList2 =[SELECT Id, Name, Group__r.Id, Meeting_Date__c, GPS_Meeting_Location__Latitude__s, GPS_Meeting_Location__Longitude__s FROM Meeting__c WHERE Group__r.Id ='a0Lc0000002zI9O' ORDER BY Meeting_Date__c DESC LIMIT 1];
     } // end constructor        
} // end class

Solution

  • Instead of

    MeetingsList = [SELECT Id, Name, Group__r.Id, Meeting_Date__c, GPS_Meeting_Location__Latitude__s, GPS_Meeting_Location__Longitude__s FROM Meeting__c WHERE Group__r.Id =:id ORDER BY Meeting_Date__c DESC LIMIT 10 OFFSET 1];   
    MeetingsList2 =[SELECT Id, Name, Group__r.Id, Meeting_Date__c, GPS_Meeting_Location__Latitude__s, GPS_Meeting_Location__Longitude__s FROM Meeting__c WHERE Group__r.Id =:id ORDER BY Meeting_Date__c DESC LIMIT 1];
    

    use

    List< MeetingsList> = [SELECT Id, Name, Group__r.Id, Meeting_Date__c, GPS_Meeting_Location__Latitude__s, GPS_Meeting_Location__Longitude__s FROM Meeting__c WHERE Group__r.Id =:id ORDER BY Meeting_Date__c DESC LIMIT 10 OFFSET 1];
    List< MeetingsList2> =[SELECT Id, Name, Group__r.Id, Meeting_Date__c, GPS_Meeting_Location__Latitude__s, GPS_Meeting_Location__Longitude__s FROM Meeting__c WHERE Group__r.Id =:id ORDER BY Meeting_Date__c DESC LIMIT 1];