429 lines
13 KiB
OpenEdge ABL
429 lines
13 KiB
OpenEdge ABL
@IsTest
|
|
public with sharing class SharePointFeatureTest {
|
|
@isTest
|
|
static void testGetAllSites_MyDriveTrue() {
|
|
|
|
Map<String, Object> params = new Map<String, Object>();
|
|
params.put('isServiceMode', false);
|
|
params.put('myDrive', true);
|
|
params.put('isRootFolder', true);
|
|
params.put('folderId', 'testFolder');
|
|
params.put('accessToken', 'testToken');
|
|
params.put('level', 'getAllSite');
|
|
|
|
System.debug('Params >>> ' + params);
|
|
|
|
Test.startTest();
|
|
|
|
SharePointFeature feature = new SharePointFeature();
|
|
OperationResult result = feature.listFiles(params);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('Result >>> ' + result);
|
|
|
|
System.assert(result != null);
|
|
// Case 2 : getSites
|
|
params.put('level', 'getSites');
|
|
OperationResult res2 = feature.listFiles(params);
|
|
System.debug('Result getSites: ' + res2);
|
|
System.assertNotEquals(null, res2);
|
|
|
|
// Case 3 : getDocumentDrive
|
|
params.put('level', 'getDocumentDrive');
|
|
OperationResult res3 = feature.listFiles(params);
|
|
System.debug('Result getDocumentDrive: ' + res3);
|
|
System.assertNotEquals(null, res3);
|
|
|
|
// Case 4 : getFilesInsideDocDrive
|
|
params.put('level', 'getFilesInsideDocDrive');
|
|
OperationResult res4 = feature.listFiles(params);
|
|
System.debug('Result getFilesInsideDocDrive: ' + res4);
|
|
System.assertNotEquals(null, res4);
|
|
|
|
// Case 5 : folderId blank
|
|
params.put('folderId', '');
|
|
params.put('level', 'getDocumentDrive');
|
|
OperationResult res5 = feature.listFiles(params);
|
|
System.debug('Result folderId blank: ' + res5);
|
|
System.assertNotEquals(null, res5);
|
|
|
|
// Case 6 : Invalid level
|
|
params.put('level', 'invalidLevel');
|
|
OperationResult res6 = feature.listFiles(params);
|
|
System.debug('Result invalid level: ' + res6);
|
|
System.assertNotEquals(null, res6);
|
|
|
|
}
|
|
|
|
|
|
@isTest
|
|
static void testLinkFiles() {
|
|
|
|
// Create parent record
|
|
Account acc = new Account(Name = 'Test Account');
|
|
insert acc;
|
|
|
|
System.debug('Created Account Id >>> ' + acc.Id);
|
|
// Create Linked Folder record
|
|
HIC_FilesME__Linked_Folder__c folder = new HIC_FilesME__Linked_Folder__c(
|
|
HIC_FilesME__Linked_Record__c = acc.Id,
|
|
HIC_FilesME__External_Folder_ID__c = 'Folder123',
|
|
HIC_FilesME__Folder_Name__c = 'Test Folder',
|
|
HIC_FilesME__Folder_URL__c = 'https://testfolder.com',
|
|
HIC_FilesME__Storage_Provider__c = 'SharePoint',
|
|
HIC_FilesME__Access_Level__c = 'Public',
|
|
HIC_FilesME__Is_Active__c = true
|
|
);
|
|
|
|
insert folder;
|
|
|
|
System.debug('Inserted Folder >>> ' + folder);
|
|
|
|
Test.startTest();
|
|
|
|
SharePointFeature obj = new SharePointFeature();
|
|
OperationResult result = obj.linkFiles(acc.Id);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('OperationResult >>> ' + result);
|
|
|
|
System.assert(result != null, 'Result should not be null');
|
|
}
|
|
|
|
@isTest
|
|
static void testToLinkFiles() {
|
|
|
|
// Create parent record
|
|
Account acc = new Account(Name = 'Test Account');
|
|
insert acc;
|
|
|
|
System.debug('Account Id >>> ' + acc.Id);
|
|
|
|
// Prepare folder details JSON
|
|
Map<String, Object> folderMap = new Map<String, Object>();
|
|
folderMap.put('id', 'Folder123');
|
|
folderMap.put('name', 'Test Folder');
|
|
folderMap.put('url', 'https://testfolder.com');
|
|
|
|
String folderDetails = JSON.serialize(folderMap);
|
|
System.debug('FolderDetails JSON >>> ' + folderDetails);
|
|
|
|
Test.startTest();
|
|
|
|
SharePointFeature obj = new SharePointFeature();
|
|
OperationResult result = obj.toLinkFiles(
|
|
acc.Id,
|
|
folderDetails,
|
|
'SharePoint'
|
|
);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('OperationResult >>> ' + result);
|
|
// Verify record inserted
|
|
List<HIC_FilesME__Linked_Folder__c> folders =
|
|
[SELECT Id, HIC_FilesME__Folder_Name__c
|
|
FROM HIC_FilesME__Linked_Folder__c
|
|
WHERE HIC_FilesME__Linked_Record__c = :acc.Id];
|
|
|
|
System.debug('Inserted folders >>> ' + folders);
|
|
|
|
System.assertEquals(1, folders.size());
|
|
System.assertEquals('Test Folder', folders[0].HIC_FilesME__Folder_Name__c);
|
|
}
|
|
|
|
|
|
// Mock class for HTTP callout
|
|
public class CreateFolderMock implements HttpCalloutMock {
|
|
public HTTPResponse respond(HTTPRequest req) {
|
|
HttpResponse res = new HttpResponse();
|
|
res.setHeader('Content-Type', 'application/json');
|
|
res.setStatusCode(201);
|
|
|
|
String body = '{"id":"12345","name":"Test Folder"}';
|
|
res.setBody(body);
|
|
|
|
System.debug('Mock Request Endpoint >>> ' + req.getEndpoint());
|
|
System.debug('Mock Request Body >>> ' + req.getBody());
|
|
|
|
return res;
|
|
}
|
|
}
|
|
|
|
@isTest
|
|
static void testCreateFolderSuccess() {
|
|
|
|
Test.setMock(HttpCalloutMock.class, new CreateFolderMock());
|
|
|
|
Map<String, Object> params = new Map<String, Object>();
|
|
params.put('parentFolderId', 'drive123:abc:item123');
|
|
params.put('isServiceMode', false);
|
|
params.put('folderName', 'UnitTestFolder');
|
|
params.put('accessToken', 'dummy_access_token');
|
|
|
|
System.debug('params >>> ' + params);
|
|
|
|
Test.startTest();
|
|
SharePointFeature feature = new SharePointFeature();
|
|
OperationResult result = feature.createFolder(params);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('OperationResult >>> ' + result);
|
|
|
|
System.assertNotEquals(null, result);
|
|
}
|
|
|
|
|
|
// Mock class for HTTP DELETE callout
|
|
public class DeleteFileMock implements HttpCalloutMock {
|
|
|
|
public HTTPResponse respond(HTTPRequest req) {
|
|
|
|
HttpResponse res = new HttpResponse();
|
|
res.setHeader('Content-Type','application/json');
|
|
res.setStatusCode(204); // success for delete
|
|
|
|
System.debug('Mock Endpoint >>> ' + req.getEndpoint());
|
|
System.debug('Mock Method >>> ' + req.getMethod());
|
|
|
|
return res;
|
|
}
|
|
}
|
|
|
|
|
|
@isTest
|
|
static void testDeleteFileSuccess() {
|
|
|
|
Test.setMock(HttpCalloutMock.class, new DeleteFileMock());
|
|
|
|
Map<String,Object> params = new Map<String,Object>();
|
|
params.put('fileId','drive123:site123:item123');
|
|
params.put('accessToken','dummyToken');
|
|
params.put('isServiceMode',false);
|
|
|
|
System.debug('Params >>> ' + params);
|
|
|
|
Test.startTest();
|
|
SharePointFeature feature = new SharePointFeature();
|
|
OperationResult result = feature.deleteFile(params);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('Result >>> ' + result);
|
|
|
|
System.assertNotEquals(null,result);
|
|
}
|
|
|
|
public class RenameFileMock implements HttpCalloutMock {
|
|
|
|
public HTTPResponse respond(HTTPRequest req) {
|
|
|
|
HttpResponse res = new HttpResponse();
|
|
res.setHeader('Content-Type','application/json');
|
|
res.setStatusCode(200);
|
|
res.setBody('{"name":"RenamedFile.txt"}');
|
|
|
|
System.debug('Mock Endpoint >>> ' + req.getEndpoint());
|
|
System.debug('Mock Method >>> ' + req.getMethod());
|
|
System.debug('Mock Body >>> ' + req.getBody());
|
|
|
|
return res;
|
|
}
|
|
}
|
|
|
|
@isTest
|
|
static void testRenameFileSuccess() {
|
|
|
|
Test.setMock(HttpCalloutMock.class, new RenameFileMock());
|
|
|
|
Map<String,Object> params = new Map<String,Object>();
|
|
params.put('fileId','drive123:site123:item123');
|
|
params.put('newFileName','RenamedFile.txt');
|
|
params.put('accessToken','dummyToken');
|
|
params.put('isServiceMode',false);
|
|
|
|
System.debug('Params >>> ' + params);
|
|
|
|
Test.startTest();
|
|
SharePointFeature feature = new SharePointFeature();
|
|
OperationResult result = feature.renameFile(params);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('Rename Success Result >>> ' + result);
|
|
|
|
System.assertNotEquals(null,result);
|
|
}
|
|
|
|
@isTest
|
|
static void testRenameFileMissingParams() {
|
|
|
|
Map<String,Object> params = new Map<String,Object>();
|
|
params.put('fileId',null);
|
|
params.put('newFileName',null);
|
|
|
|
SharePointFeature feature = new SharePointFeature();
|
|
|
|
Test.startTest();
|
|
OperationResult result = feature.renameFile(params);
|
|
Test.stopTest();
|
|
|
|
System.debug('Missing Params Result >>> ' + result);
|
|
|
|
System.assertNotEquals(null,result);
|
|
}
|
|
|
|
@isTest
|
|
static void testRenameFileInvalidFileId() {
|
|
|
|
Map<String,Object> params = new Map<String,Object>();
|
|
params.put('fileId','invalidId');
|
|
params.put('newFileName','Test.txt');
|
|
|
|
SharePointFeature feature = new SharePointFeature();
|
|
|
|
Test.startTest();
|
|
OperationResult result = feature.renameFile(params);
|
|
Test.stopTest();
|
|
|
|
System.debug('Invalid FileId Result >>> ' + result);
|
|
|
|
System.assertNotEquals(null,result);
|
|
}
|
|
|
|
|
|
// Mock class for PATCH callout
|
|
public class MoveFileMock implements HttpCalloutMock {
|
|
|
|
public HTTPResponse respond(HTTPRequest req) {
|
|
|
|
HttpResponse res = new HttpResponse();
|
|
res.setHeader('Content-Type', 'application/json');
|
|
res.setStatusCode(200);
|
|
res.setBody('{"success":"File moved successfully"}');
|
|
|
|
System.debug('Mock Endpoint >>> ' + req.getEndpoint());
|
|
System.debug('Mock Method >>> ' + req.getMethod());
|
|
System.debug('Mock Body >>> ' + req.getBody());
|
|
|
|
return res;
|
|
}
|
|
}
|
|
|
|
|
|
@isTest
|
|
static void testMoveFileAndFolderSuccess() {
|
|
|
|
Test.setMock(HttpCalloutMock.class, new MoveFileMock());
|
|
|
|
Map<String,Object> params = new Map<String,Object>();
|
|
params.put('fileId','drive123:site123:item123');
|
|
params.put('newFolderId','drive123:site123:newParent123');
|
|
params.put('oldFolderId','drive123:site123:oldParent123');
|
|
params.put('accessToken','dummyToken');
|
|
params.put('isServiceMode',false);
|
|
|
|
System.debug('Move Params >>> ' + params);
|
|
|
|
Test.startTest();
|
|
|
|
SharePointFeature feature = new SharePointFeature();
|
|
OperationResult result = feature.moveFileAndFolder(params);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('Move Success Result >>> ' + result);
|
|
|
|
System.assertNotEquals(null, result);
|
|
}
|
|
|
|
public class DownloadFileMock implements HttpCalloutMock {
|
|
|
|
public HTTPResponse respond(HTTPRequest req) {
|
|
|
|
HttpResponse res = new HttpResponse();
|
|
res.setHeader('Content-Type', 'application/octet-stream');
|
|
res.setStatusCode(200);
|
|
|
|
Blob fileData = Blob.valueOf('Dummy File Content');
|
|
res.setBodyAsBlob(fileData);
|
|
|
|
System.debug('Mock Endpoint >>> ' + req.getEndpoint());
|
|
System.debug('Mock Method >>> ' + req.getMethod());
|
|
|
|
return res;
|
|
}
|
|
}
|
|
|
|
|
|
@isTest
|
|
static void testDownloadFileSuccess() {
|
|
|
|
Test.setMock(HttpCalloutMock.class, new DownloadFileMock());
|
|
|
|
Map<String,Object> params = new Map<String,Object>();
|
|
params.put('fileId','drive123:site123:item123');
|
|
params.put('accessToken','dummyAccessToken');
|
|
params.put('isServiceMode',false);
|
|
|
|
System.debug('Download Params >>> ' + params);
|
|
|
|
Test.startTest();
|
|
SharePointFeature feature = new SharePointFeature();
|
|
OperationResult result = feature.downloadFile(params);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('Download Result >>> ' + result);
|
|
|
|
System.assertNotEquals(null,result);
|
|
}
|
|
|
|
|
|
|
|
|
|
@isTest
|
|
static void testEmailFileSuccess(){
|
|
|
|
// Create Org Wide Email Address
|
|
// OrgWideEmailAddress owe = new OrgWideEmailAddress();
|
|
// owe.Address = 'test@test.com';
|
|
// owe.DisplayName = 'Test Email';
|
|
// owe.IsAllowAllProfiles = true;
|
|
// insert owe;
|
|
|
|
Map<String,Object> mailDetails = new Map<String,Object>();
|
|
// mailDetails.put('fromUser', owe.Id);
|
|
mailDetails.put('toUser', 'receiver@test.com');
|
|
mailDetails.put('ccUser', 'cc@test.com');
|
|
mailDetails.put('bccUser', 'bcc@test.com');
|
|
mailDetails.put('subject', 'Test Subject');
|
|
mailDetails.put('body', '<p>This is test body</p>');
|
|
|
|
Map<String,Object> params = new Map<String,Object>();
|
|
params.put('isServiceMode', false);
|
|
params.put('fileId', 'drive123:site123:item123');
|
|
params.put('fileName', 'TestFile.txt');
|
|
params.put('toSendFileNameMimeType', 'text/plain');
|
|
params.put('mailDetails', mailDetails);
|
|
System.debug('Params >>> ' + params);
|
|
|
|
Test.startTest();
|
|
|
|
SharePointFeature feature = new SharePointFeature();
|
|
OperationResult result = feature.emailFile(params);
|
|
|
|
Test.stopTest();
|
|
|
|
System.debug('Email Result >>> ' + result);
|
|
|
|
System.assertNotEquals(null,result);
|
|
}
|
|
|
|
|
|
|
|
|
|
} |