From cea03e01b9b545addcfa5e95187e9291535717fc Mon Sep 17 00:00:00 2001 From: aisensiy Date: Fri, 25 Aug 2017 11:34:41 +0800 Subject: [PATCH] refactoring --- .../java/io/spring/api/CurrentUserApi.java | 2 +- src/main/java/io/spring/api/UsersApi.java | 2 +- .../application/ArticleQueryService.java | 22 ++++++++----------- .../spring/application/UserQueryService.java | 5 +---- .../data/ArticleFavoriteCount.java | 9 ++++++++ .../application/{ => data}/UserWithToken.java | 3 +-- .../ArticleFavoritesReadService.java} | 5 +++-- ...ce.xml => ArticleFavoritesReadService.xml} | 2 +- src/main/resources/mapper/TransferData.xml | 2 +- src/test/java/io/spring/api/ApiTestBase.java | 13 ----------- .../java/io/spring/api/ArticleApiTest.java | 2 -- .../io/spring/api/ArticleFavoriteApiTest.java | 3 +-- .../java/io/spring/api/ProfileApiTest.java | 2 -- .../io/spring/api/TestWithCurrentUser.java | 4 +--- src/test/java/io/spring/api/UsersApiTest.java | 2 +- .../article/MyBatisArticleRepositoryTest.java | 3 +-- 16 files changed, 31 insertions(+), 50 deletions(-) create mode 100644 src/main/java/io/spring/application/data/ArticleFavoriteCount.java rename src/main/java/io/spring/application/{ => data}/UserWithToken.java (85%) rename src/main/java/io/spring/{application/ArticleFavoritesQueryService.java => infrastructure/mybatis/readservice/ArticleFavoritesReadService.java} (79%) rename src/main/resources/mapper/{ArticleFavoritesQueryService.xml => ArticleFavoritesReadService.xml} (92%) delete mode 100644 src/test/java/io/spring/api/ApiTestBase.java diff --git a/src/main/java/io/spring/api/CurrentUserApi.java b/src/main/java/io/spring/api/CurrentUserApi.java index 81e64f9..33115e4 100644 --- a/src/main/java/io/spring/api/CurrentUserApi.java +++ b/src/main/java/io/spring/api/CurrentUserApi.java @@ -3,7 +3,7 @@ package io.spring.api; import com.fasterxml.jackson.annotation.JsonRootName; import io.spring.api.exception.InvalidRequestException; import io.spring.application.UserQueryService; -import io.spring.application.UserWithToken; +import io.spring.application.data.UserWithToken; import io.spring.application.data.UserData; import io.spring.core.user.User; import io.spring.core.user.UserRepository; diff --git a/src/main/java/io/spring/api/UsersApi.java b/src/main/java/io/spring/api/UsersApi.java index baa0e86..df291bf 100644 --- a/src/main/java/io/spring/api/UsersApi.java +++ b/src/main/java/io/spring/api/UsersApi.java @@ -3,7 +3,7 @@ package io.spring.api; import com.fasterxml.jackson.annotation.JsonRootName; import io.spring.api.exception.InvalidRequestException; import io.spring.application.UserQueryService; -import io.spring.application.UserWithToken; +import io.spring.application.data.UserWithToken; import io.spring.application.data.UserData; import io.spring.core.service.JwtService; import io.spring.core.user.EncryptService; diff --git a/src/main/java/io/spring/application/ArticleQueryService.java b/src/main/java/io/spring/application/ArticleQueryService.java index 110329b..0e0b959 100644 --- a/src/main/java/io/spring/application/ArticleQueryService.java +++ b/src/main/java/io/spring/application/ArticleQueryService.java @@ -2,10 +2,11 @@ package io.spring.application; import io.spring.application.data.ArticleData; import io.spring.application.data.ArticleDataList; +import io.spring.application.data.ArticleFavoriteCount; import io.spring.core.user.User; +import io.spring.infrastructure.mybatis.readservice.ArticleFavoritesReadService; import io.spring.infrastructure.mybatis.readservice.ArticleReadService; import io.spring.infrastructure.mybatis.readservice.UserRelationshipQueryService; -import lombok.Value; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,15 +23,15 @@ import static java.util.stream.Collectors.toList; public class ArticleQueryService { private ArticleReadService articleReadService; private UserRelationshipQueryService userRelationshipQueryService; - private ArticleFavoritesQueryService articleFavoritesQueryService; + private ArticleFavoritesReadService articleFavoritesReadService; @Autowired public ArticleQueryService(ArticleReadService articleReadService, UserRelationshipQueryService userRelationshipQueryService, - ArticleFavoritesQueryService articleFavoritesQueryService) { + ArticleFavoritesReadService articleFavoritesReadService) { this.articleReadService = articleReadService; this.userRelationshipQueryService = userRelationshipQueryService; - this.articleFavoritesQueryService = articleFavoritesQueryService; + this.articleFavoritesReadService = articleFavoritesReadService; } public Optional findById(String id, User user) { @@ -89,7 +90,7 @@ public class ArticleQueryService { } private void setFavoriteCount(List articles) { - List favoritesCounts = articleFavoritesQueryService.articlesFavoriteCount(articles.stream().map(ArticleData::getId).collect(toList())); + List favoritesCounts = articleFavoritesReadService.articlesFavoriteCount(articles.stream().map(ArticleData::getId).collect(toList())); Map countMap = new HashMap<>(); favoritesCounts.forEach(item -> { countMap.put(item.getId(), item.getCount()); @@ -98,7 +99,7 @@ public class ArticleQueryService { } private void setIsFavorite(List articles, User currentUser) { - Set favoritedArticles = articleFavoritesQueryService.userFavorites(articles.stream().map(articleData -> articleData.getId()).collect(toList()), currentUser); + Set favoritedArticles = articleFavoritesReadService.userFavorites(articles.stream().map(articleData -> articleData.getId()).collect(toList()), currentUser); articles.forEach(articleData -> { if (favoritedArticles.contains(articleData.getId())) { @@ -108,8 +109,8 @@ public class ArticleQueryService { } private void fillExtraInfo(String id, User user, ArticleData articleData) { - articleData.setFavorited(articleFavoritesQueryService.isUserFavorite(user.getId(), id)); - articleData.setFavoritesCount(articleFavoritesQueryService.articleFavoriteCount(id)); + articleData.setFavorited(articleFavoritesReadService.isUserFavorite(user.getId(), id)); + articleData.setFavoritesCount(articleFavoritesReadService.articleFavoriteCount(id)); articleData.getProfileData().setFollowing( userRelationshipQueryService.isUserFollowing( user.getId(), @@ -129,8 +130,3 @@ public class ArticleQueryService { } } -@Value -class ArticleFavoriteCount { - private String id; - private Integer count; -} \ No newline at end of file diff --git a/src/main/java/io/spring/application/UserQueryService.java b/src/main/java/io/spring/application/UserQueryService.java index 8054355..db564f3 100644 --- a/src/main/java/io/spring/application/UserQueryService.java +++ b/src/main/java/io/spring/application/UserQueryService.java @@ -1,7 +1,6 @@ package io.spring.application; import io.spring.application.data.UserData; -import io.spring.core.service.JwtService; import io.spring.infrastructure.mybatis.readservice.UserReadService; import org.springframework.stereotype.Service; @@ -10,11 +9,9 @@ import java.util.Optional; @Service public class UserQueryService { private UserReadService userReadService; - private JwtService jwtService; - public UserQueryService(UserReadService userReadService, JwtService jwtService) { + public UserQueryService(UserReadService userReadService) { this.userReadService = userReadService; - this.jwtService = jwtService; } public Optional findById(String id) { diff --git a/src/main/java/io/spring/application/data/ArticleFavoriteCount.java b/src/main/java/io/spring/application/data/ArticleFavoriteCount.java new file mode 100644 index 0000000..1866a68 --- /dev/null +++ b/src/main/java/io/spring/application/data/ArticleFavoriteCount.java @@ -0,0 +1,9 @@ +package io.spring.application.data; + +import lombok.Value; + +@Value +public class ArticleFavoriteCount { + private String id; + private Integer count; +} diff --git a/src/main/java/io/spring/application/UserWithToken.java b/src/main/java/io/spring/application/data/UserWithToken.java similarity index 85% rename from src/main/java/io/spring/application/UserWithToken.java rename to src/main/java/io/spring/application/data/UserWithToken.java index eb8b4c2..ccb96c8 100644 --- a/src/main/java/io/spring/application/UserWithToken.java +++ b/src/main/java/io/spring/application/data/UserWithToken.java @@ -1,6 +1,5 @@ -package io.spring.application; +package io.spring.application.data; -import io.spring.application.data.UserData; import lombok.Getter; @Getter diff --git a/src/main/java/io/spring/application/ArticleFavoritesQueryService.java b/src/main/java/io/spring/infrastructure/mybatis/readservice/ArticleFavoritesReadService.java similarity index 79% rename from src/main/java/io/spring/application/ArticleFavoritesQueryService.java rename to src/main/java/io/spring/infrastructure/mybatis/readservice/ArticleFavoritesReadService.java index e03e0dd..76333e3 100644 --- a/src/main/java/io/spring/application/ArticleFavoritesQueryService.java +++ b/src/main/java/io/spring/infrastructure/mybatis/readservice/ArticleFavoritesReadService.java @@ -1,5 +1,6 @@ -package io.spring.application; +package io.spring.infrastructure.mybatis.readservice; +import io.spring.application.data.ArticleFavoriteCount; import io.spring.core.user.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -10,7 +11,7 @@ import java.util.Set; @Mapper @Component -public interface ArticleFavoritesQueryService { +public interface ArticleFavoritesReadService { boolean isUserFavorite(@Param("userId") String userId, @Param("articleId") String articleId); int articleFavoriteCount(@Param("articleId") String articleId); diff --git a/src/main/resources/mapper/ArticleFavoritesQueryService.xml b/src/main/resources/mapper/ArticleFavoritesReadService.xml similarity index 92% rename from src/main/resources/mapper/ArticleFavoritesQueryService.xml rename to src/main/resources/mapper/ArticleFavoritesReadService.xml index e7247b8..d497c8c 100644 --- a/src/main/resources/mapper/ArticleFavoritesQueryService.xml +++ b/src/main/resources/mapper/ArticleFavoritesReadService.xml @@ -1,6 +1,6 @@ - + diff --git a/src/main/resources/mapper/TransferData.xml b/src/main/resources/mapper/TransferData.xml index 719486c..a57a5cc 100644 --- a/src/main/resources/mapper/TransferData.xml +++ b/src/main/resources/mapper/TransferData.xml @@ -1,7 +1,7 @@ - + diff --git a/src/test/java/io/spring/api/ApiTestBase.java b/src/test/java/io/spring/api/ApiTestBase.java deleted file mode 100644 index 249dac8..0000000 --- a/src/test/java/io/spring/api/ApiTestBase.java +++ /dev/null @@ -1,13 +0,0 @@ -package io.spring.api; - -import org.junit.Before; -import org.junit.runner.RunWith; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -public abstract class ApiTestBase { - - @Before - public void setUp() throws Exception { - } -} diff --git a/src/test/java/io/spring/api/ArticleApiTest.java b/src/test/java/io/spring/api/ArticleApiTest.java index 2ff6034..5f6a75f 100644 --- a/src/test/java/io/spring/api/ArticleApiTest.java +++ b/src/test/java/io/spring/api/ArticleApiTest.java @@ -89,7 +89,6 @@ public class ArticleApiTest extends TestWithCurrentUser { Article article = new Article(title, description, body, new String[]{"java", "spring", "jpg"}, user.getId()); - DateTime time = new DateTime(); ArticleData articleData = TestHelper.getArticleDataFromArticleAndUser(article, user); when(articleRepository.findBySlug(eq(article.getSlug()))).thenReturn(Optional.of(article)); @@ -168,7 +167,6 @@ public class ArticleApiTest extends TestWithCurrentUser { String title = "new-title"; String body = "new body"; String description = "new description"; - Map updateParam = prepareUpdateParam(title, body, description); User anotherUser = new User("test@test.com", "test", "123123", "", ""); diff --git a/src/test/java/io/spring/api/ArticleFavoriteApiTest.java b/src/test/java/io/spring/api/ArticleFavoriteApiTest.java index 7e1717a..8fc2113 100644 --- a/src/test/java/io/spring/api/ArticleFavoriteApiTest.java +++ b/src/test/java/io/spring/api/ArticleFavoriteApiTest.java @@ -46,13 +46,12 @@ public class ArticleFavoriteApiTest extends TestWithCurrentUser { private ArticleQueryService articleQueryService; private Article article; - private User anotherUser; @Before public void setUp() throws Exception { super.setUp(); RestAssuredMockMvc.mockMvc(mvc); - anotherUser = new User("other@test.com", "other", "123", "", ""); + User anotherUser = new User("other@test.com", "other", "123", "", ""); article = new Article("title", "desc", "body", new String[]{"java"}, anotherUser.getId()); when(articleRepository.findBySlug(eq(article.getSlug()))).thenReturn(Optional.of(article)); ArticleData articleData = new ArticleData( diff --git a/src/test/java/io/spring/api/ProfileApiTest.java b/src/test/java/io/spring/api/ProfileApiTest.java index ad7f011..dddce43 100644 --- a/src/test/java/io/spring/api/ProfileApiTest.java +++ b/src/test/java/io/spring/api/ProfileApiTest.java @@ -5,7 +5,6 @@ import io.spring.JacksonCustomizations; import io.spring.api.security.WebSecurityConfig; import io.spring.application.ProfileQueryService; import io.spring.application.data.ProfileData; -import io.spring.core.article.Article; import io.spring.core.user.FollowRelation; import io.spring.core.user.User; import org.junit.Before; @@ -27,7 +26,6 @@ import static org.mockito.Mockito.when; @WebMvcTest(ProfileApi.class) @Import({WebSecurityConfig.class, JacksonCustomizations.class}) public class ProfileApiTest extends TestWithCurrentUser { - private Article article; private User anotherUser; @Autowired diff --git a/src/test/java/io/spring/api/TestWithCurrentUser.java b/src/test/java/io/spring/api/TestWithCurrentUser.java index bb44264..57ebcf8 100644 --- a/src/test/java/io/spring/api/TestWithCurrentUser.java +++ b/src/test/java/io/spring/api/TestWithCurrentUser.java @@ -13,7 +13,7 @@ import java.util.Optional; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.when; -abstract class TestWithCurrentUser extends ApiTestBase { +abstract class TestWithCurrentUser { @MockBean protected UserRepository userRepository; @@ -46,10 +46,8 @@ abstract class TestWithCurrentUser extends ApiTestBase { when(jwtService.getSubFromToken(eq(token))).thenReturn(Optional.of(user.getId())); } - @Override @Before public void setUp() throws Exception { - super.setUp(); userFixture(); } } diff --git a/src/test/java/io/spring/api/UsersApiTest.java b/src/test/java/io/spring/api/UsersApiTest.java index 581ed25..2df531c 100644 --- a/src/test/java/io/spring/api/UsersApiTest.java +++ b/src/test/java/io/spring/api/UsersApiTest.java @@ -31,7 +31,7 @@ import static org.mockito.Mockito.when; @WebMvcTest(UsersApi.class) @Import({WebSecurityConfig.class, UserQueryService.class, NaiveEncryptService.class, JacksonCustomizations.class}) -public class UsersApiTest extends ApiTestBase { +public class UsersApiTest { @Autowired private MockMvc mvc; diff --git a/src/test/java/io/spring/infrastructure/article/MyBatisArticleRepositoryTest.java b/src/test/java/io/spring/infrastructure/article/MyBatisArticleRepositoryTest.java index adf3a70..b008e00 100644 --- a/src/test/java/io/spring/infrastructure/article/MyBatisArticleRepositoryTest.java +++ b/src/test/java/io/spring/infrastructure/article/MyBatisArticleRepositoryTest.java @@ -31,13 +31,12 @@ public class MyBatisArticleRepositoryTest { @Autowired private UserRepository userRepository; - private User user; private Article article; @Before public void setUp() throws Exception { - user = new User("aisensiy@gmail.com", "aisensiy", "123", "bio", "default"); + User user = new User("aisensiy@gmail.com", "aisensiy", "123", "bio", "default"); userRepository.save(user); article = new Article("test", "desc", "body", new String[]{"java", "spring"}, user.getId()); }