Files
blog-backEnd/src/test/java/cn/celess/blog/mapper/ArticleMapperTest.java
禾几海 03cb04ab06 修复bug
2020-05-26 12:54:24 +08:00

224 lines
7.5 KiB
Java

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.List;
import java.util.UUID;
import static org.junit.Assert.*;
public class ArticleMapperTest extends BaseTest {
@Autowired
ArticleMapper articleMapper;
@Autowired
TagMapper tagMapper;
@Autowired
ArticleTagMapper articleTagMapper;
@Test
public void insert() {
Article article = generateArticle().getArticle();
assertNotNull(article.getId());
}
@Test
public void delete() {
Article article = generateArticle().getArticle();
assertFalse(articleMapper.isDeletedById(article.getId()));
assertEquals(1, articleMapper.delete(article.getId()));
assertTrue(articleMapper.isDeletedById(article.getId()));
}
@Test
public void update() {
Article article = generateArticle().getArticle();
String randomText = UUID.randomUUID().toString();
// 此字段不会通过insert被写入数据库而是使用插入数据的默认值 数据库中该字段默认为true
article.setOpen(true);
article.setTitle("test update " + randomText);
article.setMdContent("test update ");
article.setSummary("test update ");
article.setType(false);
article.setUrl("https://www.celess.cn");
article.getCategory().setId(2L);
article.setOpen(!article.getOpen());
articleMapper.update(article);
Article articleById = articleMapper.findArticleById(article.getId());
assertEquals(article.getTitle(), articleById.getTitle());
assertEquals(article.getMdContent(), articleById.getMdContent());
assertEquals(article.getSummary(), articleById.getSummary());
assertEquals(article.getType(), articleById.getType());
assertEquals(article.getCategory().getId(), articleById.getCategory().getId());
assertEquals(article.getOpen(), articleById.getOpen());
assertNotNull(articleById.getUpdateDate());
}
@Test
public void selectAll() {
List<Article> list = articleMapper.findAll();
assertNotEquals(0, list.size());
list.forEach(article -> {
assertNotEquals(0, article.getTags().size());
assertNotNull(article.getId());
assertNotNull(article.getTitle());
assertNotNull(article.getSummary());
assertNotNull(article.getMdContent());
assertNotNull(article.getType());
if (!article.getType()) {
assertNotNull(article.getUrl());
}
assertNotNull(article.getReadingNumber());
assertNotNull(article.getLikeCount());
assertNotNull(article.getDislikeCount());
assertNotNull(article.getPublishDate());
assertNotNull(article.getOpen());
assertNotNull(article.getCategory());
assertNotNull(article.getUser());
});
}
@Test
public void updateReadCount() {
Article article = generateArticle().getArticle();
Article articleById = articleMapper.findArticleById(article.getId());
assertEquals(Long.valueOf(0), articleById.getReadingNumber());
articleMapper.updateReadingNumber(articleById.getId());
articleById = articleMapper.findArticleById(article.getId());
assertEquals(Long.valueOf(1), articleById.getReadingNumber());
}
@Test
public void getLastestArticle() {
Article article = generateArticle().getArticle();
Article lastestArticle = articleMapper.getLastestArticle();
assertNotNull(lastestArticle);
assertEquals(article.getId(), lastestArticle.getId());
assertNotNull(lastestArticle.getCategory());
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<Article> allByAuthorId = articleMapper.findAllByAuthorId(1);
assertNotEquals(0, allByAuthorId.size());
}
@Test
public void findAllByOpen() {
List<Article> allByOpen = articleMapper.findAllByOpen(true);
assertNotEquals(0, allByOpen);
Article article = generateArticle().getArticle();
article.setOpen(false);
articleMapper.update(article);
List<Article> 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<Article> allByCategoryId = articleMapper.findAllByCategoryId(1);
assertNotEquals(0, allByCategoryId.size());
}
@Test
public void findAllByCategoryIdAndOpen() {
List<Article> allByCategoryId = articleMapper.findAllByCategoryIdAndOpen(1);
assertNotEquals(0, allByCategoryId.size());
allByCategoryId.forEach(article -> assertTrue(article.getOpen()));
}
@Test
public void findAll() {
List<Article> allByCategoryId = articleMapper.findAll();
assertNotEquals(0, allByCategoryId.size());
}
@Test
public void count() {
assertNotEquals(0, articleMapper.count());
}
@Test
public void getPreArticle() {
ArticleTag articleTag = generateArticle();
Article preArticle = articleMapper.getPreArticle(articleTag.getArticle().getId());
assertNotNull(preArticle);
assertTrue(preArticle.getId() < articleTag.getArticle().getId());
}
@Test
public void getNextArticle() {
Article getNextArticle = articleMapper.getNextArticle(3L);
assertNotNull(getNextArticle);
assertTrue(getNextArticle.getId() > 3L);
}
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");
Tag tag = tagMapper.findTagByName("随笔");
User user = new User();
user.setId(1L);
article.setUser(user);
article.setType(true);
articleMapper.insert(article);
ArticleTag articleTag = new ArticleTag();
articleTag.setArticle(article);
articleTag.setTag(tag);
articleTagMapper.insert(articleTag);
return articleTag;
}
}