7. Test Callout Logic | Apex Specialist Superbadge | ApexSalesforceTutorials.com

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ก.พ. 2024
  • #salesforce #trailhead #codding #superbadge
    Please find the code in comment.
    7th Part Of Apex Specialist Superbadge
    Solution of Test Callout Logic of Apex Specialist Superbadge.
    You can ask for solution of any trailhead in comment section.
    Please do Like, Subscribe, Comment, & Share with your fellow mates.
    The content is for educational purposes and guidance for programmers.

ความคิดเห็น • 5

  • @apexsalesforcetutorials
    @apexsalesforcetutorials  5 หลายเดือนก่อน +2

    Code:
    ************************** WarehouseCalloutService *******************
    public with sharing class WarehouseCalloutService {
    private static final String WAREHOUSE_URL = 'th-superbadge-apex.herokuapp.com/equipment';

    //@future(callout=true)
    public static void runWarehouseEquipmentSync(){

    Http http = new Http();
    HttpRequest request = new HttpRequest();

    request.setEndpoint(WAREHOUSE_URL);
    request.setMethod('GET');
    HttpResponse response = http.send(request);


    List warehouseEq = new List();

    if (response.getStatusCode() == 200){
    List jsonResponse = (List)JSON.deserializeUntyped(response.getBody());
    System.debug(response.getBody());

    for (Object eq : jsonResponse){
    Map mapJson = (Map)eq;
    Product2 myEq = new Product2();
    myEq.Replacement_Part__c = (Boolean) mapJson.get('replacement');
    myEq.Name = (String) mapJson.get('name');
    myEq.Maintenance_Cycle__c = (Integer) mapJson.get('maintenanceperiod');
    myEq.Lifespan_Months__c = (Integer) mapJson.get('lifespan');
    myEq.Cost__c = (Decimal) mapJson.get('lifespan');
    myEq.Warehouse_SKU__c = (String) mapJson.get('sku');
    myEq.Current_Inventory__c = (Double) mapJson.get('quantity');
    warehouseEq.add(myEq);
    }

    if (warehouseEq.size() > 0){
    upsert warehouseEq;
    System.debug('Your equipment was synced with the warehouse one');
    System.debug(warehouseEq);
    }

    }
    }
    }
    ******************************** WarehouseCalloutServiceTest ****************
    @isTest
    private class WarehouseCalloutServiceTest {
    @isTest
    static void testWareHouseCallout(){
    Test.startTest();
    // implement mock callout test here
    Test.setMock(HTTPCalloutMock.class, new WarehouseCalloutServiceMock());
    WarehouseCalloutService.runWarehouseEquipmentSync();
    Test.stopTest();
    System.assertEquals(1, [SELECT count() FROM Product2]);
    }
    }
    ******************************* WarehouseCalloutServiceMock *******************
    @isTest
    global class WarehouseCalloutServiceMock implements HttpCalloutMock {
    // implement http mock callout
    global static HttpResponse respond(HttpRequest request){

    System.assertEquals('th-superbadge-apex.herokuapp.com/equipment', request.getEndpoint());
    System.assertEquals('GET', request.getMethod());

    // Create a fake response
    HttpResponse response = new HttpResponse();
    response.setHeader('Content-Type', 'application/json');
    response.setBody('[{"_id":"55d66226726b611100aaf741","replacement":false,"quantity":5,"name":"Generator 1000 kW","maintenanceperiod":365,"lifespan":120,"cost":5000,"sku":"100003"}]');
    response.setStatusCode(200);
    return response;
    }
    }

  • @hrideshtaldar
    @hrideshtaldar 5 หลายเดือนก่อน +3

    nice

  • @HelloWorld-nv4lg
    @HelloWorld-nv4lg 5 หลายเดือนก่อน +3

    Nice video