diff options
| author | realtradam <[email protected]> | 2024-07-23 20:47:31 -0400 |
|---|---|---|
| committer | realtradam <[email protected]> | 2024-07-23 20:47:31 -0400 |
| commit | 1e18e0ad7a47536be92384bbf815e0923a06698d (patch) | |
| tree | b07405ecdef4f05a96b6c4348930cbee976554cb /backend/src/test/java/com/blog | |
| parent | 56c59e3b98fe554c4e1484e208e4be5c30f09a04 (diff) | |
| download | spring-blog-1e18e0ad7a47536be92384bbf815e0923a06698d.tar.gz spring-blog-1e18e0ad7a47536be92384bbf815e0923a06698d.zip | |
split front and back end, add react to project
Diffstat (limited to 'backend/src/test/java/com/blog')
3 files changed, 172 insertions, 0 deletions
diff --git a/backend/src/test/java/com/blog/web/WebApplicationTests.java b/backend/src/test/java/com/blog/web/WebApplicationTests.java new file mode 100644 index 0000000..c3a5ef9 --- /dev/null +++ b/backend/src/test/java/com/blog/web/WebApplicationTests.java @@ -0,0 +1,13 @@ +package com.blog.web; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class WebApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/backend/src/test/java/com/blog/web/repository/ArticleRepositoryTests.java b/backend/src/test/java/com/blog/web/repository/ArticleRepositoryTests.java new file mode 100644 index 0000000..96c5f5b --- /dev/null +++ b/backend/src/test/java/com/blog/web/repository/ArticleRepositoryTests.java @@ -0,0 +1,81 @@ + +package com.blog.web.repository; + +import com.blog.web.dto.ArticleDto; +import com.blog.web.dto.RegistrationDto; +import com.blog.web.models.Article; +import com.blog.web.models.UserEntity; +import com.blog.web.services.ArticleService; +import com.blog.web.services.UserService; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.jdbc.EmbeddedDatabaseConnection; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.security.test.context.support.WithMockUser; + +import java.time.LocalDateTime; +import java.util.List; + +@SpringBootTest +@AutoConfigureTestDatabase(connection = EmbeddedDatabaseConnection.H2) +public class ArticleRepositoryTests { + + @Autowired + private ArticleRepository articleRepository; + @Autowired + private UserService userService; + @Autowired + private ArticleService articleService; + + + @Test + @WithMockUser(username="test", password="blah") + public void ArticleRepository_Search_ReturnSearch() { + // Arrange + RegistrationDto userDto = new RegistrationDto( + "test", + "[email protected]", + "blah" + ); + userService.saveUser(userDto); + UserEntity user = userService.findByUsername("test").orElseThrow(); + final ArticleDto articleDto1 = new ArticleDto( + 1, + "Title", + "https://duckduckgo.com", + "Content", + user, + LocalDateTime.now(), + LocalDateTime.now() + ); + articleService.saveArticle(articleDto1); + final ArticleDto articleDto2 = new ArticleDto( + 2, + "itleblah", + "https://duckduckgo.com", + "Content", + user, + LocalDateTime.now(), + LocalDateTime.now() + ); + articleService.saveArticle(articleDto2); + final ArticleDto articleDto3 = new ArticleDto( + 3, + "dontfindme", + "https://duckduckgo.com", + "Content", + user, + LocalDateTime.now(), + LocalDateTime.now() + ); + articleService.saveArticle(articleDto3); + + // Act + List<Article> list = articleRepository.searchArticles("itle"); // partial string should find 2 articles + + // Assert + Assertions.assertEquals(2, list.size()); + } +} diff --git a/backend/src/test/java/com/blog/web/services/ArticleServiceTests.java b/backend/src/test/java/com/blog/web/services/ArticleServiceTests.java new file mode 100644 index 0000000..d55516a --- /dev/null +++ b/backend/src/test/java/com/blog/web/services/ArticleServiceTests.java @@ -0,0 +1,78 @@ +package com.blog.web.services; + +import com.blog.web.dto.ArticleDto; +import com.blog.web.models.Article; +import com.blog.web.models.UserEntity; +import com.blog.web.repository.ArticleRepository; +import com.blog.web.repository.UserRepository; +import com.blog.web.security.SecurityUtil; +import com.blog.web.services.impl.ArticleServiceImpl; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.boot.jdbc.EmbeddedDatabaseConnection; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.security.test.context.support.WithMockUser; + +import java.time.LocalDateTime; +import java.util.Optional; + +import static org.mockito.AdditionalAnswers.returnsFirstArg; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; + +//@SpringBootTest +@AutoConfigureTestDatabase(connection = EmbeddedDatabaseConnection.H2) +@ExtendWith(MockitoExtension.class) +public class ArticleServiceTests { + + @Mock + private ArticleRepository articleRepository; + @Mock + private UserRepository userRepository; + @InjectMocks + private ArticleServiceImpl articleService; + + @Test + @WithMockUser(username="test", password="blah") + public void ArticleService_SaveArticle_ReturnsArticle() { + //RegistrationDto userDto = new RegistrationDto( + // "test", + // "[email protected]", + // "blah" + //); + //userService.saveUser(userDto); + UserEntity user = new UserEntity(); + user.setUsername("test"); + user.setEmail("[email protected]"); + user.setPassword("blah"); + //UserEntity user = userService.findByUsername("test"); + final ArticleDto articleDto = new ArticleDto( + 1, + "Title", + "https://duckduckgo.com", + "Content", + user, + LocalDateTime.now(), + LocalDateTime.now() + ); + + when(userRepository.findByUsername(anyString())).thenReturn(Optional.of(user)); + when(articleRepository.save(any(Article.class))).then(returnsFirstArg()); + //when(SecurityUtil.getSessionUser()).thenReturn(user.getUsername()); + try(MockedStatic<SecurityUtil> utilities = Mockito.mockStatic(SecurityUtil.class)) { + utilities.when(SecurityUtil::getSessionUser).thenReturn(user.getUsername()); + Assertions.assertEquals(user.getUsername(), SecurityUtil.getSessionUser()); + Article article = articleService.saveArticle(articleDto).orElse(null); + + Assertions.assertNotNull(article); + } + } +} |
