@@ -144,7 +144,7 @@ private with sharing class fflib_SObjectSelectorTest
144
144
return ; // Abort the test if unable to create a user with low enough acess
145
145
System .runAs (testUser )
146
146
{
147
- Testfflib_SObjectSelector selector = new Testfflib_SObjectSelector (false , false , false );
147
+ Testfflib_SObjectSelector selector = new Testfflib_SObjectSelector (false , false , false , true );
148
148
try
149
149
{
150
150
List <Account > result = (List <Account >) selector .selectSObjectsById (idSet );
@@ -205,16 +205,50 @@ private with sharing class fflib_SObjectSelectorTest
205
205
}
206
206
}
207
207
208
+
209
+ @isTest
210
+ static void testWithoutSorting ()
211
+ {
212
+ // Given
213
+ Testfflib_SObjectSelector selector = new Testfflib_SObjectSelector (false , false , false , false );
214
+ fflib_QueryFactory qf = selector .newQueryFactory ();
215
+
216
+ Set <String > expectedSelectFields = new Set <String >{ ' Name' , ' Id' , ' AccountNumber' , ' AnnualRevenue' };
217
+ if (UserInfo .isMultiCurrencyOrganization ())
218
+ {
219
+ expectedSelectFields .add (' CurrencyIsoCode' );
220
+ }
221
+
222
+ // When
223
+ String soql = qf .toSOQL ();
224
+
225
+ // Then
226
+ Pattern soqlPattern = Pattern .compile (' SELECT (.*) FROM Account ORDER BY Name DESC NULLS FIRST , AnnualRevenue ASC NULLS FIRST ' );
227
+ Matcher soqlMatcher = soqlPattern .matcher (soql );
228
+ soqlMatcher .matches ();
229
+
230
+ List <String > actualSelectFields = soqlMatcher .group (1 ).deleteWhiteSpace ().split (' ,' );
231
+ System .assertEquals (expectedSelectFields , new Set <String >(actualSelectFields ));
232
+ }
233
+
234
+ private static void assertEqualsSelectFields (String expectedSelectFields , String actualSelectFields )
235
+ {
236
+ Set <String > expected = new Set <String >(expectedSelectFields .deleteWhiteSpace ().split (' ,' ));
237
+ Set <String > actual = new Set <String >(actualSelectFields .deleteWhiteSpace ().split (' ,' ));
238
+
239
+ System .assertEquals (expected , actual );
240
+ }
241
+
208
242
private class Testfflib_SObjectSelector extends fflib_SObjectSelector
209
243
{
210
244
public Testfflib_SObjectSelector ()
211
245
{
212
246
super ();
213
247
}
214
248
215
- public Testfflib_SObjectSelector (Boolean includeFieldSetFields , Boolean enforceCRUD , Boolean enforceFLS )
249
+ public Testfflib_SObjectSelector (Boolean includeFieldSetFields , Boolean enforceCRUD , Boolean enforceFLS , Boolean sortSelectFields )
216
250
{
217
- super (includeFieldSetFields , enforceCRUD , enforceFLS );
251
+ super (includeFieldSetFields , enforceCRUD , enforceFLS , sortSelectFields );
218
252
}
219
253
220
254
public List <Schema .SObjectField > getSObjectFieldList ()
0 commit comments