use of de.tum.in.www1.artemis.domain.metis.PostSortCriterion in project Artemis by ls1intum.
the class PostIntegrationTest method testGetPostsForCourse_OrderByCreationDateASC.
@Test
@WithMockUser(username = "student1", roles = "USER")
public void testGetPostsForCourse_OrderByCreationDateASC() throws Exception {
PostSortCriterion sortCriterion = PostSortCriterion.CREATION_DATE;
SortingOrder sortingOrder = SortingOrder.ASCENDING;
var params = new LinkedMultiValueMap<String, String>();
// ordering only available in course discussions page, where paging is enabled
params.add("pagingEnabled", "true");
params.add("page", "0");
params.add("size", String.valueOf(MAX_POSTS_PER_PAGE));
params.add("postSortCriterion", sortCriterion.toString());
params.add("sortingOrder", sortingOrder.toString());
List<Post> returnedPosts = request.getList("/api/courses/" + courseId + "/posts", HttpStatus.OK, Post.class, params);
database.assertSensitiveInformationHidden(returnedPosts);
existingPosts.sort(Comparator.comparing(Post::getCreationDate));
assertThat(returnedPosts).isEqualTo(existingPosts);
}
use of de.tum.in.www1.artemis.domain.metis.PostSortCriterion in project Artemis by ls1intum.
the class ReactionIntegrationTest method testGetPostsForCourse_OrderByVoteCountASC.
@Test
@WithMockUser(username = "student1", roles = "USER")
public void testGetPostsForCourse_OrderByVoteCountASC() throws Exception {
PostSortCriterion sortCriterion = PostSortCriterion.VOTES;
SortingOrder sortingOrder = SortingOrder.ASCENDING;
User student1 = database.getUserByLogin("student1");
User student2 = database.getUserByLogin("student2");
Post postReactedOn = existingPostsWithAnswers.get(0);
createVoteReactionOnPost(postReactedOn, student1);
createVoteReactionOnPost(postReactedOn, student2);
Post post2ReactedOn = existingPostsWithAnswers.get(1);
createVoteReactionOnPost(post2ReactedOn, student2);
// refresh posts after reactions are added
existingPostsWithAnswers = postRepository.findPostsForCourse(courseId, null, false, false, false, null);
var params = new LinkedMultiValueMap<String, String>();
// ordering only available in course discussions page, where paging is enabled
params.add("pagingEnabled", "true");
params.add("page", "0");
params.add("size", String.valueOf(MAX_POSTS_PER_PAGE));
params.add("postSortCriterion", sortCriterion.toString());
params.add("sortingOrder", sortingOrder.toString());
List<Post> returnedPosts = request.getList("/api/courses/" + courseId + "/posts", HttpStatus.OK, Post.class, params);
existingPostsWithAnswers.sort(Comparator.comparing((Post post) -> post.getReactions().stream().filter(reaction -> reaction.getEmojiId().equals(VOTE_EMOJI_ID)).count()));
assertThat(returnedPosts).isEqualTo(existingPostsWithAnswers);
}
Aggregations