diff --git a/src/main/java/org/ntlab/tampoposerver/repositories/ChatRequestRepository.java b/src/main/java/org/ntlab/tampoposerver/repositories/ChatRequestRepository.java index d45cbb8..08960c5 100644 --- a/src/main/java/org/ntlab/tampoposerver/repositories/ChatRequestRepository.java +++ b/src/main/java/org/ntlab/tampoposerver/repositories/ChatRequestRepository.java @@ -3,7 +3,6 @@ import org.ntlab.tampoposerver.models.ChatRequest; import org.springframework.stereotype.Repository; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -13,19 +12,36 @@ private int id = 0; public ChatRequest addChatRequest(String senderId, String receiverId) { - return null; + ChatRequest chatRequest = new ChatRequest(id, senderId, receiverId); + chatRequests.put(id, chatRequest); + id++; + return chatRequest; } public ChatRequest getChatRequest(int chatRequestId) { return chatRequests.get(chatRequestId); } - public ArrayList getChatRequestsForUser(String userId) { - return null; + public List getChatRequestsForUser(String userId) { + if(userId == null) { + return null; + } + List chatRequestsForUser; + chatRequestsForUser = chatRequests.values().stream().filter(chatReq -> chatReq.getReceiverId().equals(userId) || chatReq.getSenderId().equals(userId)).toList(); + if(chatRequestsForUser.isEmpty()) { + return null; + } + return chatRequestsForUser; } public ChatRequest deleteChatRequest(int chatRequestId) { - return null; + ChatRequest chatRequest = chatRequests.get(chatRequestId); + if(chatRequest == null) { + return null; + } + + chatRequest = chatRequests.remove(chatRequestId); + return chatRequest; } } diff --git a/src/test/java/org/ntlab/tampoposerver/models/ChatRequestTest.java b/src/test/java/org/ntlab/tampoposerver/models/ChatRequestTest.java new file mode 100644 index 0000000..4886c25 --- /dev/null +++ b/src/test/java/org/ntlab/tampoposerver/models/ChatRequestTest.java @@ -0,0 +1,33 @@ +package org.ntlab.tampoposerver.models; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class ChatRequestTest { + + @Test + void contextLoads() { + ChatRequest c1 = new ChatRequest(0,"u02","u01"); + ChatRequest c2 = new ChatRequest(1,"u01","u02"); + assertEquals(0, c1.getChatRequestId()); + assertEquals("u02", c1.getSenderId()); + assertEquals("u01", c1.getReceiverId()); + assertEquals(1, c2.getChatRequestId()); + assertEquals("u01", c2.getSenderId()); + assertEquals("u02", c2.getReceiverId()); + + c1.setChatRequestId(2); + c1.setSenderId("u01"); + c1.setReceiverId("u02"); + c2.setChatRequestId(3); + c2.setSenderId("u02"); + c2.setReceiverId("u01"); + assertEquals(2, c1.getChatRequestId()); + assertEquals("u01", c1.getSenderId()); + assertEquals("u02", c1.getReceiverId()); + assertEquals(3, c2.getChatRequestId()); + assertEquals("u02", c2.getSenderId()); + assertEquals("u01", c2.getReceiverId()); + } +} diff --git a/src/test/java/org/ntlab/tampoposerver/repositories/ChatRequestRepositoryTest.java b/src/test/java/org/ntlab/tampoposerver/repositories/ChatRequestRepositoryTest.java new file mode 100644 index 0000000..123bf3e --- /dev/null +++ b/src/test/java/org/ntlab/tampoposerver/repositories/ChatRequestRepositoryTest.java @@ -0,0 +1,66 @@ +package org.ntlab.tampoposerver.repositories; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.junit.jupiter.api.Test; +import org.ntlab.tampoposerver.models.ChatRequest; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +@SpringBootTest +public class ChatRequestRepositoryTest { + + @Test + void contestLoads() throws JsonProcessingException { + ChatRequestRepository chatRequestRepository = new ChatRequestRepository(); + + //addとgetのテスト + ChatRequest chatRequest1 = chatRequestRepository.addChatRequest("u1","u2"); + ChatRequest chatRequest2 = chatRequestRepository.addChatRequest("u2","u3"); + ChatRequest chatRequest3 = chatRequestRepository.addChatRequest("u3","u4"); + + ChatRequest c1 = chatRequestRepository.getChatRequest(0); + ChatRequest c2 = chatRequestRepository.getChatRequest(1); + ChatRequest c3 = chatRequestRepository.getChatRequest(2); + ChatRequest c_null1 = chatRequestRepository.getChatRequest(-1); + assertEquals(chatRequest1, c1); + assertEquals(chatRequest2, c2); + assertEquals(chatRequest3, c3); + assertNotEquals(chatRequest1, c2); + assertNotNull(c1); + assertNull(c_null1); + + //Listのgetテスト + List list1 = chatRequestRepository.getChatRequestsForUser("u2"); + List list_null1 = chatRequestRepository.getChatRequestsForUser("u0"); + assertNotNull(list1); + assertNull(list_null1); + + //Jsonでの表示テスト + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + mapper.findAndRegisterModules(); + + String chatRequestJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(list1); + System.out.println("u2_list: " + chatRequestJson); + + String singleChatRequestJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString( + chatRequestRepository.getChatRequest(0) + ); + System.out.println("id0,u1 and u2: " + singleChatRequestJson); + + //deleteテスト + ChatRequest before = chatRequestRepository.getChatRequest(0); + ChatRequest after = chatRequestRepository.deleteChatRequest(0); + ChatRequest c_null2 = chatRequestRepository.deleteChatRequest(-1); + assertNotNull(after); + assertEquals(before, after); + assertNull(c_null2); + ChatRequest c_null3 = chatRequestRepository.getChatRequest(0); + assertNull(c_null3); + } +}