From 94c977fc816ccf870a2a54462ad10cc85976c139 Mon Sep 17 00:00:00 2001 From: ekallin Date: Mon, 18 Mar 2024 19:19:34 +0400 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D0=B8=20=D1=84?= =?UTF-8?q?=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20=D0=B2=D1=8B=D0=B2=D0=BE?= =?UTF-8?q?=D0=B4=D0=B0=20=D0=BA=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D0=B0=20=D0=BF=D1=80=D0=BE=D1=81=D0=BC=D0=BE=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=20=D1=83=20=D1=84=D0=B8=D0=BB=D1=8C=D0=BC=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/backend/TestDTO.java | 8 +- .../backend/movies/api/MovieController.java | 5 ++ .../backend/movies/service/MovieService.java | 11 ++- .../backend/viewed/service/ViewedService.java | 13 +++ .../backend/BackendApplicationTests.java | 13 --- .../example/backend/FavoriteServiceTests.java | 76 ++++++++++++++++ .../com/example/backend/MovieServiceTest.java | 88 +++++++++++++++++++ .../com/example/backend/UserServiceTests.java | 57 ++++++++++++ 8 files changed, 252 insertions(+), 19 deletions(-) delete mode 100644 backend/src/test/java/com/example/backend/BackendApplicationTests.java create mode 100644 backend/src/test/java/com/example/backend/FavoriteServiceTests.java create mode 100644 backend/src/test/java/com/example/backend/MovieServiceTest.java create mode 100644 backend/src/test/java/com/example/backend/UserServiceTests.java diff --git a/backend/src/main/java/com/example/backend/TestDTO.java b/backend/src/main/java/com/example/backend/TestDTO.java index 386d995..f9bf9ce 100644 --- a/backend/src/main/java/com/example/backend/TestDTO.java +++ b/backend/src/main/java/com/example/backend/TestDTO.java @@ -17,9 +17,7 @@ public class TestDTO { public TestDTO( @JsonProperty(value = "id") Integer id, @JsonProperty(value = "name") String name, - @JsonProperty(value = "img") String img - ) - { + @JsonProperty(value = "img") String img) { this.id = id; this.name = name; this.img = img; @@ -35,7 +33,7 @@ public class TestDTO { return name; } - public String getImg(){ + public String getImg() { return img; } @@ -49,7 +47,7 @@ public class TestDTO { name = Name; } - public void setImg(String Img){ + public void setImg(String Img) { img = Img; } } diff --git a/backend/src/main/java/com/example/backend/movies/api/MovieController.java b/backend/src/main/java/com/example/backend/movies/api/MovieController.java index 7a89abe..5a2217e 100644 --- a/backend/src/main/java/com/example/backend/movies/api/MovieController.java +++ b/backend/src/main/java/com/example/backend/movies/api/MovieController.java @@ -70,4 +70,9 @@ public class MovieController { return toDto(movieService.delete(id)); } + @GetMapping("/countView") + public Integer countView(@RequestParam(name = "movieId", defaultValue = "0") Integer movieId) { + return movieService.countViews(movieId); + } + } diff --git a/backend/src/main/java/com/example/backend/movies/service/MovieService.java b/backend/src/main/java/com/example/backend/movies/service/MovieService.java index 0866bf8..b42f48b 100644 --- a/backend/src/main/java/com/example/backend/movies/service/MovieService.java +++ b/backend/src/main/java/com/example/backend/movies/service/MovieService.java @@ -9,14 +9,17 @@ import org.springframework.stereotype.Service; import com.example.backend.core.errors.NotFoundException; import com.example.backend.movies.model.MovieEntity; import com.example.backend.movies.repository.MovieRepository; +import com.example.backend.viewed.service.ViewedService; @Service public class MovieService { private final MovieRepository repository; + private final ViewedService viewedService; - public MovieService(MovieRepository repository) { + public MovieService(MovieRepository repository, ViewedService viewedService) { this.repository = repository; + this.viewedService = viewedService; } public List getAll(Integer categorieId) { @@ -50,4 +53,10 @@ public class MovieService { final MovieEntity exisEntity = get(id); return repository.delete(exisEntity); } + + public Integer countViews(Integer movieId) { + + return viewedService.countViewed(movieId); + + } } diff --git a/backend/src/main/java/com/example/backend/viewed/service/ViewedService.java b/backend/src/main/java/com/example/backend/viewed/service/ViewedService.java index d5defd6..48d69af 100644 --- a/backend/src/main/java/com/example/backend/viewed/service/ViewedService.java +++ b/backend/src/main/java/com/example/backend/viewed/service/ViewedService.java @@ -27,6 +27,19 @@ public class ViewedService { .toList(); } + public Integer countViewed(Integer movieId) { + if (Objects.equals(movieId, 0)) { + return repository.getAll().size(); + } + return repository.getAll().stream() + .filter(item -> item.getMovie().getId().equals( + movieId)) + .toList().size(); + + // return (int) repository.getAll().stream().filter(item -> + // item.getMovie().getId().equals(movieId)).count(); + } + public ViewedEntity get(Integer id) { return Optional.ofNullable(repository.get(id)).orElseThrow(() -> new NotFoundException(id)); } diff --git a/backend/src/test/java/com/example/backend/BackendApplicationTests.java b/backend/src/test/java/com/example/backend/BackendApplicationTests.java deleted file mode 100644 index e6511ba..0000000 --- a/backend/src/test/java/com/example/backend/BackendApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.backend; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class BackendApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/backend/src/test/java/com/example/backend/FavoriteServiceTests.java b/backend/src/test/java/com/example/backend/FavoriteServiceTests.java new file mode 100644 index 0000000..c9dfc88 --- /dev/null +++ b/backend/src/test/java/com/example/backend/FavoriteServiceTests.java @@ -0,0 +1,76 @@ +package com.example.backend; + +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import com.example.backend.categories.model.CategorieEntity; +import com.example.backend.core.errors.NotFoundException; +import com.example.backend.favorites.model.FavoriteEntity; +import com.example.backend.favorites.service.FavoriteService; +import com.example.backend.movies.model.MovieEntity; +import com.example.backend.users.model.UserEntity; + +@SpringBootTest +@TestMethodOrder(OrderAnnotation.class) +public class FavoriteServiceTests { + @Autowired + private FavoriteService favoriteService; + + @Test + void getTest() { + Assertions.assertThrows(NotFoundException.class, () -> favoriteService.get(0)); + } + + @Test + @Order(1) + void createTest() { + final CategorieEntity cat1 = new CategorieEntity(1, "Драма", ""); + + final MovieEntity mov1 = new MovieEntity(1, cat1, "Хатико", "какой-то фильм", "", ""); + final MovieEntity mov2 = new MovieEntity(2, cat1, "Унесеснные призраками", "какой-то фильм", "", ""); + + final UserEntity us1 = new UserEntity(1, "elina", "123", true); + + favoriteService.create(new FavoriteEntity(1, us1, mov1)); + final FavoriteEntity lastFavorite = favoriteService.create(new FavoriteEntity(2, us1, mov2)); + + Assertions.assertEquals(lastFavorite, favoriteService.get(2)); + Assertions.assertEquals(2, favoriteService.getAll(1).size()); + } + + @Test + @Order(2) + void update() { + + final CategorieEntity cat1 = new CategorieEntity(1, "Драма", ""); + + final MovieEntity mov2 = new MovieEntity(1, cat1, "Унесеснные призраками", + "какой-то фильм", "", ""); + + final UserEntity us1 = new UserEntity(1, "elina", "123", true); + + final FavoriteEntity fav = new FavoriteEntity(1, us1, mov2); + + final FavoriteEntity oldFav = favoriteService.get(1); + + final FavoriteEntity newFav = favoriteService.update(2, fav); + + Assertions.assertNotEquals(oldFav.getMovie().getName(), + newFav.getMovie().getName()); + + } + + @Test + @Order(3) + void delete() { + + favoriteService.delete(1); + + Assertions.assertEquals(1, favoriteService.getAll(1).size()); + } +} diff --git a/backend/src/test/java/com/example/backend/MovieServiceTest.java b/backend/src/test/java/com/example/backend/MovieServiceTest.java new file mode 100644 index 0000000..7658f8c --- /dev/null +++ b/backend/src/test/java/com/example/backend/MovieServiceTest.java @@ -0,0 +1,88 @@ +package com.example.backend; + +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import com.example.backend.categories.model.CategorieEntity; +import com.example.backend.core.errors.NotFoundException; +import com.example.backend.movies.model.MovieEntity; +import com.example.backend.movies.service.MovieService; +import com.example.backend.users.model.UserEntity; +import com.example.backend.viewed.model.ViewedEntity; +import com.example.backend.viewed.service.ViewedService; + +@SpringBootTest +@TestMethodOrder(OrderAnnotation.class) +public class MovieServiceTest { + + @Autowired + private MovieService movieService; + + @Autowired + private ViewedService viewedService; + + @Test + void getTest() { + Assertions.assertThrows(NotFoundException.class, () -> movieService.get(0)); + Assertions.assertThrows(NotFoundException.class, () -> viewedService.get(0)); + + } + + @Test + @Order(1) + void createTest() { + final CategorieEntity cat1 = new CategorieEntity(1, "Драма", ""); + movieService.create(new MovieEntity(1, cat1, "Хатико", "какой-то фильм", "", "")); + final MovieEntity lastMovie = movieService.create(new MovieEntity(2, cat1, "Любовь и голуби", "", "", "")); + Assertions.assertEquals(lastMovie, movieService.get(2)); + Assertions.assertEquals(2, movieService.getAll(1).size()); + } + + @Test + @Order(2) + void update() { + final CategorieEntity newCategorie = new CategorieEntity(1, "Комедия", ""); + final MovieEntity entity = movieService.get(2); + final String oldName = entity.getCategorie().getName(); + final MovieEntity newEntity = movieService.update(2, + new MovieEntity(2, newCategorie, "Любовь и голуби", "", "", "")); + Assertions.assertEquals(newCategorie.getName(), newEntity.getCategorie().getName()); + Assertions.assertNotEquals(oldName, "Аниме"); + + } + + @Test + @Order(3) + void delete() { + movieService.delete(2); + + Assertions.assertNotEquals(2, movieService.getAll(1).size()); + } + + @Test + @Order(4) + void checkCounViewed() { + + final UserEntity us1 = new UserEntity(1, "", "", true); + final UserEntity us2 = new UserEntity(2, "", "", true); + final UserEntity us3 = new UserEntity(3, "", "", true); + + final CategorieEntity cat1 = new CategorieEntity(1, "", ""); + + final MovieEntity mov1 = new MovieEntity(1, cat1, "", "", "", ""); + + viewedService.create(new ViewedEntity(1, us1, mov1)); + viewedService.create(new ViewedEntity(2, us2, mov1)); + viewedService.create(new ViewedEntity(3, us3, mov1)); + + final Integer count = movieService.countViews(1); + + Assertions.assertEquals(3, count); + } + +} diff --git a/backend/src/test/java/com/example/backend/UserServiceTests.java b/backend/src/test/java/com/example/backend/UserServiceTests.java new file mode 100644 index 0000000..b312b8b --- /dev/null +++ b/backend/src/test/java/com/example/backend/UserServiceTests.java @@ -0,0 +1,57 @@ +package com.example.backend; + +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import com.example.backend.core.errors.NotFoundException; +import com.example.backend.users.model.UserEntity; +import com.example.backend.users.service.UserService; + +@SpringBootTest +@TestMethodOrder(OrderAnnotation.class) +public class UserServiceTests { + + @Autowired + private UserService userService; + + @Test + void getTest() { + Assertions.assertThrows(NotFoundException.class, () -> userService.get(0)); + } + + @Test + @Order(1) + void createTest() { + + final UserEntity firstUser = userService.create(new UserEntity(null, "elina", "123", true)); + userService.create(new UserEntity(null, "oleg", "789", false)); + userService.create(new UserEntity(null, "nikita", "456", false)); + Assertions.assertEquals(firstUser, userService.get(1)); + Assertions.assertEquals(3, userService.getAll().size()); + } + + @Test + @Order(2) + void update() { + final String newPassword = "000"; + final UserEntity existEntity = userService.get(1); + final String oldPassword = existEntity.getPassword(); + final UserEntity entity = new UserEntity(1, existEntity.getUsername(), newPassword, existEntity.getIsAdmin()); + final UserEntity newEntity = userService.update(1, entity); + Assertions.assertEquals(newPassword, newEntity.getPassword()); + Assertions.assertNotEquals(oldPassword, newEntity.getPassword()); + + } + + @Test + @Order(3) + void delete() { + userService.delete(1); + Assertions.assertEquals(2, userService.getAll().size()); + } +}