0

I have a record type picklist on Case object. When I create case via email-to-case that works fine without any issue(I have some APEX code related to that)

Issue: The problem is when I write test cases for that and run the test that says on insert and update.

DEBUG|Insert failed. First exception on row 0; first error: INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST, bad value for restricted picklist field

What is the issue? Even though that works fine when I create case via email-to-case.

Code:

Case newCase = new Case();
newCase.Origin = 'Email';
newCase.Subject = 'Subject';
newCase.OwnerId = System.Label.Default_Case_Owner_Queue;
newCase.Status = 'New';
newCase.Priority = 'Medium';
newCase.Description = 'This is a new case';
newCase.Type = 'Invoicing';
newCase.Email__c  = 'email@test.fi';
newCase.Close_Code__c = 'test'; // this is the picklist which is causing issue, the picklist value was already added to record type.
insert newCase;

How can I fix that to pass the tests? TIA

4
  • Can you check API name for the picklist, sometime that can be different. And try to copy paste the API name and use it in the test block. – Ysr Shk Sep 24 '20 at 9:27
  • 1
    You may have to set the record type while insert. In your code we do not see the record type assignment. – Raul Sep 24 '20 at 9:30
  • How can I consider record type in the code? I assumed this is the record type code newCase.Type = 'Invoicing'; – Kamran Jabbar Sep 24 '20 at 9:40
  • So the record type was the issue. I added that and now it works fine. Please add as answer then I will accept the answer. Record type code adding by following this salesforce.stackexchange.com/a/141101/85098 – Kamran Jabbar Sep 24 '20 at 9:47
1

During the insert the record type assignment is missing and the default record type may not have the picklist value that you are trying to insert with, so add the record type assignment-

Case newCase = new Case();
...
newCase.RecordTypeId = '{get value from describe call}';
newCase.Close_Code__c = 'test';
insert newCase;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.