diff --git a/src/test/java/com/id/ui/cs/deadliners/projectpage/controller/CommentControllerTest.java b/src/test/java/com/id/ui/cs/deadliners/projectpage/controller/CommentControllerTest.java
index 5faeee9076862aecdb804f71fac5974b4882cb89..1e97f9c4f974bec70db0f3254549a0d1b460a73b 100644
--- a/src/test/java/com/id/ui/cs/deadliners/projectpage/controller/CommentControllerTest.java
+++ b/src/test/java/com/id/ui/cs/deadliners/projectpage/controller/CommentControllerTest.java
@@ -5,9 +5,10 @@ import com.id.ui.cs.deadliners.appuser.model.appuser.AppUser;
 import com.id.ui.cs.deadliners.appuser.model.appuser.AppUserDetails;
 import com.id.ui.cs.deadliners.appuser.model.appuser.AppUserRole;
 import com.id.ui.cs.deadliners.appuser.service.AppUserService;
-import com.id.ui.cs.deadliners.projectpage.model.Comment;
+import com.id.ui.cs.deadliners.projectpage.model.Forum;
 import com.id.ui.cs.deadliners.projectpage.model.dto.CommentRequestDTO;
 import com.id.ui.cs.deadliners.projectpage.service.CommentServiceImpl;
+import com.id.ui.cs.deadliners.projectpage.service.ForumServiceImpl;
 import com.id.ui.cs.deadliners.projects.model.Project;
 import com.id.ui.cs.deadliners.projects.service.ProjectServiceImpl;
 import org.junit.jupiter.api.BeforeEach;
@@ -21,16 +22,14 @@ import org.springframework.test.web.servlet.MockMvc;
 
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
 
 import static org.mockito.Mockito.lenient;
 import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
 import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
-
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
 
 @WebMvcTest(controllers = CommentController.class)
 class CommentControllerTest {
@@ -40,11 +39,8 @@ class CommentControllerTest {
     @MockBean
     private CommentServiceImpl commentService;
 
-    private AppUserDetails user;
-
-    private AppUser appUser;
-
-    private CommentRequestDTO crd;
+    @MockBean
+    private ForumServiceImpl forumService;
 
     @MockBean
     private ProjectServiceImpl projectService;
@@ -52,68 +48,79 @@ class CommentControllerTest {
     @MockBean
     private AppUserService appUserService;
 
-    @MockBean
-    private CommentController commentController;
-
     @MockBean
     private BCryptPasswordEncoder bCryptPasswordEncoder;
 
+    private AppUser appUser;
+
+    private AppUserDetails user;
+
+    private Project project = new Project();
+
+    private Forum forum = new Forum();
+
     @BeforeEach
     void setUp() {
         appUser = new AppUser();
-
         appUser.setFirstName("Indra");
         appUser.setLastName("Mahaarta");
-        appUser.setPassword("Indra");
-        appUser.setAppUserRole(AppUserRole.USER);
         appUser.setEmail("official.indramahaarta@gmail.com");
-        appUser.setId(Long.parseLong("1"));
+        appUser.setPassword("indra");
+        appUser.setAppUserRole(AppUserRole.USER);
 
         user = new AppUserDetails(appUser);
 
-        List<Comment> commentList = new ArrayList<>();
-        Comment c = new Comment();
-        c.setForumId(Long.parseLong("22"));
-        c.setCommentId(Long.parseLong("1"));
-        c.setProjectId(Long.parseLong("144"));
-        c.setCreator(appUser);
-        c.setContent("Keren");
-        c.setCreateAt(new Date());
+        long idProject = 114;
+        long idForum = 22;
+
+        forum.setForumId(idForum);
+        forum.setProjectId(idProject);
+        forum.setCreatorForum(appUser);
+        forum.setTitleForum("Keren");
+        forum.setContentForum("Keren");
+        forum.setCreateAt(new Date());
+
+        project.setId(idProject);
+        project.setAdmin(appUser);
+        project.setName("keren");
+        project.setDescription("keren");
+        project.setCreateAt(new Date());
+
+        lenient().when(projectService.getProject(idProject)).thenReturn(project);
+        lenient().when(forumService.getForumById(idForum)).thenReturn(forum);
+        lenient().when(commentService.getComment(idForum)).thenReturn(new ArrayList<>());
+        lenient().when(appUserService.getUser(appUser.getEmail())).thenReturn(appUser);
+    }
+
+    @Test
+    void testDetailForum() throws Exception {
+        mockMvc.perform(get("/project/114/22").with(user(user)))
+                .andExpect(status().isOk())
+                .andExpect(handler().methodName("detailForum"))
+                .andExpect(model().attributeExists("idProject"))
+                .andExpect(model().attributeExists("idForum"))
+                .andExpect(model().attributeExists("dto"))
+                .andExpect(model().attributeExists("project"))
+                .andExpect(model().attributeExists("forum"))
+                .andExpect(model().attributeExists("comments"))
+                .andExpect(view().name("project-page/detail_forum"));
+    }
 
-        commentList.add(c);
+    @Test
+    void saveComment() throws Exception {
+        ObjectMapper mapper = new ObjectMapper();
 
-        Project p = new Project();
-        p.setId(Long.parseLong("1"));
-        p.setName("Keren");
+        CommentRequestDTO crd = new CommentRequestDTO();
+        crd.setIdProject((long) 114);
+        crd.setIdForum((long) 22);
+        crd.setEmailCreator(appUser.getEmail());
+        crd.setCreateAt(new Date());
+        crd.setContent("Keren");
+        crd.setId((long) 1);
 
-        crd = new CommentRequestDTO();
 
-        lenient().when(projectService.getProject(Long.parseLong("144"))).thenReturn(p);
-        lenient().when(commentService.getComment(Long.parseLong("22"))).thenReturn(commentList);
-        lenient().when(commentService.saveComment(crd)).thenReturn("gg gaming");
+        mockMvc.perform(post("/project/144/22/save").with(csrf()).with(user(user))
+                        .contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE).content(mapper.writeValueAsString(crd)))
+                .andExpect(status().is3xxRedirection());
     }
-
-//    @Test
-//    void testDetailForum() throws Exception {
-//
-//        mockMvc.perform(get("/project/144/22").with(user(user)))
-//                .andExpect(status().isOk())
-//                .andExpect(handler().methodName("detailForum"))
-//                .andExpect(model().attributeExists("idProject"))
-//                .andExpect(model().attributeExists("idForum"))
-//                .andExpect(model().attributeExists("dto"))
-//                .andExpect(model().attributeExists("project"))
-//                .andExpect(model().attributeExists("forum"))
-//                .andExpect(model().attributeExists("comments"))
-//                .andExpect(view().name("project-page/detail_forum"));
-//    }
-//
-//    @Test
-//    void saveComment() throws Exception {
-//        ObjectMapper mapper = new ObjectMapper();
-//
-//        mockMvc.perform(post("/project/144/22/save").with(csrf()).with(user(user))
-//                        .contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE).content(mapper.writeValueAsString(crd)))
-//                .andExpect(status().is3xxRedirection());
-//    }
-}
+}
\ No newline at end of file
diff --git a/src/test/java/com/id/ui/cs/deadliners/projectpage/controller/ForumControllerTest.java b/src/test/java/com/id/ui/cs/deadliners/projectpage/controller/ForumControllerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..37b4eb05cf29bda1fa60b81dc53b2e62ddb94aa9
--- /dev/null
+++ b/src/test/java/com/id/ui/cs/deadliners/projectpage/controller/ForumControllerTest.java
@@ -0,0 +1,82 @@
+package com.id.ui.cs.deadliners.projectpage.controller;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.id.ui.cs.deadliners.appuser.model.appuser.AppUser;
+import com.id.ui.cs.deadliners.appuser.model.appuser.AppUserDetails;
+import com.id.ui.cs.deadliners.appuser.model.appuser.AppUserRole;
+import com.id.ui.cs.deadliners.appuser.service.AppUserService;
+import com.id.ui.cs.deadliners.projectpage.model.dto.ForumRequest;
+import com.id.ui.cs.deadliners.projectpage.service.ForumServiceImpl;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.MediaType;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.test.web.servlet.MockMvc;
+
+import java.util.Date;
+
+import static org.mockito.Mockito.lenient;
+import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
+import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
+@WebMvcTest(controllers = ForumController.class)
+class ForumControllerTest {
+    @Autowired
+    private MockMvc mockMvc;
+
+    @MockBean
+    private ForumServiceImpl forumService;
+
+    @MockBean
+    private AppUserService appUserService;
+
+    @MockBean
+    private BCryptPasswordEncoder bCryptPasswordEncoder;
+
+    private AppUser appUser;
+
+    private AppUserDetails user;
+
+    @BeforeEach
+    void setUp() {
+        appUser = new AppUser();
+        appUser.setFirstName("Indra");
+        appUser.setLastName("Mahaarta");
+        appUser.setEmail("official.indramahaarta@gmail.com");
+        appUser.setPassword("indra");
+        appUser.setAppUserRole(AppUserRole.USER);
+
+        user = new AppUserDetails(appUser);
+    }
+
+    @Test
+    void testCreateForum () throws Exception {
+        mockMvc.perform(get("/project/114/form-forum").with(user(user)))
+                .andExpect(status().isOk())
+                .andExpect(model().attributeExists("id"))
+                .andExpect(model().attributeExists("forum"))
+                .andExpect(view().name("project-page/form_forum"));
+    }
+
+    @Test
+    void testSaveForum() throws Exception {
+        ForumRequest fr = new ForumRequest();
+        fr.setCreateAtForum(new Date());
+        fr.setIdProject((long) 114);
+        fr.setForumId((long) 22);
+        fr.setContentForum("Keren");
+        fr.setTitleForum("Keren");
+
+
+        ObjectMapper mapper = new ObjectMapper();
+        mockMvc.perform(post("/project/144/form-forum/save").with(csrf()).with(user(user))
+                        .contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE).content(mapper.writeValueAsString(fr)))
+                .andExpect(status().is3xxRedirection());
+    }
+}