summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-07-19 21:50:06 -0400
committerrealtradam <[email protected]>2024-07-19 21:50:06 -0400
commita6a60a5e774eed9d84f522fc452b67ee52e033cb (patch)
tree44bf39a3159bee78138ec75bc373230642801e95
parent627100d9d5f03eee6ba2b4ec55bebd8367d5d641 (diff)
downloadspring-blog-a6a60a5e774eed9d84f522fc452b67ee52e033cb.tar.gz
spring-blog-a6a60a5e774eed9d84f522fc452b67ee52e033cb.zip
add article service tests
-rw-r--r--src/test/java/com/blog/web/services/ArticleServiceTests.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/test/java/com/blog/web/services/ArticleServiceTests.java b/src/test/java/com/blog/web/services/ArticleServiceTests.java
new file mode 100644
index 0000000..00e7bbd
--- /dev/null
+++ b/src/test/java/com/blog/web/services/ArticleServiceTests.java
@@ -0,0 +1,77 @@
+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 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",
+ // "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(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);
+
+ Assertions.assertNotNull(article);
+ }
+ }
+}