|
1 | 1 | package io.getstream.client; |
2 | 2 |
|
3 | 3 | import io.getstream.core.LookupKind; |
4 | | -import io.getstream.core.models.Activity; |
5 | | -import io.getstream.core.models.FeedID; |
6 | | -import io.getstream.core.models.Paginated; |
7 | | -import io.getstream.core.models.Reaction; |
| 4 | +import io.getstream.core.models.*; |
| 5 | + |
8 | 6 | import java.util.List; |
| 7 | +import java.util.Map; |
| 8 | +import java.util.function.Function; |
| 9 | +import java.util.stream.Collectors; |
9 | 10 |
|
10 | 11 | import io.getstream.core.options.Filter; |
11 | 12 | import io.getstream.core.options.Limit; |
@@ -85,6 +86,38 @@ public void filterWithUserID() throws Exception { |
85 | 86 | assertEquals(1, result.size()); |
86 | 87 | } |
87 | 88 |
|
| 89 | + @Test |
| 90 | + public void batchFetchReactions() throws Exception { |
| 91 | + Client client = Client.builder(apiKey, secret).build(); |
| 92 | + |
| 93 | + Activity activity = |
| 94 | + client |
| 95 | + .flatFeed("flat", "reactor") |
| 96 | + .addActivity(Activity.builder().actor("this").verb("done").object("that").build()) |
| 97 | + .join(); |
| 98 | + |
| 99 | + Reaction r1=client.reactions().add("user1", "like", activity.getID()).join(); |
| 100 | + Reaction r2=client.reactions().add("user1", "comment", activity.getID()).join(); |
| 101 | + Reaction r3=client.reactions().add("user1", "share", activity.getID()).join(); |
| 102 | + Reaction r4=client.reactions().add("user2", "like", activity.getID()).join(); |
| 103 | + Reaction r5=client.reactions().add("user2", "comment", activity.getID()).join(); |
| 104 | + Reaction r6=client.reactions().add("user3", "comment", activity.getID()).join(); |
| 105 | + |
| 106 | + Map<String, Reaction> reactionsRequest = Map.of(r1.getId(), r1, r2.getId(), r2, r3.getId(), r3, r4.getId(), r4, r5.getId(), r5, r6.getId(), r6); |
| 107 | + |
| 108 | + ReactionBatch response = client.reactions().getBatch(List.of(r1.getId(), r2.getId(), r3.getId(), r4.getId(), r5.getId(), r6.getId())).join(); |
| 109 | + List<Reaction> result = response.getReactions(); |
| 110 | + |
| 111 | + //convert result to map and compare each id and type mapping from reactionsRequest to result |
| 112 | + Map<String, Reaction> resultMap = result.stream().collect(Collectors.toMap(Reaction::getId, Function.identity())); |
| 113 | + assertEquals(6, resultMap.size()); |
| 114 | + for (Reaction r : result) { |
| 115 | + Reaction req = reactionsRequest.get(r.getId()); |
| 116 | + assertEquals(req.getActivityID(), r.getActivityID()); |
| 117 | + assertEquals(req.getKind(), r.getKind()); |
| 118 | + } |
| 119 | + } |
| 120 | + |
88 | 121 | @Test |
89 | 122 | public void pagedFilter() throws Exception { |
90 | 123 | Client client = Client.builder(apiKey, secret).build(); |
|
0 commit comments