diff --git a/sfdx-source/apex-extensions/main/default/classes/domains/fflib_SObjects2.cls b/sfdx-source/apex-extensions/main/default/classes/domains/fflib_SObjects2.cls index 71f9ba0..01be92e 100644 --- a/sfdx-source/apex-extensions/main/default/classes/domains/fflib_SObjects2.cls +++ b/sfdx-source/apex-extensions/main/default/classes/domains/fflib_SObjects2.cls @@ -246,6 +246,27 @@ public virtual class fflib_SObjects2 .getDateTimeFieldValues(sObjectField); } + /** + * @param decimalField The field to use as the Value of the returned Map + * @param idField The field to use as the Key of the returned map + * + * @return Returns a map with the values of two fields + */ + @TestVisible + protected virtual Map getDecimalById(Schema.SObjectField decimalField, Schema.SObjectField idField) { + Map result = new Map(); + for (SObject record : getRecords()) + { + if (record.get(idField) == null) continue; + + result.put( + (Id) record.get(idField), + (Decimal) record.get(decimalField) + ); + } + return result; + } + /** * @param sObjectField The Schema.SObjectField to get the SUM of * diff --git a/sfdx-source/apex-extensions/tests/classes/domains/fflib_SObjects2Test.cls b/sfdx-source/apex-extensions/tests/classes/domains/fflib_SObjects2Test.cls index f45a7e4..c441b76 100644 --- a/sfdx-source/apex-extensions/tests/classes/domains/fflib_SObjects2Test.cls +++ b/sfdx-source/apex-extensions/tests/classes/domains/fflib_SObjects2Test.cls @@ -165,6 +165,16 @@ private class fflib_SObjects2Test System.Assert.isNull(result.get(caseIdC), 'Case Id B should have no related Account Id'); } + @IsTest + static void itShouldReturnDecimalById() { + final Id accountId = fflib_IDGenerator.generate(Schema.Account.SObjectType); + final Account record = new Account(Id = accountId, AnnualRevenue = 123.45); + fflib_SObjects2 domain = new fflib_SObjects2(new List{ record }); + System.Test.startTest(); + Map result = domain.getDecimalById(Schema.Account.AnnualRevenue, Schema.Account.Id); + System.Test.stopTest(); + } + @IsTest static void itShouldReturnStringById() {