Add method overload for adding multiple read-only fields at once.
This commit is contained in:
@@ -64,6 +64,23 @@ public with sharing class fflib_MockSObjectUtil
|
|||||||
return (SObject) JSON.deserialize(serializedRecord, SObject.class);
|
return (SObject) JSON.deserialize(serializedRecord, SObject.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestVisible
|
||||||
|
private static SObject setFieldValue(
|
||||||
|
SObject record,
|
||||||
|
Map<Schema.SObjectField, Object> valueBySObjectField)
|
||||||
|
{
|
||||||
|
String serializedRecord = JSON.serialize(record);
|
||||||
|
Map<String, Object> valuesByFieldName =
|
||||||
|
(Map<String, Object>) JSON.deserializeUntyped(serializedRecord);
|
||||||
|
for (SObjectField fieldToken : valueBySObjectField.keySet())
|
||||||
|
{
|
||||||
|
String fieldName = fieldToken.getDescribe().getName();
|
||||||
|
valuesByFieldName.put(fieldName, valueBySObjectField.get(fieldToken));
|
||||||
|
}
|
||||||
|
serializedRecord = JSON.serialize(valuesByFieldName);
|
||||||
|
return (SObject) JSON.deserialize(serializedRecord, SObject.class);
|
||||||
|
}
|
||||||
|
|
||||||
@IsTest
|
@IsTest
|
||||||
static void itShouldTestAddingReadOnlyField()
|
static void itShouldTestAddingReadOnlyField()
|
||||||
{
|
{
|
||||||
@@ -73,6 +90,20 @@ public with sharing class fflib_MockSObjectUtil
|
|||||||
System.assertEquals(amount, result.get(Opportunity.ExpectedRevenue));
|
System.assertEquals(amount, result.get(Opportunity.ExpectedRevenue));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IsTest
|
||||||
|
static void itShouldTestAddingManyReadOnlyFields()
|
||||||
|
{
|
||||||
|
final Decimal amount = 10.0;
|
||||||
|
Opportunity opp = new Opportunity(Id = fflib_IDGenerator.generate(Schema.Opportunity.SObjectType));
|
||||||
|
Opportunity result = (Opportunity) setFieldValue(
|
||||||
|
(SObject) opp,
|
||||||
|
new Map<Schema.SObjectField, Object>
|
||||||
|
{
|
||||||
|
Opportunity.ExpectedRevenue => amount
|
||||||
|
});
|
||||||
|
System.assertEquals(amount, result.get(Opportunity.ExpectedRevenue));
|
||||||
|
}
|
||||||
|
|
||||||
@IsTest
|
@IsTest
|
||||||
static void itShouldTestSettingDateField()
|
static void itShouldTestSettingDateField()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user