Как написать тестовый класс для проверки поля на вложении или вставке файла? - PullRequest
0 голосов
/ 30 апреля 2020

Ниже триггер обновляет поле на вложении или вставке файла. Может ли кто-нибудь предложить тестовый класс для этого триггера?

Может ли кто-нибудь помочь в написании класса @isTest для триггера ниже для достижения 100% завершение кода

trigger ContentDocumentLinkTrigger on ContentDocumentLink (after insert) {
if(trigger.isAfter) {
    if(trigger.isInsert) {
        ContentDocumentLinkTriggerHandler.onAfterInsert(trigger.new);
    }
}
}

вот класс

            public  class ContentDocumentLinkTriggerHandler {

            public static void onAfterInsert(list<ContentDocumentLink> lstCntLinks) {
            set<Id> setTaskIds = new set<Id>();
            list<task> lstTask=new list<task>();
            Id recordTypeId = Schema.SObjectType.Task.getRecordTypeInfosByName().get('ERT_Task_Record_Type').getRecordTypeId();

            for(ContentDocumentLink clIterator : lstCntLinks) {  
            setTaskIds.add(clIterator.LinkedEntityId);//Set all task id            
            }

            if(!setTaskIds.isEmpty()) {
                    lstTask= [SELECT Id, Name,Attachment_Indicator__c  FROM task WHERE Id IN :setTaskIds and recordtypeid=: recordTypeId ]; //Get all the task 
                }

            for(task varTsk:  lstTask){
            varTsk.Attachment_Indicator__c=true;//Set Attachment Indicator Flag true

            }
            if(lstTask.size()>0){
            update lstTask; //update task
             }
            }
            }

Заранее спасибо. Кэролин

1 Ответ

0 голосов
/ 01 мая 2020

Мы на самом деле не служба написания кода, вы можете нанять консультанта или даже опубликовать работу на https://appexchange.salesforce.com/developers (она должна быть проверена самими SF, не использовали эту часть Применим лично). Другое дело, если у вас есть конкретная проблема c, вы написали некоторый код, застряли с конкретной проблемой ...

Это должно дать вам несколько идей о том, как его можно атаковать. Никаких обещаний, которые он даже скомпилирует. Это не идеальный пиксель, нет отрицательного тестового примера (ссылка на задачу с другим типом записи не должна устанавливать флаг et c)

, но это начало.

@isTest
public with sharing class ContentDocumentLinkTriggerTest {
    @isTest
    public static void testSettingTaskFlag(){
        Task t = new Task(
            Subject = 'unit test here we go',
            RecordTypeId = Schema.SObjectType.Task.getRecordTypeInfosByName().get('ERT_Task_Record_Type').getRecordTypeId()
        );
        insert t;

        ContentVersion cv = new ContentVersion(
            Title = 'Some document',
            PathOnClient = 'some document.txt',
            VersionData = Blob.valueOf('Lorem ipsum dolor sit amet...')
        );
        insert cv;

        ContentDocument cd = [SELECT Id FROM ContentDocument WHERE LatestPublishedVersionId = :cv.Id];
        ContentDocumentLink cdl = new ContentDocumentLink(
            ContentDocumentId = cd.Id,
            LinkedEntityId = t.Id
        );

        Test.startTest();
        insert cdl;
        Test.stopTest();

        Task newTask = [SELECT Attachment_Indicator__c FROM Task WHERE Id = :t.Id];
        System.assert(newTask.Attachment_Indicator__c);
    }
}
...