summaryrefslogtreecommitdiffhomepage
path: root/backend/src/test/java/com/blog
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-07-23 20:47:31 -0400
committerrealtradam <[email protected]>2024-07-23 20:47:31 -0400
commit1e18e0ad7a47536be92384bbf815e0923a06698d (patch)
treeb07405ecdef4f05a96b6c4348930cbee976554cb /backend/src/test/java/com/blog
parent56c59e3b98fe554c4e1484e208e4be5c30f09a04 (diff)
downloadspring-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')
-rw-r--r--backend/src/test/java/com/blog/web/WebApplicationTests.java13
-rw-r--r--backend/src/test/java/com/blog/web/repository/ArticleRepositoryTests.java81
-rw-r--r--backend/src/test/java/com/blog/web/services/ArticleServiceTests.java78
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",
+ "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",
+ // "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);
+ }
+ }
+}