@isTest
public with sharing class Batch_FixDocumentToFilesTest {

    
        // AWSServiceTool2没上线就把这部分注释 start 20220408
//    @TestSetup
//    static void setup(){
//        TestDataUtility.CreatePIPolicyConfigurations(new string[]{'Agency_Contact__c','Contact'});
//    } 
   
   @isTest
   static void Test1(){
       Test.setMock(HttpCalloutMock.class, new HttpMock());

       TestDataUtility.CreatePIPolicyConfigurations(new string[]{'Agency_Contact__c','Contact'});
       List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
       lra.add(new Agency_Contact__c(
       ));
       insert lra;
       Test.startTest();
       //system.debug(PIHelper.getPIIntegrationInfo('Agency_Contact__c').newEncryptUrl);
       AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
       AWSServiceTool2.EncryptPushFuture(null,null);
       Test.stopTest();
   }

  @isTest
   static void Test2(){
       Test.setMock(HttpCalloutMock.class, new HttpMock());

       TestDataUtility.CreatePIPolicyConfigurations(new string[]{'Agency_Contact__c','Contact'});
       List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
       lra.add(new Agency_Contact__c(
           Aws_Data_Id__c = '123456'
       ));
       insert lra;
       Test.startTest();
       //system.debug(PIHelper.getPIIntegrationInfo('Agency_Contact__c').newEncryptUrl);
       AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
       Test.stopTest();
   }

   @isTest
   static void Test3(){
    TestDataUtility.CreatePIPolicyConfigurations(new string[]{'Agency_Contact__c','Contact'});
       Test.setMock(HttpCalloutMock.class, new HttpMock());


       Test.startTest();
       AWSServiceTool2.EncryptPushData(new string[]{'0031000000O4Cff'});

       Test.stopTest();
   }

 //@isTest
 //  static void Test2(){
 //      Test.setMock(HttpCalloutMock.class, new HttpMock());

 //      List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
 //      lra.add(new Agency_Contact__c(
 //          Id = 'a2R1m0000007BPD',
 //          Aws_Data_Id__c = '123456'
 //      ));
 //      Test.startTest();
 //      //system.debug(PIHelper.getPIIntegrationInfo('Agency_Contact__c').newEncryptUrl);
 //      AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
 //      Test.stopTest();
 //  }
   
   class HttpMock implements HttpCalloutMock{   
           public HTTPResponse respond(HTTPRequest request) {
           // 创建一个假的回应
           System.debug('------------------------------------------------------');
           HttpResponse response = new HttpResponse();
           string body = '';
           system.debug(request.getEndpoint());
           if(request.getEndpoint().contains('token')){
               system.debug('url=token');
               response.setHeader('Content-Type', 'application/json');
         body='{ "message": "", "object": "freqfewqfewewfewfew", "status": "", "success": true, "timestamp": 0, "txId": "" }';          
           } else if(request.getEndpoint().contains('insert')){
               system.debug('url=Insert');
               response.setHeader('Content-Type', 'application/json');
         body='{ "message": "", "object": [ { "dataId": "123456", "directShippmentAddress": "", "directShippmentAddressEncrypt": "", "isDelete": 0, "phoneNumber": "", "phoneNumberEncrypt": "", "sfRecordId": "a2R1m0000007BPD" } ], "status": "", "success": true, "timestamp": 0, "txId": "" }';          
           } else if(request.getEndpoint().contains('update')){
               system.debug('url=update');
               response.setHeader('Content-Type', 'application/json');
         body='{ "message": "", "object": [ { "dataId": "123456", "directShippmentAddress": "", "directShippmentAddressEncrypt": "", "isDelete": 0, "phoneNumber": "", "phoneNumberEncrypt": "", "sfRecordId": "a2R1m0000007BPD" } ], "status": "", "success": true, "timestamp": 0, "txId": "" }';          
           } else{
             
           }
           
           response.setBody(body);
           response.setStatus('OK');
           response.setStatusCode(200);
           return response;
           // }
       }
   }
   // AWSServiceTool2没上线就把这部分注释 end
   // 202220531 ljh end

   


   @isTest(SeeAllData=true)
   static void testMethod1() {


    Document doc1 = new Document();
    doc1.Body = EncodingUtil.base64Decode('test2');
    doc1.Name = 'test1';
    doc1.Type = '.jpg';
    doc1.FolderId =  [select id from folder where name = '盘点明细备份目录'].id;
    insert doc1;

    // Document doc2 = new Document();
    // doc2.Body = EncodingUtil.base64Decode('test2');
    // doc2.Name = 'test2';
    // doc2.Type = '.jpg';
    // doc2.FolderId = [select id from folder where name = '盘点明细备份目录'].id;
    // insert doc2;

    // Document doc3 = new Document();
    // doc3.Body = EncodingUtil.base64Decode('test3');
    // doc3.Name = 'test3';
    // doc3.Type = '.jpg';
    // doc3.FolderId = [select id from folder where name = '盘点明细备份目录'].id;
    // insert doc3;

    Set<String> folderIds = new Set<String>();
    folderIds.add(doc1.FolderId);
    // folderIds.add(doc2.FolderId);
    // folderIds.add(doc3.FolderId);

    

    System.Test.startTest();
    // if(!Test.isRunningTest)
            Database.executeBatch(new Batch_FixDocumentToFiles(folderIds),10);
    System.Test.StopTest();
}

   
    
}