diff --git a/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java b/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java index 13d3e19..6285d7e 100644 --- a/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java +++ b/src/main/java/org/ntlab/tampoposerver/repositories/ActivityRepository.java @@ -8,6 +8,8 @@ import java.util.HashMap; import java.util.List; +import static java.awt.SystemColor.text; + @Repository public class ActivityRepository { @@ -77,6 +79,21 @@ return true; } + //アクティビティのテキストを返すメソッド + public String getActivityText(String userId,String activityId) { + if(activityMap.get(userId) == null) { + return null; + } + + HashMap activities = activityMap.get(userId); + + if(activities.get(activityId) == null) { + return null; + } + Activity activity = activities.get(activityId); + return activity.getText(); + } + //アクティビティを削除するメソッド public boolean deleteActivity(String userId, String activityId) { HashMap userActivities = activityMap.get(userId); 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/main/java/org/ntlab/tampoposerver/repositories/UserRepository.java b/src/main/java/org/ntlab/tampoposerver/repositories/UserRepository.java index c65beaa..f4e34eb 100644 --- a/src/main/java/org/ntlab/tampoposerver/repositories/UserRepository.java +++ b/src/main/java/org/ntlab/tampoposerver/repositories/UserRepository.java @@ -35,6 +35,15 @@ return u; } + public ArrayList getAllEmails() { + ArrayList emails = new ArrayList<>(); + for (String key : userMap.keySet()) { + User user = getUser(key); + emails.add(user.getEmail()); + } + return emails; + } + public User deleteUser(String userId) {//ユーザー情報の削除 return userMap.remove(userId); } diff --git a/src/main/java/org/ntlab/tampoposerver/resources/ActivitiesResource.java b/src/main/java/org/ntlab/tampoposerver/resources/ActivitiesResource.java index 1c9c48a..e4d19c9 100644 --- a/src/main/java/org/ntlab/tampoposerver/resources/ActivitiesResource.java +++ b/src/main/java/org/ntlab/tampoposerver/resources/ActivitiesResource.java @@ -30,22 +30,33 @@ @GET //アカウントの全アクティビティを取得 public Response getActivities(@PathParam("user-id") String userId, @QueryParam("filter") String filter) { - //失敗 - //400(ユーザーnull or 空だったら) + + //400(ユーザーIDがnull or 空) if (userId == null || userId.isEmpty()) { - var response = Response.status(Response.Status.BAD_REQUEST).entity("不正なリクエスト"); - throw new WebApplicationException(response.build()); +// var response = Response.status(Response.Status.BAD_REQUEST).entity("不正なリクエスト"); +// throw new WebApplicationException(response.build()); + return Response.status(Response.Status.BAD_REQUEST).build(); } HashMap activities = activityRepository.getActivitiesForUser(userId); - //404(アクティビティが存在しないとき) - if (activities == null) { //取得した最新のアクティビティがnullのとき + //404(取得したアクティビティがnull) + if (activities == null) { var response = Response.status(Response.Status.NOT_FOUND).entity("アクティビティが存在しません"); throw new WebApplicationException(response.build()); } - //200(アカウントの全アクティビティを取得) + /* + 500(予期せぬエラー) + spring bootが500を返してくれるからコードなし + */ +// +// //200(filterの値がLATESTのときに最新の単一アクティビティをGET) +// if (filter != null && filter.equals("LATEST")) { //equals:filterの値とLATESTが一致しているときtrue +// return Response.status(Response.Status.OK).entity().build(); +// } + + //200(アカウントの全アクティビティをGET) return Response.status(Response.Status.OK).entity(activities).build(); } @@ -55,32 +66,25 @@ public Response postActivities(@PathParam("user-id") String userId, @FormParam("token") String token, @FormParam("new-activity") String newActivity) { - //失敗 - //400(不正なリクエスト) - if (token == null || token.isEmpty() || newActivity == null || newActivity.isEmpty()) { //トークン or 新アクティビティがnull or 空だったら + + //400(トークン or 新アクティビティがnull or 空) + if (token == null || token.isEmpty() || newActivity == null || newActivity.isEmpty()) { var response = Response.status(Response.Status.BAD_REQUEST).entity("不正なリクエスト"); throw new WebApplicationException(response.build()); } - //403(未認証&トークンの不一致) - if (!userRepository.checkToken(userId, token)) { // ユーザーまたはトークンが存在しない はるかと相談済み + //403( ユーザーまたはトークンが存在しない) + if (!userRepository.checkToken(userId, token)) { var response = Response.status(Response.Status.FORBIDDEN).entity("認証エラー"); throw new WebApplicationException(response.build()); } - //404(ユーザーが存在しないとき) if (userRepository.getUser(userId) == null) { var response = Response.status(Response.Status.NOT_FOUND).entity("ユーザーが存在しません"); throw new WebApplicationException(response.build()); } - /* - 500(予期せぬエラー) - spring bootが500を返してくれるからコードなし - */ - - //成功 //200(アクティビティを作成) LocalTime time = LocalTime.now(); //ローカルの時間を取得 Activity addedActivity = activityRepository.addActivity(userId, newActivity, time.toString()); //追加されたアクティビティの情報を、あとで使えるように addedActivity に入れている @@ -88,13 +92,13 @@ } @Path("/{user-id}/activities/{activity-id}") - @GET //アカウントの単一アクティビティを取得する + @GET //アカウントの単一アクティビティを取得する(アクティビティID,テキスト,投稿時間) @Produces(MediaType.APPLICATION_JSON) public Response getActivity(@PathParam("user-id") String userId, @PathParam("activity-id") String activityId) { - //失敗 - //400(不正なリクエスト) - if (activityId == null || activityId.isEmpty()) { //アクティビティがnull or 空だったら + + //400(アクティビティがnull or 空だったら) + if (activityId == null || activityId.isEmpty()) { var response = Response.status(Response.Status.BAD_REQUEST).entity("不正なリクエスト"); throw new WebApplicationException(response.build()); } @@ -105,9 +109,8 @@ throw new WebApplicationException(response.build()); } - Activity activity = activityRepository.getActivity(userId,activityId); - //200(アカウントの単一アクティビティを取得) + Activity activity = activityRepository.getActivity(userId,activityId); return Response.status(Response.Status.OK).entity(activity).build(); } @@ -117,8 +120,6 @@ @PathParam("activity-id") String activityId, @QueryParam("token") String token) { - - //失敗 //400(トークン or 新アクティビティがnull or 空だったら) if (token == null || token.isEmpty() || activityId == null || activityId.isEmpty()) { var response = Response.status(Response.Status.BAD_REQUEST).entity("不正なリクエスト"); @@ -138,47 +139,39 @@ throw new WebApplicationException(response.build()); } - /* - 500(予期せぬエラー) - spring bootが500を返してくれるからコードなし - */ - - boolean deleteActivity = activityRepository.deleteActivity(userId,activityId); - - //成功 //200(アクティビティを削除) + boolean deleteActivity = activityRepository.deleteActivity(userId,activityId); return Response.status(Response.Status.OK).entity(deleteActivity).build(); } @Path("/{user-id}/activities/{activity-id}/text") - @GET //アカウントの単一アクティビティの文章の内容を取得する + @GET //アカウントの単一アクティビティの文章の内容を取得する(テキストのみ) public Response getActivityText(@PathParam("user-id") String userId, @PathParam("activity-id") String activityId) { - //失敗 + //400(不正なリクエスト) if (activityId == null || activityId.isEmpty()) { //アクティビティがnull or 空だったら var response = Response.status(Response.Status.BAD_REQUEST).entity("不正なリクエスト"); throw new WebApplicationException(response.build()); } - //404(取得したアクティビティがnullのとき) - if (activityRepository.getActivity(userId, activityId) == null) { - var response = Response.status(Response.Status.NOT_FOUND).entity("アクティビティが存在しません"); + //404(ユーザーかアクティビティが存在しないとき) + if (userRepository.getUser(userId) == null || activityRepository.getActivity(userId, activityId) == null) { + var response = Response.status(Response.Status.NOT_FOUND).entity("ユーザーかアクティビティが存在しません"); throw new WebApplicationException(response.build()); } - //成功 //200(アカウントの単一アクティビティの文章の内容を取得) - activityRepository.getActivity(userId, activityId); - return Response.status(Response.Status.OK).build(); + String getActivityText = activityRepository.getActivityText(userId, activityId); + return Response.status(Response.Status.OK).entity(getActivityText).build(); } @Path("/{user-id}/activities/{activity-id}/updated-time") @GET //単一アクティビティの投稿時間を取得する public Response getActivityUpdatedTime(@PathParam("user-id") String userId, @PathParam("activity-id") String activityId) { - //失敗 + //400(不正なリクエスト) if (activityId == null || activityId.isEmpty()) { //アクティビティがnull or 空だったら var response = Response.status(Response.Status.BAD_REQUEST).entity("不正なリクエスト"); @@ -191,33 +184,29 @@ throw new WebApplicationException(response.build()); } - //成功 //200(単一アクティビティの投稿時間を取得する) - activityRepository.getActivityUpdateTime(userId, activityId); - return Response.status(Response.Status.OK).build(); + String getActivityUpdateTime = activityRepository.getActivityUpdateTime(userId, activityId); + return Response.status(Response.Status.OK).entity(getActivityUpdateTime).build(); } @Path("/{user-id}/activities/last-updated-time") @GET //最新のアクティビティの投稿時間を取得する public Response getActivityLastUpdatedTime(@PathParam("user-id") String userId) { - //失敗 + //400(不正なリクエスト) if (userId == null || userId.isEmpty()) { //ユーザーがnull or 空だったら var response = Response.status(Response.Status.BAD_REQUEST).entity("不正なリクエスト"); throw new WebApplicationException(response.build()); } - //404(アクティビティが存在しないとき) if (activityRepository.getActivitiesForUser(userId).isEmpty() || userRepository.getUser(userId) == null) { //ユーザの全アクティビティ情報を保存するリストが空のとき var response = Response.status(Response.Status.NOT_FOUND).entity("ユーザーかアクティビティが存在しません"); throw new WebApplicationException(response.build()); } - - //成功 //200(最新のアクティビティの投稿時間を取得する) - activityRepository.getLastUpdatedTime(userId); - return Response.status(Response.Status.OK).build(); + String getLastUpdatedTime = activityRepository.getLastUpdatedTime(userId); + return Response.status(Response.Status.OK).entity(getLastUpdatedTime).build(); } } \ No newline at end of file diff --git a/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java b/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java index cf0cc06..c016ec6 100644 --- a/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java +++ b/src/main/java/org/ntlab/tampoposerver/resources/ChatRequestsResource.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.List; import static jakarta.ws.rs.core.Response.status; @@ -45,7 +46,7 @@ //200(成功レスポンス) - ArrayList requests = chatRequestRepository.getChatRequestsForUser(userId);//前の人がListだったらArrayListになるから作ってて頼む時はListで頼め + List requests = chatRequestRepository.getChatRequestsForUser(userId);//前の人がListだったらArrayListになるから作ってて頼む時はListで頼め //tokenのチェックはこっちでする、ほかのひとがしていた // 岩谷さんのUserRepositoryでtokenの確認を行う if (!userRepository.checkToken(userId, token) ) { @@ -91,19 +92,25 @@ @Path("/chat-requests/{chat-request-id}") @DELETE public Response deleteChatRequest( - @QueryParam("receiver-token") String receiverToken, + @QueryParam("token") String token, @PathParam("chat-request-id") Integer chatRequestId) { //401承認が必要です - if (receiverToken == null || receiverToken.isEmpty()) { + if (token == null || token.isEmpty()) { return status(Response.Status.UNAUTHORIZED) .entity("認証が必要です") // 401 .build(); } //403(未認証&トークンの不一致) - //ChatRequestRepository.getChatRequest(chatRequestId); - if (!userRepository.checkToken(null, null) && !userRepository.checkToken(null, null)) { + ChatRequest chatRequest = chatRequestRepository.getChatRequest(chatRequestId); + if (chatRequest == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + String senderId = chatRequest.getSenderId(); + String receiverId = chatRequest.getReceiverId(); + + if (!userRepository.checkToken(senderId, token) && !userRepository.checkToken(receiverId, token)) { return Response.status(Response.Status.UNAUTHORIZED).build(); } diff --git a/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java b/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java index ddea638..30a951c 100644 --- a/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java +++ b/src/main/java/org/ntlab/tampoposerver/resources/UsersResource.java @@ -12,6 +12,8 @@ import java.util.ArrayList; import java.util.List; + +import static io.micrometer.common.util.StringUtils.isBlank; /* //6/10報告:全部できた(friendまで)、UserRepositoryとの連携ができていない(updateあります?)、responseがない //6/17報告:すべてのユーザーの情報を持ってくるところ、フレンドペアの自分じゃない方のuidを返すところ、フレンドペアの削除はもらったものを連携できていない @@ -40,13 +42,13 @@ private final UserRepository userRepository; - private final FriendService friendService; + private final FriendService friendService; @Autowired public UsersResource(UserRepository userRepository, - FriendService friendService) { //インスタンスを作るときに呼び出されるメソッドであるコンストラクタを書く + FriendService friendService) { //インスタンスを作るときに呼び出されるメソッドであるコンストラクタを書く this.userRepository = userRepository; - this.friendService = friendService; + this.friendService = friendService; } //@Path("/{uid}/..")などパスを指定する @@ -73,13 +75,30 @@ @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public Response createUser(@FormParam("user-id") String userId, @FormParam("password") String password) { - //ユーザーがいるか調べる - User user = userRepository.getUser(userId); - if (userRepository.getUser(userId) != null) { + if (isBlank(userId) || isBlank(password)) { + throw new WebApplicationException( + Response.status(Response.Status.BAD_REQUEST) + .entity("ユーザーIDおよびパスワードを入力してください") + .build()); + } + + + //ユーザーIDが存在しているか調べる +// ArrayList userIdList = new ArrayList(); +// userIdList.add(userRepository.getAllUsers()); +// for (int i = 0; i < userIdList.size(); i++) { +// if(userId.equals(userIdList.get(i).toString())) { +// throw new WebApplicationException(Response.Status.CONFLICT); +// } +// } + + User existingUser = userRepository.getUser(userId); + if (existingUser != null) { return Response.status(Response.Status.CONFLICT) - .entity("すでにユーザーが存在しています") + .entity("ユーザーIDが重複しています") .build(); } + User newUser = userRepository.addUser(userId, password); //6/12ここはswaggerではなくコードを仕様にすると決定しました。 @@ -143,6 +162,21 @@ @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public Response login(@PathParam("user-id") String userId, @FormParam("password") String password) { + + if (userId == null || userId.isBlank()) { + throw new WebApplicationException( + Response.status(Response.Status.BAD_REQUEST) + .entity("user-id は必須です") + .build()); + } + + if (password == null || password.isBlank()) { + throw new WebApplicationException( + Response.status(Response.Status.BAD_REQUEST) + .entity("password は必須です") + .build()); + } + //存在チェック User user = userRepository.getUser(userId); if (user == null) { @@ -224,6 +258,15 @@ if (user == null) { throw new WebApplicationException(Response.Status.NOT_FOUND); } + + if (token == null || !token.equals(user.getToken())) { + throw new WebApplicationException( + Response.status(Response.Status.FORBIDDEN) + .entity("認証失敗") + .build() + ); + } + return Response.ok(user.getPassword(), MediaType.APPLICATION_JSON).build(); } @@ -231,43 +274,12 @@ @PUT @Path("/{user-id}/password") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) - public Response updatePassword(@PathParam("user-id") String userId, @FormParam("new-password") String newPassword) { + public Response updatePassword(@PathParam("user-id") String userId, @FormParam("new-password") String newPassword, @FormParam("token") String token) { - User user = userRepository.getUser(userId); - if (user == null) { - throw new WebApplicationException( - Response.status(Response.Status.NOT_FOUND) - .entity("ユーザーが存在しません") - .build() - ); + if (newPassword == null || newPassword.isBlank()) { + throw new WebApplicationException(Response.Status.BAD_REQUEST); } - - //パスワードのアップデート - user.setPassword(newPassword); - return Response.ok().build(); - - } - - - //単一アカウントのemailの取得 - @GET - @Path("/{user-id}/email") - @Produces(MediaType.APPLICATION_JSON) - public Response getEmail(@PathParam("user-id") String userId) { - User user = userRepository.getUser(userId); - if (user == null) { - throw new WebApplicationException(Response.Status.NOT_FOUND); - } - return Response.ok(user.getEmail(), MediaType.APPLICATION_JSON).build(); - } - - //指定されたIDのemailを変更する - @PUT - @Path("/{user-id}/email") - @Consumes(MediaType.APPLICATION_FORM_URLENCODED) - public Response updateEmail(@PathParam("user-id") String userId, @FormParam("new-email") String newEmail, @FormParam("token") String token) { - User user = userRepository.getUser(userId); if (user == null) { throw new WebApplicationException( @@ -285,6 +297,73 @@ ); } + + //パスワードのアップデート + user.setPassword(newPassword); + return Response.ok().build(); + + } + + + //単一アカウントのemailの取得 + @GET + @Path("/{user-id}/email") + @Produces(MediaType.APPLICATION_JSON) + public Response getEmail(@PathParam("user-id") String userId, @QueryParam("token") String token) { + + User user = userRepository.getUser(userId); + if (user == null) { + throw new WebApplicationException(Response.Status.NOT_FOUND); + } + + if (token == null || !token.equals(user.getToken())) { + throw new WebApplicationException( + Response.status(Response.Status.FORBIDDEN) + .entity("認証失敗") + .build() + ); + } + return Response.ok(user.getEmail(), MediaType.APPLICATION_JSON).build(); + } + + //指定されたIDのemailを変更する + @PUT + @Path("/{user-id}/email") + @Consumes(MediaType.APPLICATION_FORM_URLENCODED) + @Produces(MediaType.APPLICATION_JSON) + public Response updateEmail(@PathParam("user-id") String userId, @FormParam("new-email") String newEmail, @FormParam("token") String token) { + + if (newEmail == null || newEmail.isBlank()) { + throw new WebApplicationException(Response.Status.BAD_REQUEST); + } + + + User user = userRepository.getUser(userId); + if (user == null) { + throw new WebApplicationException( + Response.status(Response.Status.NOT_FOUND) + .entity("ユーザーが存在しません") + .build() + ); + } + //メールアドレスの重複チェック + ArrayList userEmailLists = userRepository.getAllEmails(); + for (String userEmailList : userEmailLists) { + if (userEmailList != null && userEmailList.equals(newEmail)) { + throw new WebApplicationException(Response.status(Response.Status.CONFLICT).entity("emailが重複しています").build()); + //return Response.status(Response.Status.CONFLICT).entity("emailが重複しています").build(); + } + } + + if (token == null || !token.equals(user.getToken())) { + throw new WebApplicationException( + Response.status(Response.Status.FORBIDDEN) + .entity("認証失敗") + .build() + ); + } + + //emailアップデート user.setEmail(newEmail); return Response.ok(user.getEmail(), MediaType.APPLICATION_JSON).build(); @@ -309,6 +388,10 @@ @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public String updateIcon(@PathParam("user-id") String userId, @FormParam("new-icon") String newIcon, @FormParam("token") String token) { + if (newIcon == null || newIcon.isBlank()) { + throw new WebApplicationException(Response.Status.BAD_REQUEST); + } + User user = userRepository.getUser(userId); if (user == null) { throw new WebApplicationException( @@ -372,6 +455,11 @@ @Path("/{user-id}/friends/{pair-id}") @Produces(MediaType.APPLICATION_JSON) public Response getPairId(@PathParam("user-id") String userId, @QueryParam("token") String token, @PathParam("pair-id") String pairId) { + + if (pairId == null || pairId.isBlank()) { + throw new WebApplicationException(Response.Status.BAD_REQUEST); + } + User user = userRepository.getUser(userId); if (user == null) { throw new WebApplicationException( @@ -400,7 +488,11 @@ @DELETE @Path("/{user-id}/friends/{pair-id}") @Produces(MediaType.APPLICATION_JSON) - public Response deleteFriends(@PathParam("user-id") String userId, @PathParam("pair-id") int pairId, @QueryParam("token") String token) { + public Response deleteFriends(@PathParam("user-id") String userId, @PathParam("pair-id") Integer pairId, @QueryParam("token") String token) { + + if (pairId == null || pairId <= 0) { + throw new WebApplicationException(Response.Status.BAD_REQUEST); + } User user = userRepository.getUser(userId); if (user == null) { throw new NotFoundException("IDが存在しません"); @@ -417,7 +509,7 @@ boolean removed = friendService.removeFriendPair(token, pairId); - if(!removed) { + if (!removed) { throw new WebApplicationException(Response.Status.NOT_FOUND); } 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/models/FriendPairTest.java b/src/test/java/org/ntlab/tampoposerver/models/FriendPairTest.java new file mode 100644 index 0000000..6fb65f1 --- /dev/null +++ b/src/test/java/org/ntlab/tampoposerver/models/FriendPairTest.java @@ -0,0 +1,25 @@ +package org.ntlab.tampoposerver.models; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; + +@SpringBootTest +public class FriendPairTest { + @Test + public void verifyUserEquation() { + FriendPair testPair0 = new FriendPair("user0", "user1"); + FriendPair testPair1 = new FriendPair("another_user0", "another_user1"); + + assertEquals("user0", testPair0.getUser0Id()); + assertEquals("user1", testPair0.getUser1Id()); + assertEquals("another_user0", testPair1.getUser0Id()); + assertEquals("another_user1", testPair1.getUser1Id()); + assertNotEquals("user1", testPair0.getUser0Id()); + assertNotEquals("user0", testPair0.getUser1Id()); + assertNotEquals("another_user1", testPair1.getUser0Id()); + assertNotEquals("another_user0", testPair1.getUser1Id()); + } +} diff --git a/src/test/java/org/ntlab/tampoposerver/models/FriendRequestTest.java b/src/test/java/org/ntlab/tampoposerver/models/FriendRequestTest.java new file mode 100644 index 0000000..3d4682c --- /dev/null +++ b/src/test/java/org/ntlab/tampoposerver/models/FriendRequestTest.java @@ -0,0 +1,25 @@ +package org.ntlab.tampoposerver.models; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; + +@SpringBootTest +public class FriendRequestTest { + @Test + public void verifyFriendRequestEquation() { + FriendRequest testRequest0 = new FriendRequest("user0", "user1"); + FriendRequest testRequest1 = new FriendRequest("another_user0", "another_user1"); + + assertEquals("user0", testRequest0.getSenderId()); + assertEquals("user1", testRequest0.getReceiverId()); + assertEquals("another_user0", testRequest1.getSenderId()); + assertEquals("another_user1", testRequest1.getReceiverId()); + assertNotEquals("user1", testRequest0.getSenderId()); + assertNotEquals("user0", testRequest0.getReceiverId()); + assertNotEquals("another_user1", testRequest1.getSenderId()); + assertNotEquals("another_user0", testRequest1.getReceiverId()); + } +} diff --git a/src/test/java/org/ntlab/tampoposerver/repositories/ActivityRepositoryTest.java b/src/test/java/org/ntlab/tampoposerver/repositories/ActivityRepositoryTest.java index c29d918..3500e55 100644 --- a/src/test/java/org/ntlab/tampoposerver/repositories/ActivityRepositoryTest.java +++ b/src/test/java/org/ntlab/tampoposerver/repositories/ActivityRepositoryTest.java @@ -57,6 +57,17 @@ Activity a7 = activityRepository.getActivity("xyz", a1.getActivityId()); assertNull(a7); + //アクティビティのテキストを返すメソッド + String text = activityRepository.getActivityText("abc",a2.getActivityId()); + String text2 = activityRepository.getActivityText("abc","-1"); + assertEquals(a2.getText(),text); + assertNotEquals(a100.getText(),text); + assertNull(text2); + System.out.println(a1); + System.out.println(a2); + System.out.println(text); + System.out.println(text2); + //単一アクティビティの投稿時間の取得 String time = activityRepository.getActivityUpdateTime("abc",a2.getActivityId()); String time2 = activityRepository.getActivityUpdateTime("abc","-1"); 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); + } +} diff --git a/src/test/java/org/ntlab/tampoposerver/repositories/FriendRepositoryTest.java b/src/test/java/org/ntlab/tampoposerver/repositories/FriendRepositoryTest.java new file mode 100644 index 0000000..dc74bd1 --- /dev/null +++ b/src/test/java/org/ntlab/tampoposerver/repositories/FriendRepositoryTest.java @@ -0,0 +1,49 @@ +package org.ntlab.tampoposerver.repositories; + +import org.junit.jupiter.api.Test; +import org.ntlab.tampoposerver.models.FriendPair; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; + +@SpringBootTest +public class FriendRepositoryTest { + @Autowired + private FriendRepository friendRepository; + + @Test + public void contextLoads() { + assertThat(friendRepository).isNotNull(); + } + + @Test + public void test() { + // Adding friend pair + FriendPair pair = new FriendPair("user-0", "user-1"); + FriendPair addedPair = friendRepository.add(pair); + assertEquals(0, addedPair.getId()); + assertEquals("user-0", addedPair.getUser0Id()); + assertEquals("user-1", addedPair.getUser1Id()); + + FriendPair anotherPair = new FriendPair("another-user-0", "another-user-1"); + FriendPair anotherAddedPair = friendRepository.add(anotherPair); + assertEquals(1, anotherAddedPair.getId()); + assertEquals("another-user-0", anotherAddedPair.getUser0Id()); + assertEquals("another-user-1", anotherAddedPair.getUser1Id()); + + FriendPair wrongIdPair = new FriendPair("wrong-user-0", "wrong-user-1"); + FriendPair addedWrongIdPair = friendRepository.add(wrongIdPair); + assertNotEquals(10, addedWrongIdPair.getId()); + assertNotEquals("wrong-user-10", addedWrongIdPair.getUser0Id()); + assertNotEquals("wrong-user-11", addedWrongIdPair.getUser1Id()); + + // Get friends + FriendPair foundPair = friendRepository.find(0); + assertEquals(0, foundPair.getId()); + assertEquals("user-0", foundPair.getUser0Id()); + assertEquals("user-1", foundPair.getUser1Id()); + } +} diff --git a/src/test/java/org/ntlab/tampoposerver/repositories/FriendRequestRepositoryTest.java b/src/test/java/org/ntlab/tampoposerver/repositories/FriendRequestRepositoryTest.java new file mode 100644 index 0000000..22c7f92 --- /dev/null +++ b/src/test/java/org/ntlab/tampoposerver/repositories/FriendRequestRepositoryTest.java @@ -0,0 +1,49 @@ +package org.ntlab.tampoposerver.repositories; + +import org.junit.jupiter.api.Test; +import org.ntlab.tampoposerver.models.FriendRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; + +@SpringBootTest() +public class FriendRequestRepositoryTest { + @Autowired + private FriendRequestRepository friendRequestRepository; + + @Test + public void contextLoads() { + assertThat(friendRequestRepository).isNotNull(); + } + + @Test + public void test() { + // Adding friend pair + FriendRequest request = new FriendRequest("user-0", "user-1"); + FriendRequest createdRequest = friendRequestRepository.create(request); + assertEquals(0, createdRequest.getId()); + assertEquals("user-0", createdRequest.getSenderId()); + assertEquals("user-1", createdRequest.getReceiverId()); + + FriendRequest anotherRequest = new FriendRequest("another-user-0", "another-user-1"); + FriendRequest anotherCreatedRequest = friendRequestRepository.create(anotherRequest); + assertEquals(1, anotherCreatedRequest.getId()); + assertEquals("another-user-0", anotherCreatedRequest.getSenderId()); + assertEquals("another-user-1", anotherCreatedRequest.getReceiverId()); + + FriendRequest wrongIdRequest = new FriendRequest("wrong-user-0", "wrong-user-1"); + FriendRequest addedWrongIdRequest = friendRequestRepository.create(wrongIdRequest); + assertNotEquals(10, addedWrongIdRequest.getId()); + assertNotEquals("wrong-user-10", addedWrongIdRequest.getSenderId()); + assertNotEquals("wrong-user-11", addedWrongIdRequest.getReceiverId()); + + // Getting friends + FriendRequest foundRequest = friendRequestRepository.find(0); + assertEquals(0, foundRequest.getId()); + assertEquals("user-0", foundRequest.getSenderId()); + assertEquals("user-1", foundRequest.getReceiverId()); + } +} diff --git a/src/test/java/org/ntlab/tampoposerver/repositories/UserRepositoryTest.java b/src/test/java/org/ntlab/tampoposerver/repositories/UserRepositoryTest.java index 6ac9843..3bbeee6 100644 --- a/src/test/java/org/ntlab/tampoposerver/repositories/UserRepositoryTest.java +++ b/src/test/java/org/ntlab/tampoposerver/repositories/UserRepositoryTest.java @@ -19,9 +19,13 @@ User u3 = userRepository.addUser("u03", "ghj", "yyi","yijdh@gmail.com","143a876bca878d125"); // User u = userRepository.getUser("u02"); //getAllUsersテスト - ArrayList users = userRepository.getAllUsers(); - for (User u : users) { - System.out.println(u.getUserId()); +// ArrayList users = userRepository.getAllUsers(); +// for (User u : users) { +// System.out.println(u.getUserId()); +// } + ArrayList emails = userRepository.getAllEmails(); + for (String email : emails) { + System.out.println(email); } // System.out.println(users); // assertEquals(u2, u);