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
mukesh nanimukesh nani 

i tried this example from visual force workbook but i got an error that is only top-level calss variables can be declared static

@istest
private class TestWarehouseUtils{
    static testMethod void testFindWarehousesWithinTwentyMiles() {
    String myLat = '17.4368';
    String myLon = '78.4439';
    Warehouse__c closestWarehouse = createClosestTestWarehouse();
   Warehouse__c closeWarehouse = createCloseTestWarehouse();
   Warehouse__c tooFarWarehouse = createTooFarTestWarehouse();
List<Warehouse__c> nearbyWarehouse =
    WarehouseUtils.findNearbyWarehouse(myLat, myLon);
    Test.stopTest();
System.assert(nearbyWarehouse.size() == 2);
System.assert(nearbyWarehouse[0].Name == closestWarehouse.Name);
System.assert(nearbyWarehouse[1].Name == closeWarehouse.Name);
    if(0 < nearbyWarehouse.size()) {
    for (Warehouse__c wh : nearbyWarehouse) {
        System.assert(wh.Name != tooFarWarehouse.Name);} 
           {
   static  testMethod void testDontFindWarehousesFurtherThanTwentyMiles() {
      String myLat = '17.3254';
      String myLon = '78.5746';
    Warehouse__c closestWarehouse = createClosestTestWarehouse();
    Warehouse__c closeWarehouse = createCloseTestWarehouse();
   Warehouse__c tooFarWarehouse = createTooFarTestWarehouse();
    Test.startTest();
List<Warehouse__c> nearbyWarehouse =
      WarehouseUtils.findNearbyWarehouse(myLat, myLon);
     Test.stopTest();
    System.assert(nearbyWarehouse.size() == 0);
 }
 static Warehouse__c createTestWarehouse(String name, Decimal lat, Decimal lon) {
Warehouse__c w = new Warehouse__c
    (Name = name,
     Location__Latitude__s = lat,
     Location__Longitude__s = lon);
insert w;
return w;
}
      static warehouse_c createclosesttestwarehouse(){
    //ameerpet lan lat
    return(createtestwarehouse('warehouse1',17.4368,78.4439));
    }

  static warehouse_c createtestclosewarehouse(){
        //kukatpalli
        return(createwarehouse('warehouse2',17.4833,78.4167));
    }     
   
    static warehouse_c createtesttoofarwarehouse(){
    //vansthaslipuram
    return(createwarehouse('toofarwarehouse',17.3254,78.5746));
    }
}
Richard Jimenez 9Richard Jimenez 9
Hi Mukesh,
Looks like a formatting issue around the closing of your brackets and the next method

Change lines 18-19 from:
System.assert(wh.Name != tooFarWarehouse.Name);} 
           {

To:
System.assert(wh.Name != tooFarWarehouse.Name);} 
           }
}

Hope that helps,
Richard Jimenez
mukesh nanimukesh nani
thank you .but i got anther erro that is invalid tyrpe:Warehouse_c in 40th line
Pankaj_GanwaniPankaj_Ganwani
@istest
private class TestWarehouseUtils{
    
	static testMethod void testFindWarehousesWithinTwentyMiles() {
    String myLat = '17.4368';
    String myLon = '78.4439';
    Warehouse__c closestWarehouse = createClosestTestWarehouse();
   Warehouse__c closeWarehouse = createCloseTestWarehouse();
   Warehouse__c tooFarWarehouse = createTooFarTestWarehouse();
List<Warehouse__c> nearbyWarehouse =
    WarehouseUtils.findNearbyWarehouse(myLat, myLon);
    Test.stopTest();
System.assert(nearbyWarehouse.size() == 2);
System.assert(nearbyWarehouse[0].Name == closestWarehouse.Name);
System.assert(nearbyWarehouse[1].Name == closeWarehouse.Name);
    if(0 < nearbyWarehouse.size()) {
    for (Warehouse__c wh : nearbyWarehouse) {
        System.assert(wh.Name != tooFarWarehouse.Name);}
}
}		
           
   static  testMethod void testDontFindWarehousesFurtherThanTwentyMiles() {
      String myLat = '17.3254';
      String myLon = '78.5746';
    Warehouse__c closestWarehouse = createClosestTestWarehouse();
    Warehouse__c closeWarehouse = createCloseTestWarehouse();
   Warehouse__c tooFarWarehouse = createTooFarTestWarehouse();
    Test.startTest();
List<Warehouse__c> nearbyWarehouse =
      WarehouseUtils.findNearbyWarehouse(myLat, myLon);
     Test.stopTest();
    System.assert(nearbyWarehouse.size() == 0);
 }
 static Warehouse__c createTestWarehouse(String name, Decimal lat, Decimal lon) {
Warehouse__c w = new Warehouse__c
    (Name = name,
     Location__Latitude__s = lat,
     Location__Longitude__s = lon);
insert w;
return w;
}
      static warehouse_c createclosesttestwarehouse(){
    //ameerpet lan lat
    return(createtestwarehouse('warehouse1',17.4368,78.4439));
    }

  static warehouse_c createtestclosewarehouse(){
        //kukatpalli
        return(createwarehouse('warehouse2',17.4833,78.4167));
    }     
   
    static warehouse_c createtesttoofarwarehouse(){
    //vansthaslipuram
    return(createwarehouse('toofarwarehouse',17.3254,78.5746));
    }
}

There were some additional braces in your class which were causing issue. Try with above code.
Richard Jimenez 9Richard Jimenez 9
Change warehouse_c to warehouse__c.
Make sure this custom object exists.
Pankaj_GanwaniPankaj_Ganwani
Use warehouse__c at line no 42, 47 and 52 as return type, since we are using custom object.
mukesh nanimukesh nani
still same error is coming error is - Invalid type: warehouse_c
Pankaj_GanwaniPankaj_Ganwani
Just check whether Warehouse object exist in org or not? If it does not exist, then firstly create it with the fields which have been referred in the code and then try to save the class. I made some edits in your code.
 
@istest
private class TestWarehouseUtils{
    
	static testMethod void testFindWarehousesWithinTwentyMiles() {
    String myLat = '17.4368';
    String myLon = '78.4439';
    Warehouse__c closestWarehouse = createClosestTestWarehouse();
   Warehouse__c closeWarehouse = createCloseTestWarehouse();
   Warehouse__c tooFarWarehouse = createTooFarTestWarehouse();
List<Warehouse__c> nearbyWarehouse =
    WarehouseUtils.findNearbyWarehouse(myLat, myLon);
    Test.stopTest();
System.assert(nearbyWarehouse.size() == 2);
System.assert(nearbyWarehouse[0].Name == closestWarehouse.Name);
System.assert(nearbyWarehouse[1].Name == closeWarehouse.Name);
    if(0 < nearbyWarehouse.size()) {
    for (Warehouse__c wh : nearbyWarehouse) {
        System.assert(wh.Name != tooFarWarehouse.Name);}
}
}		
           
   static  testMethod void testDontFindWarehousesFurtherThanTwentyMiles() {
      String myLat = '17.3254';
      String myLon = '78.5746';
    Warehouse__c closestWarehouse = createClosestTestWarehouse();
    Warehouse__c closeWarehouse = createCloseTestWarehouse();
   Warehouse__c tooFarWarehouse = createTooFarTestWarehouse();
    Test.startTest();
List<Warehouse__c> nearbyWarehouse =
      WarehouseUtils.findNearbyWarehouse(myLat, myLon);
     Test.stopTest();
    System.assert(nearbyWarehouse.size() == 0);
 }
 static Warehouse__c createTestWarehouse(String name, Decimal lat, Decimal lon) {
Warehouse__c w = new Warehouse__c
    (Name = name,
     Location__Latitude__s = lat,
     Location__Longitude__s = lon);
insert w;
return w;
}
      static Warehouse__c createclosesttestwarehouse(){
    //ameerpet lan lat
    return(createtestwarehouse('warehouse1',17.4368,78.4439));
    }

  static Warehouse__c createtestclosewarehouse(){
        //kukatpalli
        return(createwarehouse('warehouse2',17.4833,78.4167));
    }     
   
    static Warehouse__c createtesttoofarwarehouse(){
    //vansthaslipuram
    return(createwarehouse('toofarwarehouse',17.3254,78.5746));
    }
}