diff options
author | Vitaly Takmazov | 2018-08-15 15:05:42 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2018-08-15 15:05:42 +0300 |
commit | 5518faa7d7c28ae2a996fe057e7747d3b307c749 (patch) | |
tree | 3c896e81e9f209e6f4ce84786c2a1c51e3c10f9a /juick-server/src | |
parent | e2750a57b9405522102fc6ad083e738f3f389249 (diff) |
Recommendation subscribers should not contain message author
Diffstat (limited to 'juick-server/src')
-rw-r--r-- | juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java | 8 | ||||
-rw-r--r-- | juick-server/src/test/java/com/juick/server/tests/ServerTests.java | 19 |
2 files changed, 15 insertions, 12 deletions
diff --git a/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java b/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java index e8c32e77..1dee379f 100644 --- a/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java +++ b/juick-server/src/main/java/com/juick/service/SubscriptionServiceImpl.java @@ -113,12 +113,12 @@ public class SubscriptionServiceImpl extends BaseJdbcService implements Subscrip } @Override - public List<User> getUsersSubscribedToUserRecommendations(final int uid, final int mid, final int muid) { - Message msg = messagesService.getMessage(mid); - List<String> msgTags = tagService.getMessageTags(mid).stream().map(t -> t.getTag().getName()).collect(Collectors.toList()); + public List<User> getUsersSubscribedToUserRecommendations(final int uid, final Message msg) { + List<String> msgTags = tagService.getMessageTags(msg.getMid()).stream().map(t -> t.getTag().getName()).collect(Collectors.toList()); if (msg.getLikes() == 1) { return userService.getUserReaders(uid).stream() - .filter(u -> !userService.isInBLAny(u.getUid(), muid)) + .filter(u -> !u.equals(msg.getUser())) + .filter(u -> !userService.isInBLAny(u.getUid(), msg.getUser().getUid())) .filter(u -> Collections.disjoint(tagService.getUserBLTags(u.getUid()), msgTags)) .collect(Collectors.toList()); } diff --git a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java index 646e1443..297a3c88 100644 --- a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java +++ b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java @@ -1183,21 +1183,24 @@ public class ServerTests { Tag sampleTag = tagService.getTag("banned", true); int posterMid = messagesService.createMessage(posterId, "YO", null, Collections.singletonList(sampleTag)); messagesService.recommendMessage(posterMid, recommenderId); - BiFunction<Integer, Integer, List<User>> subscribers = (recommId, msgId) -> - subscriptionService.getUsersSubscribedToUserRecommendations(recommId, msgId, posterId); - List<User> recommendSubscribers = subscribers.apply(recommenderId, posterMid); + BiFunction<Integer, Message, List<User>> subscribers = (recommId, msg) -> + subscriptionService.getUsersSubscribedToUserRecommendations(recommId, msg); + List<User> recommendSubscribers = subscribers.apply(recommenderId, messagesService.getMessage(posterMid)); assertThat(recommendSubscribers.size(), is(1)); assertThat(recommendSubscribers.get(0).getUid(), is(readerId)); privacyQueriesService.blacklistUser(reader, poster); - assertThat(subscribers.apply(recommenderId, posterMid).size(), is(0)); + assertThat(subscribers.apply(recommenderId, messagesService.getMessage(posterMid)).size(), is(0)); privacyQueriesService.blacklistUser(reader, poster); - assertThat(subscribers.apply(recommenderId, posterMid).size(), is(1)); + assertThat(subscribers.apply(recommenderId, messagesService.getMessage(posterMid)).size(), is(1)); tagService.blacklistTag(reader, sampleTag); - assertThat(subscribers.apply(recommenderId, posterMid).size(), is(0)); + assertThat(subscribers.apply(recommenderId, messagesService.getMessage(posterMid)).size(), is(0)); tagService.blacklistTag(reader, sampleTag); - assertThat(subscribers.apply(recommenderId, posterMid).size(), is(1)); + assertThat(subscribers.apply(recommenderId, messagesService.getMessage(posterMid)).size(), is(1)); messagesService.recommendMessage(posterMid, lateRecommenderId); - List<User> lateRecommendSubscribers = subscribers.apply(recommenderId, posterMid); + List<User> lateRecommendSubscribers = subscribers.apply(recommenderId, messagesService.getMessage(posterMid)); assertThat(lateRecommendSubscribers.size(), is(0)); + int readerMid = messagesService.createMessage(readerId, "PEOPLE", null, null); + messagesService.recommendMessage(readerMid, recommenderId); + assertThat(subscribers.apply(recommenderId, messagesService.getMessage(readerMid)).size(), is(0)); } } |