From 478c4b93a906526e35690395ccec79aef86f7373 Mon Sep 17 00:00:00 2001 From: Zaine Arch Date: Sun, 4 Jan 2026 15:50:53 +0000 Subject: [PATCH] Completed base tests for comments --- .../app/service/CommentsServiceTest.java | 95 +++++++++++++++++++ .../zaine/app/service/NotesServiceTest.java | 3 +- 2 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 src/test/java/org/zaine/app/service/CommentsServiceTest.java diff --git a/src/test/java/org/zaine/app/service/CommentsServiceTest.java b/src/test/java/org/zaine/app/service/CommentsServiceTest.java new file mode 100644 index 0000000..25490c7 --- /dev/null +++ b/src/test/java/org/zaine/app/service/CommentsServiceTest.java @@ -0,0 +1,95 @@ +package org.zaine.app.service; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.zaine.app.model.Comments; +import org.zaine.app.repositories.CommentsRepository; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +public class CommentsServiceTest { + @InjectMocks + private CommentsService commentsService; + + @Mock + private CommentsRepository commentsRepository; + + @Test + public void testGetAllCommentsReturnsAllComments() { + + Comments comment1 = new Comments(); + comment1.setContent("Comment 1"); + Comments comment2 = new Comments(); + comment2.setContent("Comment 2"); + when(commentsRepository.findAll()).thenReturn(Arrays.asList(comment1, comment2)); + + List result = commentsService.getAllComments(); + + assertEquals(2, result.size()); + assertEquals("Comment 1", result.get(0).getContent()); + assertEquals("Comment 2", result.get(1).getContent()); + + } + + @Test + public void testGetAllCommentsBySlugReturnsFilteredComments() { + String slug = "page-1"; + Comments comment1 = new Comments(); + comment1.setContent("Comment 1"); + comment1.setPageSlug("page-1"); + Comments comment2 = new Comments(); + comment2.setContent("Comment 2"); + comment2.setPageSlug("page-2"); + when(commentsRepository.findAll()).thenReturn(Arrays.asList(comment1, comment2)); + + List result = commentsService.getAllCommentsBySlug(slug); + + assertEquals(1, result.size()); + assertEquals("Comment 1", result.get(0).getContent()); + } + + @Test + public void testGetCommentByIdReturnsComment() { + Comments comment = new Comments(); + Integer id = comment.getId(); + when(commentsRepository.findById(id)).thenReturn(java.util.Optional.of(comment)); + + Comments result = commentsService.getCommentById(id); + assertSame(comment, result); + } + + @Test + public void testAddCommentSavesComment() { + Comments comment = new Comments(); + comment.setContent("New Comment"); + when(commentsRepository.save(comment)).thenReturn(comment); + commentsService.addComment(comment); + + verify(commentsRepository).save(comment); + + } + + @Test + public void testGetCommentThreadReturnsThread() { + Integer commentId = 1; + Comments comment1 = new Comments(); + comment1.setContent("Reply 1"); + Comments comment2 = new Comments(); + comment2.setContent("Reply 2"); + when(commentsRepository.findCommentThread(commentId)).thenReturn(Arrays.asList(comment1, comment2)); + + List result = commentsService.getCommentThread(commentId); + assertEquals(2, result.size()); + assertEquals("Reply 1", result.get(0).getContent()); + assertEquals("Reply 2", result.get(1).getContent()); + + } + +} + diff --git a/src/test/java/org/zaine/app/service/NotesServiceTest.java b/src/test/java/org/zaine/app/service/NotesServiceTest.java index 8730e1a..85ec266 100644 --- a/src/test/java/org/zaine/app/service/NotesServiceTest.java +++ b/src/test/java/org/zaine/app/service/NotesServiceTest.java @@ -10,8 +10,9 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.zaine.app.model.Notes; import org.zaine.app.repositories.NotesRepository; +import org.mockito.junit.jupiter.MockitoExtension; -@ExtendWith(org.mockito.junit.jupiter.MockitoExtension.class) +@ExtendWith(MockitoExtension.class) public class NotesServiceTest { @InjectMocks -- 2.49.1