diff --git a/src/main/java/cn/celess/blog/entity/Article.java b/src/main/java/cn/celess/blog/entity/Article.java index 496a1d3..e3f3e47 100644 --- a/src/main/java/cn/celess/blog/entity/Article.java +++ b/src/main/java/cn/celess/blog/entity/Article.java @@ -42,21 +42,6 @@ public class Article { private Date updateDate = null; - @Deprecated - private Long categoryId; - - @Deprecated - private String tagsId; - - @Deprecated - private Long authorId; - - @Deprecated - private Long preArticleId; - - @Deprecated - private Long nextArticleId; - private Long readingNumber; /** @@ -73,4 +58,6 @@ public class Article { private Integer dislikeCount; private User user; + + private boolean deleted = false; } diff --git a/src/main/java/cn/celess/blog/entity/ArticleTag.java b/src/main/java/cn/celess/blog/entity/ArticleTag.java new file mode 100644 index 0000000..af8f5d3 --- /dev/null +++ b/src/main/java/cn/celess/blog/entity/ArticleTag.java @@ -0,0 +1,27 @@ +package cn.celess.blog.entity; + +import com.sun.xml.internal.ws.policy.EffectiveAlternativeSelector; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: 小海 + * @Date: 2020-05-24 14:52 + * @Desc: + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ArticleTag { + private Long id; + + private Article article; + + private TagCategory tag; + + public ArticleTag(Article article, TagCategory tag) { + this.article = article; + this.tag = tag; + } +} diff --git a/src/main/java/cn/celess/blog/mapper/ArticleMapper.java b/src/main/java/cn/celess/blog/mapper/ArticleMapper.java index c5b6e1d..e276fe7 100644 --- a/src/main/java/cn/celess/blog/mapper/ArticleMapper.java +++ b/src/main/java/cn/celess/blog/mapper/ArticleMapper.java @@ -21,15 +21,6 @@ public interface ArticleMapper { int update(Article a); - @Deprecated - int updateNextArticleId(long targetArticleID, long nextArticleID); - - @Deprecated - int updatePreArticleId(long targetArticleID, long preArticleID); - - @Deprecated - long getLastestArticleId(); - Article getLastestArticle(); Article findArticleById(long id); @@ -38,7 +29,7 @@ public interface ArticleMapper { boolean isDeletedById(long id); - List
findAllByAuthorId(long authorID); + List
findAllByAuthorId(long authorId); List
findAllByOpen(boolean isOpen); @@ -48,15 +39,6 @@ public interface ArticleMapper { List
findAll(); - Article getSimpleInfo(long id); - - List
getSimpleInfoByCategory(long categoryId); - - List
getSimpleInfoByTag(List idList); - - @Deprecated - int setReadingNumber(long number, long id); - int updateReadingNumber(long id); long count(); diff --git a/src/main/java/cn/celess/blog/mapper/ArticleTagMapper.java b/src/main/java/cn/celess/blog/mapper/ArticleTagMapper.java new file mode 100644 index 0000000..7991a55 --- /dev/null +++ b/src/main/java/cn/celess/blog/mapper/ArticleTagMapper.java @@ -0,0 +1,31 @@ +package cn.celess.blog.mapper; + +import cn.celess.blog.entity.ArticleTag; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Author: 小海 + * @Date: 2020-05-24 14:21 + * @Desc: + */ +@Mapper +@Repository +public interface ArticleTagMapper { + + int insert(ArticleTag articleTag); + + int update(ArticleTag articleTag); + + ArticleTag findOneById(Long id); + + int deleteById(Long id); + + int deleteByArticleId(Long articleId); + + List findAllByArticleId(Long articleId); + + int deleteMultiById(List articleTags); +} diff --git a/src/main/resources/mapper/articleMapper.xml b/src/main/resources/mapper/articleMapper.xml index 7dc1e18..19fc2c9 100644 --- a/src/main/resources/mapper/articleMapper.xml +++ b/src/main/resources/mapper/articleMapper.xml @@ -113,7 +113,7 @@ diff --git a/src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java b/src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java index 1275e91..5a7921a 100644 --- a/src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java +++ b/src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java @@ -20,7 +20,6 @@ public class ArticleMapperTest extends BaseTest { @Test public void insert() { - Article article = generateArticle().getArticle(); assertNotNull(article.getId()); } @@ -33,8 +32,6 @@ public class ArticleMapperTest extends BaseTest { assertFalse(articleMapper.isDeletedById(article.getId())); assertEquals(1, articleMapper.delete(article.getId())); assertTrue(articleMapper.isDeletedById(article.getId())); - - } @Test @@ -88,7 +85,6 @@ public class ArticleMapperTest extends BaseTest { }); } - @Test public void updateReadCount() { Article article = generateArticle().getArticle(); @@ -99,7 +95,6 @@ public class ArticleMapperTest extends BaseTest { assertEquals(Long.valueOf(1), articleById.getReadingNumber()); } - @Test public void getLastestArticle() { Article article = generateArticle().getArticle(); @@ -110,6 +105,73 @@ public class ArticleMapperTest extends BaseTest { assertNotEquals(0, lastestArticle.getTags().size()); } + @Test + public void findArticleById() { + Article article = generateArticle().getArticle(); + Article articleById = articleMapper.findArticleById(article.getId()); + assertNotNull(articleById); + assertEquals(article.getId(), articleById.getId()); + } + + @Test + public void existsByTitle() { + Article article = generateArticle().getArticle(); + assertTrue(articleMapper.existsByTitle(article.getTitle())); + assertFalse(articleMapper.existsByTitle(UUID.randomUUID().toString())); + } + + @Test + public void isDeletedById() { + Article article = generateArticle().getArticle(); + assertFalse(articleMapper.isDeletedById(article.getId())); + articleMapper.delete(article.getId()); + assertTrue(articleMapper.isDeletedById(article.getId())); + + } + + @Test + public void findAllByAuthorId() { + List
allByAuthorId = articleMapper.findAllByAuthorId(1); + assertNotEquals(0, allByAuthorId.size()); + } + + @Test + public void findAllByOpen() { + List
allByOpen = articleMapper.findAllByOpen(true); + assertNotEquals(0, allByOpen); + + Article article = generateArticle().getArticle(); + article.setOpen(false); + + articleMapper.update(article); + + List
privateArticles = articleMapper.findAllByOpen(false); + assertTrue(privateArticles.size() > 0); + } + + @Test + public void getTitleById() { + Article article = generateArticle().getArticle(); + + assertEquals(article.getTitle(), articleMapper.getTitleById(article.getId())); + } + + @Test + public void findAllByCategoryId() { + List
allByCategoryId = articleMapper.findAllByCategoryId(1); + assertNotEquals(0, allByCategoryId.size()); + } + + @Test + public void findAll() { + List
allByCategoryId = articleMapper.findAll(); + assertNotEquals(0, allByCategoryId.size()); + } + + @Test + public void count() { + assertNotEquals(0, articleMapper.count()); + } private ArticleTag generateArticle() { String randomText = UUID.randomUUID().toString(); @@ -122,7 +184,7 @@ public class ArticleMapperTest extends BaseTest { article.setMdContent("# unity test for article"); article.setSummary("unity test for article"); - Tag tag = tagMapper.findTagByName("随笔"); + Tag tag = tagMapper.findTagByName("随笔"); User user = new User(); user.setId(1L); article.setUser(user); @@ -137,4 +199,5 @@ public class ArticleMapperTest extends BaseTest { return articleTag; } + } \ No newline at end of file diff --git a/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java b/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java new file mode 100644 index 0000000..115d90c --- /dev/null +++ b/src/test/java/cn/celess/blog/mapper/ArticleTagMapperTest.java @@ -0,0 +1,126 @@ +package cn.celess.blog.mapper; + +import cn.celess.blog.BaseTest; +import cn.celess.blog.entity.*; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Iterator; +import java.util.List; +import java.util.UUID; + +import static org.junit.Assert.*; + +public class ArticleTagMapperTest extends BaseTest { + + @Autowired + ArticleMapper articleMapper; + @Autowired + ArticleTagMapper articleTagMapper; + @Autowired + TagMapper tagMapper; + + + @Test + public void insert() { + ArticleTag articleTag = generateArticle(); + assertNotNull(articleTag); + assertNotNull(articleTag.getArticle()); + assertNotNull(articleTag.getTag()); + } + + @Test + public void update() { + Tag tag = tagMapper.findTagByName("电影"); + ArticleTag articleTag = generateArticle(); + articleTag.setTag(tag); + + articleTagMapper.update(articleTag); + + ArticleTag oneById = articleTagMapper.findOneById(articleTag.getId()); + assertEquals(articleTag.getArticle().getId(), oneById.getArticle().getId()); + assertEquals(articleTag.getArticle().getTitle(), oneById.getArticle().getTitle()); + assertEquals(articleTag.getTag().getName(), oneById.getTag().getName()); + } + + @Test + public void deleteById() { + ArticleTag articleTag = generateArticle(); + + articleTagMapper.deleteById(articleTag.getId()); + + ArticleTag oneById = articleTagMapper.findOneById(articleTag.getId()); + assertNull(oneById); + + articleTagMapper.insert(articleTag); + } + + @Test + public void deleteByArticleId() { + ArticleTag articleTag = generateArticle(); + int i = articleTagMapper.deleteByArticleId(articleTag.getArticle().getId()); + assertNotEquals(0, i); + } + + @Test + public void findAllByArticleId() { + ArticleTag articleTag = generateArticle(); + List allByArticleId = articleTagMapper.findAllByArticleId(articleTag.getArticle().getId()); + assertEquals(1, allByArticleId.size()); + + List list = articleTagMapper.findAllByArticleId(5L); + assertEquals(2, list.size()); + } + + @Test + public void deleteMultiById() { + ArticleTag articleTag = new ArticleTag(); + Article article = new Article(); + article.setId(-1L); + Tag tag = new Tag(); + tag.setId(1L); + articleTag.setArticle(article); + articleTag.setTag(tag); + + articleTagMapper.insert(articleTag); + articleTagMapper.insert(articleTag); + articleTagMapper.insert(articleTag); + articleTagMapper.insert(articleTag); + articleTagMapper.insert(articleTag); + articleTagMapper.insert(articleTag); + + List allByArticleId = articleTagMapper.findAllByArticleId(-1L); + assertEquals(6, allByArticleId.size()); + int lines = articleTagMapper.deleteMultiById(allByArticleId); + assertEquals(6, lines); + } + + + private ArticleTag generateArticle() { + String randomText = UUID.randomUUID().toString(); + + Article article = new Article(); + Category category = new Category(); + category.setId(1L); + article.setCategory(category); + article.setTitle(" unity test for article " + randomText); + article.setMdContent("# unity test for article"); + article.setSummary("unity test for article"); + + User user = new User(); + user.setId(1L); + article.setUser(user); + article.setType(true); + + articleMapper.insert(article); + + ArticleTag articleTag = new ArticleTag(); + Tag tag = tagMapper.findTagByName("随笔"); + articleTag.setArticle(article); + articleTag.setTag(tag); + articleTagMapper.insert(articleTag); + + return articleTag; + } + +} \ No newline at end of file