Text Share Online

@IsTest
private class IFB_ALL_FileDownloadQueueableTest {

/**
* Mock class for successful file download
*/
private class SuccessMock implements HttpCalloutMock {
public HTTPResponse respond(HTTPRequest req) {
HttpResponse res = new HttpResponse();
res.setStatusCode(200);
res.setStatus('OK');
res.setBodyAsBlob(Blob.valueOf('Test File Content'));
return res;
}
}

/**
* Mock class for failed file download
*/
private class FailureMock implements HttpCalloutMock {
public HTTPResponse respond(HTTPRequest req) {
HttpResponse res = new HttpResponse();
res.setStatusCode(500);
res.setStatus('Internal Server Error');
return res;
}
}

@IsTest
static void testSuccessfulFileDownload() {

// Create parent record
Account acc = new Account(Name = 'Test Account');
insert acc;

Test.setMock(HttpCalloutMock.class, new SuccessMock());

Test.startTest();

Id jobId = IFB_ALL_FileDownloadQueueable.enqueueJob(
'https://test-url.com/file.pdf',
'TestFile.pdf',
acc.Id
);

Test.stopTest();

List versions = [
SELECT Id,
Title,
ContentDocumentId
FROM ContentVersion
WHERE Title = 'TestFile.pdf'
];

List links = [
SELECT Id,
LinkedEntityId
FROM ContentDocumentLink
WHERE ContentDocumentId = :versions[0].ContentDocumentId
];

}

@IsTest
static void testFailedCallout() {

Account acc = new Account(Name = 'Test Account');
insert acc;

Test.setMock(HttpCalloutMock.class, new FailureMock());

Test.startTest();

try {
System.enqueueJob(
new IFB_ALL_FileDownloadQueueable(
'https://test-url.com/file.pdf',
'TestFile.pdf',
acc.Id
)
);

Test.stopTest();
} catch (Exception ex) {
System.assert(
ex.getMessage().contains('Failed to download file'),
'Expected callout failure message'
);
}
}

@IsTest
static void testEnqueueJobMethod() {

Account acc = new Account(Name = 'Test Account');
insert acc;

Test.setMock(HttpCalloutMock.class, new SuccessMock());

Test.startTest();

Id jobId = IFB_ALL_FileDownloadQueueable.enqueueJob(
'https://test-url.com/sample.txt',
'sample.txt',
acc.Id
);

Test.stopTest();
}

@IsTest
static void testBlankPreSignedUrl() {

Account acc = new Account(Name = 'Test Account');
insert acc;

Test.startTest();

try {
System.enqueueJob(
new IFB_ALL_FileDownloadQueueable(
'',
'TestFile.pdf',
acc.Id
)
);

Test.stopTest();
} catch (Exception e) {
// Expected
}
}

@IsTest
static void testBlankFileName() {

Account acc = new Account(Name = 'Test Account');
insert acc;

Test.startTest();

try {
System.enqueueJob(
new IFB_ALL_FileDownloadQueueable(
'https://test-url.com/file.pdf',
'',
acc.Id
)
);

Test.stopTest();
} catch (Exception e) {
// Expected
}
}

@IsTest
static void testNullRecordId() {

Test.startTest();

try {
System.enqueueJob(
new IFB_ALL_FileDownloadQueueable(
'https://test-url.com/file.pdf',
'TestFile.pdf',
null
)
);

Test.stopTest();
} catch (Exception e) {
// Expected
}
}
}
  • java
  • 1h
Share This: