package com.cloudroam.service.impl; import com.cloudroam.dto.book.CreateOrUpdateBookDTO; import com.cloudroam.mapper.BookMapper; import com.cloudroam.model.BookDO; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ActiveProfiles; import org.springframework.transaction.annotation.Transactional; import java.util.List; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest @Transactional @Rollback @ActiveProfiles("test") public class BookServiceImplTest { @Autowired private BookServiceImpl bookService; @Autowired private BookMapper bookMapper; private final String title = "千里之外"; private final String author = "pedro"; private final String image = "千里之外.png"; private final String summary = "千里之外,是周杰伦和费玉清一起发售的歌曲"; @Test public void createBook() { CreateOrUpdateBookDTO validator = new CreateOrUpdateBookDTO(); validator.setAuthor(author); validator.setImage(image); validator.setSummary(summary); validator.setTitle(title); bookService.createBook(validator); List books = bookMapper.selectByTitle(title); boolean anyMatch = books.stream().anyMatch(bo -> bo.getTitle().equals(title) && bo.getAuthor().equals(author)); assertTrue(anyMatch); } @Test public void getBookByKeyword() { BookDO bookDO = new BookDO(); bookDO.setTitle(title); bookDO.setAuthor(author); bookDO.setImage(image); bookDO.setSummary(summary); bookMapper.insert(bookDO); List books = bookService.getBookByKeyword("%千里%"); boolean anyMatch = books.stream().anyMatch(bo -> bo.getTitle().equals(title) && bo.getAuthor().equals(author)); assertTrue(anyMatch); } @Test public void updateBook() { BookDO bookDO = new BookDO(); bookDO.setTitle(title); bookDO.setAuthor(author); bookDO.setImage(image); bookDO.setSummary(summary); bookMapper.insert(bookDO); String newTitle = "tttttttt"; CreateOrUpdateBookDTO validator = new CreateOrUpdateBookDTO(); validator.setAuthor(author); validator.setImage(image); validator.setSummary(summary); validator.setTitle(newTitle); BookDO found = bookMapper.selectById(bookDO.getId()); bookService.updateBook(found, validator); BookDO found1 = bookMapper.selectById(bookDO.getId()); assertEquals(found1.getTitle(), newTitle); } @Test public void deleteById() { BookDO bookDO = new BookDO(); bookDO.setTitle(title); bookDO.setAuthor(author); bookDO.setImage(image); bookDO.setSummary(summary); bookMapper.insert(bookDO); bookService.deleteById(bookDO.getId()); BookDO hit = bookService.getById(bookDO.getId()); assertNull(hit); } }