2016-03-04 3 views
0

Я пытаюсь создать модуль Unit Sales для нового триггера, который я создал.Ошибка тестирования модуля Salesforce Apex

trigger SOSCreateCaseCustom on SOSSession (before insert) { 
    List<Event> aplist = new List<Event>(); 
    List<SOSSession> sosSess = Trigger.new; 
    for (SOSSession s : sosSess) { 
     try { 
      Case caseToAdd = new Case(); 
      caseToAdd.Subject = 'SOS Video Chat'; 
      if (s.ContactId != null) { 
       caseToAdd.ContactId = s.ContactId; 
      } else { 
       List<Contact> contactInfo = [SELECT Id from Contact WHERE Email = :s.AppVersion]; 
       if (!contactInfo.isEmpty()) { 
        caseToAdd.ContactId = contactInfo[0].Id; 
        s.ContactId = contactInfo[0].Id; 
       } 
      } 
      insert caseToAdd; s.CaseId = caseToAdd.Id; 
     }catch(Exception e){} 
    } 
} 

Вот мой блок тест:

@isTest 
private class SOSCreateCaseCustomTest { 
    static testMethod void validateSOSCreateCase() { 
     String caseSubject = 'SOS Video Chat'; 

     // set up case to add 
     SOSSession s = new SOSSession(); 
     insert s; 

     Case caseToAdd = new Case(Subject='SOS Video Chat'); 
     caseToAdd.ContactId = s.ContactId; 
     insert caseToAdd; 

     Case ca = [SELECT Subject, ContactId from Case where Subject =: caseSubject]; 
     // Test that escaltion trigger correctly escalate the question to a case 
     System.assertEquals(s.ContactId, ca.ContactId); 
    } 
} 

я получаю эту ошибку.

System.QueryException: List has more than 1 row for assignment to SObject 

Я новичок в Apex, и я понятия не имею, как это исправить. Специалисты Salesforce и Apex, которые могут помочь? Благодаря!

ответ

0

Я думаю, что это одна:

Case ca = [SELECT Subject, ContactId from Case where Subject =: caseSubject]; 

Поскольку casSubject может запросить более один случай .... Вы должны использовать Список

+0

, что на самом деле не проблема, я решил эту проблему с помощью от форум по продажам. Спасибо, в любом случае – dannielum

Смежные вопросы