Skip to content

Commit 8e1bf81

Browse files
committed
Increase SObjectCollection test coverage
1 parent 49e6c4d commit 8e1bf81

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

force-app/main/default/classes/test/classes/collection/SObjectCollectionTest.cls

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,35 @@ private class SObjectCollectionTest {
8282
}
8383
}
8484

85+
@IsTest
86+
private static void groupByDatetimesGroupsWithApiFieldName() {
87+
Datetime now = Datetime.now();
88+
SObjectCollection c = SObjectCollection.of(new List<Event>{
89+
new Event(
90+
ActivityDateTime = now
91+
),
92+
new Event(
93+
ActivityDateTime = now
94+
),
95+
new Event(
96+
ActivityDateTime = now.addHours(1)
97+
)
98+
});
99+
Map<Datetime, List<Event>> eventsByDatetimes = c.groupByDatetimes(Event.ActivityDateTime);
100+
System.Assert.areEqual(2, eventsByDatetimes.size());
101+
List<Event> nowEvents = eventsByDatetimes.get(now);
102+
System.Assert.areEqual(2, nowEvents.size());
103+
for (Event e : nowEvents) {
104+
System.Assert.areEqual(now, e.ActivityDateTime);
105+
}
106+
107+
List<Event> nextHourEvents = eventsByDatetimes.get(now.addHours(1));
108+
System.Assert.areEqual(1, nextHourEvents.size());
109+
for (Event e : nextHourEvents) {
110+
System.Assert.areEqual(now.addHours(1), e.ActivityDateTime);
111+
}
112+
}
113+
85114
@IsTest
86115
private static void testAsMap() {
87116
Map<Id, SObject> recordMap = SObjectCollection.of(testAccounts()).asMap();
@@ -151,6 +180,16 @@ private class SObjectCollectionTest {
151180
System.Assert.areEqual(150.0, revenues[3]);
152181
}
153182

183+
@IsTest
184+
private static void testPluckDecimalsWithRelation() {
185+
List<Decimal> revenues = SObjectCollection.of(testAccounts()).pluckDecimals('AnnualRevenue');
186+
System.Assert.areEqual(4, revenues.size());
187+
System.Assert.areEqual(100.0, revenues[0]);
188+
System.Assert.areEqual(60.0, revenues[1]);
189+
System.Assert.areEqual(150.0, revenues[2]);
190+
System.Assert.areEqual(150.0, revenues[3]);
191+
}
192+
154193
@IsTest
155194
private static void testPluckStrings() {
156195
List<String> names = SObjectCollection.of(testAccounts()).pluckStrings(Account.Name);
@@ -161,6 +200,16 @@ private class SObjectCollectionTest {
161200
System.Assert.areEqual('Bar', names[3]);
162201
}
163202

203+
@IsTest
204+
private static void testPluckStringsWithRelation() {
205+
List<String> names = SObjectCollection.of(testAccounts()).pluckStrings('Name');
206+
System.Assert.areEqual(4, names.size());
207+
System.Assert.areEqual('Foo', names[0]);
208+
System.Assert.areEqual('Bar', names[1]);
209+
System.Assert.areEqual('Foo', names[2]);
210+
System.Assert.areEqual('Bar', names[3]);
211+
}
212+
164213
@IsTest
165214
private static void testPluckIdsAsStrings() {
166215
List<String> ownerIds = SObjectCollection.of(testAccounts()).pluckStrings(Account.OwnerId);
@@ -208,6 +257,77 @@ private class SObjectCollectionTest {
208257
System.Assert.isFalse(active[2]);
209258
}
210259

260+
@IsTest
261+
private static void testPluckBooleansWithRelation() {
262+
List<User> users = new List<User>{
263+
new User(Title = 'Foo', IsActive = true),
264+
new User(Title = 'Bar', IsActive = true),
265+
new User(Title = 'Baz', IsActive = false)
266+
};
267+
List<Boolean> active = SObjectCollection.of(users).pluckBooleans('IsActive');
268+
System.Assert.areEqual(3, active.size());
269+
System.Assert.isTrue(active[0]);
270+
System.Assert.isTrue(active[1]);
271+
System.Assert.isFalse(active[2]);
272+
}
273+
274+
@IsTest
275+
private static void testPluckDates() {
276+
Date today = Date.today();
277+
List<Opportunity> opps = new List<Opportunity>{
278+
new Opportunity(CloseDate = today),
279+
new Opportunity(CloseDate = today.addDays(1)),
280+
new Opportunity(CloseDate = today.addDays(2))
281+
};
282+
List<Date> closeDates = SObjectCollection.of(opps).pluckDates(Opportunity.CloseDate);
283+
System.Assert.areEqual(3, closeDates.size());
284+
System.Assert.areEqual(today, closeDates[0]);
285+
System.Assert.areEqual(today.addDays(1), closeDates[1]);
286+
System.Assert.areEqual(today.addDays(2), closeDates[2]);
287+
}
288+
289+
@IsTest
290+
private static void testPluckDatesWithRelation() {
291+
Date today = Date.today();
292+
List<Opportunity> opps = new List<Opportunity>{
293+
new Opportunity(CloseDate = today),
294+
new Opportunity(CloseDate = today.addDays(1)),
295+
new Opportunity(CloseDate = today.addDays(2))
296+
};
297+
List<Date> closeDates = SObjectCollection.of(opps).pluckDates('CloseDate');
298+
System.Assert.areEqual(3, closeDates.size());
299+
System.Assert.areEqual(today, closeDates[0]);
300+
System.Assert.areEqual(today.addDays(1), closeDates[1]);
301+
System.Assert.areEqual(today.addDays(2), closeDates[2]);
302+
}
303+
304+
@IsTest
305+
private static void testPluckDatetimes() {
306+
Datetime now = Datetime.now();
307+
List<Event> events = new List<Event>{
308+
new Event(ActivityDateTime = now),
309+
new Event(ActivityDateTime = now.addHours(1))
310+
};
311+
List<Datetime> completedDatetimes = SObjectCollection.of(events).pluckDatetimes(Event.ActivityDateTime);
312+
System.Assert.areEqual(2, completedDatetimes.size());
313+
System.Assert.areEqual(now, completedDatetimes[0]);
314+
System.Assert.areEqual(now.addHours(1), completedDatetimes[1]);
315+
}
316+
317+
318+
@IsTest
319+
private static void testPluckDatetimesWithRelation() {
320+
Datetime now = Datetime.now();
321+
List<Event> events = new List<Event>{
322+
new Event(ActivityDateTime = now),
323+
new Event(ActivityDateTime = now.addHours(1))
324+
};
325+
List<Datetime> completedDatetimes = SObjectCollection.of(events).pluckDatetimes('ActivityDateTime');
326+
System.Assert.areEqual(2, completedDatetimes.size());
327+
System.Assert.areEqual(now, completedDatetimes[0]);
328+
System.Assert.areEqual(now.addHours(1), completedDatetimes[1]);
329+
}
330+
211331
@IsTest
212332
private static void testFieldsMatchFilter() {
213333
SObjectCollection c = SObjectCollection.of(new List<Account>{

0 commit comments

Comments
 (0)