@isTest public with sharing class UpdateAssetImageRestTest { /** *@description 造数据,一个清单,二个一览,每个一览下7条明细 */ Static String repId; Static String assId; // 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()); List lra = new List(); 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()); List lra = new List(); 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(){ 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 lra = new List(); // 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 static void setupTestData() { String rectHp = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(); String rectSct = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_Class_GI').getRecordTypeId(); String rectDpt = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_GI').getRecordTypeId(); Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', Work_Location__c = '北京', CommunityNickname = 'hpOwner', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id); insert hpOwner; User hpOwner2 = new User(Test_staff__c = true, LastName = 'hp2', FirstName = 'owner', Alias = 'hp2', Work_Location__c = '重庆', CommunityNickname = 'hpOwner2', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner2@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id); insert hpOwner2; StaticParameter.MaintenanceContractHpDeptUpdTrigger = true; FixtureUtil.SkipTrigger = true; // 病院作成 Account hp = new Account(RecordTypeId = rectHp, Name = 'hp', OwnerId = hpOwner.Id); hp.FSE_GI_Main_Leader__c = hpOwner.Id; hp.FSE_SP_Main_Leader__c = hpOwner2.Id; insert hp; Account dc = [select Id, Name, RecordType_DeveloperName__c, Account2__c from Account where ParentId = :hp.Id and RecordType_DeveloperName__c = 'Department_Class_GI']; // 診療科を作る Account dpt = new Account(RecordTypeId = rectDpt); dpt.Name = '*'; dpt.Department_Name__c = 'TestDepart'; dpt.ParentId = dc.Id; dpt.Department_Class__c = dc.Id; dpt.Hospital__c = hp.Id; insert dpt; // 納入機器を作成する Asset asset = new Asset(); asset.Name = 'asset1'; asset.AccountId = dpt.Id; asset.Department_Class__c = dc.Id; asset.Hospital__c = hp.Id; asset.SerialNumber = '7450035'; // asset.ProductCode = 'N1063441'; asset.Product_Serial_No__c = 'N1063441:7450035'; insert asset; assId = asset.Id; Repair__c repair = new Repair__c(); repair.Account__c = dpt.Id; repair.Department_Class__c = dc.Id; repair.Hospital__c = hp.Id; repair.Delivered_Product__c = asset.Id; repair.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today().addDays(0); // 维修合同判断日がサービス契約の中間辺りの日付 repair.FSE_Work_Location__c = '上海'; repair.Repair_Returned_To_HP_Date__c = Date.today(); insert repair; repId = repair.Id; } static testMethod void testDoPost1(){ setupTestData(); RestRequest req = new RestRequest(); RestResponse res = new RestResponse(); req.requestURI = '/services/apexrest/v1/cans/'; req.httpMethod = 'POST'; RestContext.request = req; RestContext.response = res; String linkdId = System.Label.AssetImageFolder_new; String imageAsset =String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestA'))) ; String imageSerial = String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestB'))); Asset asset = [SELECT Id,Product_Serial_No__c from Asset WHERE Id =:assId]; Repair__c rep = [SELECT Id FROM Repair__c WHERE id =: repId]; String repairDate = String.valueOf(Date.today().format()); String remarkText = 'text'; Test.startTest(); ContentVersion versionA = new ContentVersion(); versionA.VersionData = EncodingUtil.base64Decode(imageAsset); versionA.Title = asset.Product_Serial_No__c + '_Asset'; versionA.PathOnClient = asset.Product_Serial_No__c + '_Asset'+'.jpg'; insert versionA; versionA = [SELECT Id,VersionData,Title,ContentDocumentId From ContentVersion WHERE Id =: versionA.Id]; ContentDocumentLink link = new ContentDocumentLink(); link.ContentDocumentId = versionA.ContentDocumentId; link.LinkedEntityId = linkdId; link.ShareType = 'I'; link.Visibility = 'AllUsers'; StaticParameter.ContentDocumentLink = false; StaticParameter.ContentDocumentTrigger = false; insert link; ContentVersion versionS = new ContentVersion(); versionS.VersionData = EncodingUtil.base64Decode(imageSerial); versionS.Title = asset.Product_Serial_No__c + '_Serial'; versionS.PathOnClient = asset.Product_Serial_No__c + '_Serial'+'.jpg'; insert versionS; versionS = [SELECT Id,VersionData,Title,ContentDocumentId From ContentVersion WHERE Id =: versionS.Id]; ContentDocumentLink linkS = new ContentDocumentLink(); linkS.ContentDocumentId = versionS.ContentDocumentId; linkS.LinkedEntityId = linkdId; linkS.ShareType = 'I'; linkS.Visibility = 'AllUsers'; StaticParameter.ContentDocumentLink = false; StaticParameter.ContentDocumentTrigger = false; insert linkS; // UpdateAssetImageRest.doPost(imageAsset, imageSerial,asset.Product_Serial_No__c,null,null,remarkText); UpdateAssetImageRest.doPost(imageAsset, imageSerial ,asset.Product_Serial_No__c ,rep.id ,repairDate ,remarkText); Test.stopTest(); } static testMethod void testDoPost2(){ setupTestData(); RestRequest req = new RestRequest(); RestResponse res = new RestResponse(); req.requestURI = '/services/apexrest/v1/cans/'; req.httpMethod = 'POST'; RestContext.request = req; RestContext.response = res; String imageAsset ='' ; String imageSerial = ''; Asset asset = [SELECT Id,Product_Serial_No__c from Asset WHERE Id =:assId]; Repair__c rep = [SELECT Id FROM Repair__c WHERE id =: repId]; String repairDate = String.valueOf(Date.today()); String remarkText = 'text'; String id = System.Label.ProductImageFolder_New; Test.startTest(); UpdateAssetImageRest.doPost('', '',asset.Product_Serial_No__c,asset.id,repairDate,remarkText); UpdateAssetImageRest.doPost('', '',asset.Product_Serial_No__c,rep.id,repairDate,remarkText); repairDate = String.valueOf(Date.today().format()); UpdateAssetImageRest.doPost('', '',asset.Product_Serial_No__c+'1',rep.id,repairDate,remarkText); Test.stopTest(); } // static testMethod void testDoPost1_1(){ // setupTestData(); // RestRequest req = new RestRequest(); // RestResponse res = new RestResponse(); // req.requestURI = '/services/apexrest/v1/cans/'; // req.httpMethod = 'POST'; // RestContext.request = req; // RestContext.response = res; // String imageAsset =String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestA'))) ; // String imageSerial = String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestB'))); // Asset asset = [SELECT Id,Product_Serial_No__c from Asset WHERE Id =:assId]; // Repair__c rep = [SELECT Id FROM Repair__c WHERE id =: repId]; // String repairDate = String.valueOf(Date.today().format()); // String remarkText = 'text'; // Test.startTest(); // ContentVersion version = new ContentVersion(); // version.VersionData =EncodingUtil.base64Decode('test3'); // version.Title = asset.Product_Serial_No__c+ '_Asset'; // version.PathOnClient = asset.Product_Serial_No__c+ '_Asset'+'.jpg'; // insert version; // // UpdateAssetImageRest.doPost(imageAsset, imageSerial,asset.Product_Serial_No__c,null,null,remarkText); // UpdateAssetImageRest.doPost(imageAsset, imageSerial ,asset.Product_Serial_No__c ,rep.id ,repairDate ,remarkText); // Test.stopTest(); // } // static testMethod void testDoPost1_2(){ // setupTestData(); // RestRequest req = new RestRequest(); // RestResponse res = new RestResponse(); // req.requestURI = '/services/apexrest/v1/cans/'; // req.httpMethod = 'POST'; // RestContext.request = req; // RestContext.response = res; // String imageAsset =String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestA'))) ; // String imageSerial = String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestB'))); // Asset asset = [SELECT Id,Product_Serial_No__c from Asset WHERE Id =:assId]; // Repair__c rep = [SELECT Id FROM Repair__c WHERE id =: repId]; // String repairDate = String.valueOf(Date.today().format()); // String remarkText = 'text'; // Test.startTest(); // // UpdateAssetImageRest.doPost(imageAsset, imageSerial,asset.Product_Serial_No__c,null,null,remarkText); // UpdateAssetImageRest.doPost('', imageSerial ,asset.Product_Serial_No__c ,asset.id ,repairDate ,remarkText); // Test.stopTest(); // } // static testMethod void testDoPost1_3(){ // setupTestData(); // RestRequest req = new RestRequest(); // RestResponse res = new RestResponse(); // req.requestURI = '/services/apexrest/v1/cans/'; // req.httpMethod = 'POST'; // RestContext.request = req; // RestContext.response = res; // String imageAsset =String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestA'))) ; // String imageSerial = String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestB'))); // Asset asset = [SELECT Id,Product_Serial_No__c from Asset WHERE Id =:assId]; // Repair__c rep = [SELECT Id FROM Repair__c WHERE id =: repId]; // String repairDate = String.valueOf(Date.today().format()); // String remarkText = 'text'; // Test.startTest(); // ContentVersion version1 = new ContentVersion(); // version1.VersionData =EncodingUtil.base64Decode('test3'); // version1.Title = asset.Product_Serial_No__c + '_Serial'; // version1.PathOnClient = asset.Product_Serial_No__c+ '_Serial'+'.jpg'; // insert version1; // // UpdateAssetImageRest.doPost(imageAsset, imageSerial,asset.Product_Serial_No__c,null,null,remarkText); // UpdateAssetImageRest.doPost('', imageSerial ,asset.Product_Serial_No__c ,rep.id ,repairDate ,remarkText); // Test.stopTest(); // } // static testMethod void testDoPost2(){ // setupTestData(); // RestRequest req = new RestRequest(); // RestResponse res = new RestResponse(); // req.requestURI = '/services/apexrest/v1/cans/'; // req.httpMethod = 'POST'; // RestContext.request = req; // RestContext.response = res; // String imageAsset ='' ; // String imageSerial = String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestB'))); // Asset asset = [SELECT Id,Product_Serial_No__c from Asset WHERE Id =:assId]; // Repair__c rep = [SELECT Id FROM Repair__c WHERE id =: repId]; // String repairDate = String.valueOf(Date.today().format()); // String remarkText = 'text'; // String id = System.Label.ProductImageFolder_New; // Test.startTest(); // // UpdateAssetImageRest.doPost(imageAsset, imageSerial,asset.Product_Serial_No__c,null,null,remarkText); // UpdateAssetImageRest.doPost('', '',asset.Product_Serial_No__c,rep.id,repairDate,remarkText); // Test.stopTest(); // } // static testMethod void testDoPost2_2(){ // setupTestData(); // RestRequest req = new RestRequest(); // RestResponse res = new RestResponse(); // req.requestURI = '/services/apexrest/v1/cans/'; // req.httpMethod = 'POST'; // RestContext.request = req; // RestContext.response = res; // String imageAsset ='' ; // String imageSerial = String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestB'))); // Asset asset = [SELECT Id,Product_Serial_No__c from Asset WHERE Id =:assId]; // Repair__c rep = [SELECT Id FROM Repair__c WHERE id =: repId]; // String repairDate = String.valueOf(Date.today()); // String remarkText = 'text'; // String id = System.Label.ProductImageFolder_New; // Test.startTest(); // // UpdateAssetImageRest.doPost(imageAsset, imageSerial,asset.Product_Serial_No__c,null,null,remarkText); // UpdateAssetImageRest.doPost('', '',asset.Product_Serial_No__c,rep.id,repairDate,remarkText); // Test.stopTest(); // } // static testMethod void testDoPost3(){ // setupTestData(); // RestRequest req = new RestRequest(); // RestResponse res = new RestResponse(); // req.requestURI = '/services/apexrest/v1/cans/'; // req.httpMethod = 'POST'; // RestContext.request = req; // RestContext.response = res; // String imageAsset ='' ; // String imageSerial = String.valueOf(EncodingUtil.base64Encode(Blob.valueof('TestB'))); // Asset asset = [SELECT Id,Product_Serial_No__c from Asset WHERE Id =:assId]; // String remarkText = 'text'; // Test.startTest(); // // UpdateAssetImageRest.doPost(imageAsset, imageSerial,asset.Product_Serial_No__c,null,null,remarkText); // UpdateAssetImageRest.doPost('', imageSerial,asset.Product_Serial_No__c,'','',remarkText); // Test.stopTest(); // } }