Тесты работают. Всё отлично, всё клубнично. Осталось доделать фронт

This commit is contained in:
Николай 2023-03-26 16:41:43 +04:00
parent a09eae2e6f
commit 254ddf6f54
19 changed files with 139 additions and 77 deletions

View File

@ -11,12 +11,15 @@ sourceCompatibility = '17'
repositories {
mavenCentral()
}
jar {
enabled = false
}
dependencies {
implementation 'org.hibernate.validator:hibernate-validator'
implementation 'org.springdoc:springdoc-openapi-ui:1.6.5'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'com.h2database:h2:2.1.210'
implementation group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.6.5'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

Binary file not shown.

View File

@ -1,3 +1,4 @@
/*
package com.LabWork.app.MangaStore.controller;
import com.LabWork.app.MangaStore.Dto.CreatorDto;
@ -44,4 +45,4 @@ public class CreatorController {
public CreatorDto deleteCreator(@PathVariable Long id) {
return new CreatorDto(creatorService.deleteCreator(id));
}
}
}*/

View File

@ -1,7 +1,8 @@
/*
package com.LabWork.app.MangaStore.controller;
import com.LabWork.app.MangaStore.Dto.MangaDto;
import com.LabWork.app.MangaStore.model.Creator;
import com.LabWork.app.MangaStore.model.Default.Creator;
import com.LabWork.app.MangaStore.service.MangaService;
import org.springframework.web.bind.annotation.*;
@ -45,4 +46,4 @@ public class MangaController {
public MangaDto deleteManga(@PathVariable Long id) {
return new MangaDto(mangaService.deleteManga(id));
}
}
}*/

View File

@ -1,3 +1,4 @@
/*
package com.LabWork.app.MangaStore.controller;
import com.LabWork.app.MangaStore.Dto.ReaderDto;
@ -56,4 +57,4 @@ public class ReaderController {
public ReaderDto deleteReader(@PathVariable Long id) {
return new ReaderDto(readerService.deleteReader(id));
}
}
}*/

View File

@ -1,4 +1,4 @@
package com.LabWork.app.MangaStore.model;
package com.LabWork.app.MangaStore.model.Default;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotBlank;

View File

@ -1,4 +1,4 @@
package com.LabWork.app.MangaStore.model;
package com.LabWork.app.MangaStore.model.Default;
import jakarta.persistence.*;

View File

@ -1,4 +1,4 @@
package com.LabWork.app.MangaStore.model;
package com.LabWork.app.MangaStore.model.Default;
import jakarta.persistence.*;
@ -18,7 +18,6 @@ public class Reader {
@Column
private String hashedPassword;
@ManyToMany(mappedBy = "readers", fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
private List<Manga> mangas;

View File

@ -1,7 +1,7 @@
package com.LabWork.app.MangaStore.Dto;
package com.LabWork.app.MangaStore.model.Dto;
import com.LabWork.app.MangaStore.model.Creator;
import com.LabWork.app.MangaStore.model.Manga;
import com.LabWork.app.MangaStore.model.Default.Creator;
import com.LabWork.app.MangaStore.model.Default.Manga;
import java.util.List;
public class CreatorDto {

View File

@ -1,8 +1,8 @@
package com.LabWork.app.MangaStore.Dto;
package com.LabWork.app.MangaStore.model.Dto;
import com.LabWork.app.MangaStore.model.Creator;
import com.LabWork.app.MangaStore.model.Manga;
import com.LabWork.app.MangaStore.model.Reader;
import com.LabWork.app.MangaStore.model.Default.Creator;
import com.LabWork.app.MangaStore.model.Default.Manga;
import com.LabWork.app.MangaStore.model.Default.Reader;
import java.util.List;
public class MangaDto {

View File

@ -1,7 +1,7 @@
package com.LabWork.app.MangaStore.Dto;
package com.LabWork.app.MangaStore.model.Dto;
import com.LabWork.app.MangaStore.model.Manga;
import com.LabWork.app.MangaStore.model.Reader;
import com.LabWork.app.MangaStore.model.Default.Manga;
import com.LabWork.app.MangaStore.model.Default.Reader;
import java.util.List;
public class ReaderDto {

View File

@ -1,7 +1,7 @@
package com.LabWork.app.MangaStore.service;
import com.LabWork.app.MangaStore.model.Creator;
import com.LabWork.app.MangaStore.repository.CreatorRepository;
import com.LabWork.app.MangaStore.model.Default.Creator;
import com.LabWork.app.MangaStore.service.Repository.CreatorRepository;
import com.LabWork.app.MangaStore.service.Exception.CreatorNotFoundException;
import com.LabWork.app.MangaStore.util.validation.ValidatorUtil;
import org.springframework.stereotype.Service;
@ -15,7 +15,8 @@ public class CreatorService {
private final ValidatorUtil validatorUtil;
public CreatorService(CreatorRepository creatorRepository, ValidatorUtil validatorUtil) {
public CreatorService(CreatorRepository creatorRepository,
ValidatorUtil validatorUtil) {
this.creatorRepository = creatorRepository;
this.validatorUtil = validatorUtil;
}

View File

@ -1,9 +1,9 @@
package com.LabWork.app.MangaStore.service;
import com.LabWork.app.MangaStore.model.Creator;
import com.LabWork.app.MangaStore.model.Manga;
import com.LabWork.app.MangaStore.repository.CreatorRepository;
import com.LabWork.app.MangaStore.repository.MangaRepository;
import com.LabWork.app.MangaStore.model.Default.Creator;
import com.LabWork.app.MangaStore.model.Default.Manga;
import com.LabWork.app.MangaStore.service.Repository.CreatorRepository;
import com.LabWork.app.MangaStore.service.Repository.MangaRepository;
import com.LabWork.app.MangaStore.service.Exception.CreatorNotFoundException;
import com.LabWork.app.MangaStore.service.Exception.MangaNotFoundException;
import com.LabWork.app.MangaStore.util.validation.ValidatorUtil;
@ -19,7 +19,8 @@ public class MangaService {
public final CreatorRepository creatorRepository;
private final ValidatorUtil validatorUtil;
public MangaService(MangaRepository mangaRepository, CreatorRepository creatorRepository, ValidatorUtil validatorUtil) {
public MangaService(MangaRepository mangaRepository, CreatorRepository creatorRepository,
ValidatorUtil validatorUtil) {
this.mangaRepository = mangaRepository;
this.creatorRepository = creatorRepository;
this.validatorUtil = validatorUtil;

View File

@ -1,15 +1,14 @@
package com.LabWork.app.MangaStore.service;
import com.LabWork.app.MangaStore.model.Manga;
import com.LabWork.app.MangaStore.model.Reader;
import com.LabWork.app.MangaStore.repository.MangaRepository;
import com.LabWork.app.MangaStore.repository.ReaderRepository;
import com.LabWork.app.MangaStore.model.Default.Manga;
import com.LabWork.app.MangaStore.model.Default.Reader;
import com.LabWork.app.MangaStore.service.Repository.MangaRepository;
import com.LabWork.app.MangaStore.service.Repository.ReaderRepository;
import com.LabWork.app.MangaStore.service.Exception.MangaNotFoundException;
import com.LabWork.app.MangaStore.service.Exception.ReaderNotFoundException;
import com.LabWork.app.MangaStore.util.validation.ValidatorUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Optional;
@ -21,7 +20,8 @@ public class ReaderService {
private final MangaRepository mangaRepository;
private final ValidatorUtil validatorUtil;
public ReaderService(ReaderRepository readerRepository, MangaRepository mangaRepository, ValidatorUtil validatorUtil) {
public ReaderService(ReaderRepository readerRepository, MangaRepository mangaRepository,
ValidatorUtil validatorUtil) {
this.readerRepository = readerRepository;
this.mangaRepository = mangaRepository;
this.validatorUtil = validatorUtil;
@ -85,11 +85,9 @@ public class ReaderService {
@Transactional
public Reader deleteReader(Long id) {
final Reader currentReader = findReader(id);
/* for (Manga manga : currentReader.getMangas()){
for (Manga manga : currentReader.getMangas()){
manga.getReaders().remove(currentReader);
}
em.merge(currentReader);
em.remove(currentReader);*/
readerRepository.delete(currentReader);
return currentReader;
}

View File

@ -1,6 +1,6 @@
package com.LabWork.app.MangaStore.repository;
package com.LabWork.app.MangaStore.service.Repository;
import com.LabWork.app.MangaStore.model.Creator;
import com.LabWork.app.MangaStore.model.Default.Creator;
import org.springframework.data.jpa.repository.JpaRepository;
public interface CreatorRepository extends JpaRepository<Creator, Long> {

View File

@ -1,6 +1,6 @@
package com.LabWork.app.MangaStore.repository;
package com.LabWork.app.MangaStore.service.Repository;
import com.LabWork.app.MangaStore.model.Manga;
import com.LabWork.app.MangaStore.model.Default.Manga;
import org.springframework.data.jpa.repository.JpaRepository;

View File

@ -1,6 +1,6 @@
package com.LabWork.app.MangaStore.repository;
package com.LabWork.app.MangaStore.service.Repository;
import com.LabWork.app.MangaStore.model.Reader;
import com.LabWork.app.MangaStore.model.Default.Reader;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ReaderRepository extends JpaRepository<Reader, Long> {

View File

@ -2,10 +2,10 @@ package com.LabWork.app.MangaStore.util.validation;
import org.springframework.stereotype.Component;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import jakarta.validation.ValidatorFactory;
import java.util.Set;
import java.util.stream.Collectors;

View File

@ -1,8 +1,8 @@
package com.LabWork.app;
import com.LabWork.app.MangaStore.model.Creator;
import com.LabWork.app.MangaStore.model.Manga;
import com.LabWork.app.MangaStore.model.Reader;
import com.LabWork.app.MangaStore.model.Default.Creator;
import com.LabWork.app.MangaStore.model.Default.Manga;
import com.LabWork.app.MangaStore.model.Default.Reader;
import com.LabWork.app.MangaStore.service.CreatorService;
import com.LabWork.app.MangaStore.service.MangaService;
import com.LabWork.app.MangaStore.service.ReaderService;
@ -36,6 +36,9 @@ public class ReMangaTest {
Assertions.assertEquals(c1.getCreatorName(), creatorService.findCreator(c1.getId()).getCreatorName());
Assertions.assertEquals(c1, creatorService.findCreator(c1.getId()));
Assertions.assertEquals(2, creatorService.findAllCreators().size());
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
}
/* @Test
@ -94,6 +97,9 @@ public class ReMangaTest {
Assertions.assertNotEquals(c1.getCreatorName(), c2.getCreatorName());
Assertions.assertEquals(c1.getHashedPassword(), c2.getHashedPassword());
Assertions.assertEquals(c3.getCreatorName(), c2.getCreatorName());
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
}
@Test
@ -106,6 +112,25 @@ public class ReMangaTest {
creatorService.deleteCreator(c2.getId());
log.info(creatorService.findAllCreators().toString());
Assertions.assertEquals(1, creatorService.findAllCreators().size());
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
}
@Test
void testCreatorMangaDelete() {
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
Creator c1 = creatorService.addCreator("first", "1");
Manga m1 = mangaService.addManga(c1.getId(), 0, "Vagabond");
Manga m2 = mangaService.addManga(c1.getId(), 10, "Berserk");
creatorService.deleteCreator(c1.getId());
log.info(mangaService.findAllMangas().toString());
Assertions.assertEquals(0, mangaService.findAllMangas().size());
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
}
@Test
@ -117,6 +142,9 @@ public class ReMangaTest {
Creator c2 = creatorService.addCreator("second", "2");
creatorService.deleteAllCreators();
Assertions.assertEquals(0, creatorService.findAllCreators().size());
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
}
@Test
@ -125,13 +153,16 @@ public class ReMangaTest {
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
Creator c1 = creatorService.addCreator("first", "1");
Manga m1 = mangaService.addManga(c1, 0, "Vagabond");
Manga m2 = mangaService.addManga(c1, 10, "Berserk");
Manga m1 = mangaService.addManga(c1.getId(), 0, "Vagabond");
Manga m2 = mangaService.addManga(c1.getId(), 10, "Berserk");
c1 = creatorService.findCreator(c1.getId());
m1 = mangaService.findManga(m1.getId());
log.info(c1.getMangas().toString());
Assertions.assertEquals(2, c1.getMangas().size());
Assertions.assertEquals(c1.getCreatorName(), m1.getCreator().getCreatorName());
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
}
@Test
@ -140,13 +171,16 @@ public class ReMangaTest {
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
Creator c1 = creatorService.addCreator("first", "1");
Manga m1 = mangaService.addManga(c1, 0, "Vagabond");
Manga m1 = mangaService.addManga(c1.getId(), 0, "Vagabond");
Manga m2 = mangaService.updateManga(m1.getId(), 10);
m2 = mangaService.findManga(m2.getId());
c1 = creatorService.findCreator(c1.getId());
Assertions.assertEquals(m1.getMangaName(), m2.getMangaName());
Assertions.assertNotEquals(m1.getChapterCount(), m2.getChapterCount());
Assertions.assertEquals(c1.getMangas().get(0).getChapterCount(), m2.getChapterCount());
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
}
@Test
@ -155,12 +189,12 @@ public class ReMangaTest {
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
Creator c1 = creatorService.addCreator("first", "1");
Manga m1 = mangaService.addManga(c1, 0, "Vagabond");
Manga m2 = mangaService.addManga(c1, 10, "Berserk");
Manga m1 = mangaService.addManga(c1.getId(), 0, "Vagabond");
Manga m2 = mangaService.addManga(c1.getId(), 10, "Berserk");
Reader r1 = readerService.addReader("reader1", "password1");
readerService.addManga(m1, r1.getId());
readerService.addManga(m2, r1.getId());
readerService.addManga(m1.getId(), r1.getId());
readerService.addManga(m2.getId(), r1.getId());
mangaService.deleteManga(m1.getId());
r1 = readerService.findReader(r1.getId());
@ -169,6 +203,9 @@ public class ReMangaTest {
Assertions.assertEquals(1, mangaService.findAllMangas().size());
Assertions.assertEquals(1, r1.getMangas().size());
mangaService.deleteAllMangas();
readerService.deleteAllReaders();
creatorService.deleteAllCreators();
}
@Test
@ -177,10 +214,13 @@ public class ReMangaTest {
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
Creator c1 = creatorService.addCreator("first", "1");
Manga m1 = mangaService.addManga(c1, 0, "Vagabond");
Manga m2 = mangaService.addManga(c1, 10, "Berserk");
Manga m1 = mangaService.addManga(c1.getId(), 0, "Vagabond");
Manga m2 = mangaService.addManga(c1.getId(), 10, "Berserk");
mangaService.deleteAllMangas();
Assertions.assertEquals(0, mangaService.findAllMangas().size());
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
}
@Test
@ -189,19 +229,23 @@ public class ReMangaTest {
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
Creator c1 = creatorService.addCreator("first_C", "1");
Manga m1 = mangaService.addManga(c1, 0, "vagabond");
Manga m2 = mangaService.addManga(c1, 10, "Berserk");
Manga m1 = mangaService.addManga(c1.getId(), 0, "vagabond");
Manga m2 = mangaService.addManga(c1.getId(), 10, "Berserk");
Reader r1 = readerService.addReader("first_R", "1");
readerService.addManga(m1, r1.getId());
readerService.addManga(m2, r1.getId());
readerService.addManga(m1.getId(), r1.getId());
readerService.addManga(m2.getId(), r1.getId());
log.info(r1.getMangas().toString());
Reader r2 = readerService.findReader(r1.getId());
Manga m3 = mangaService.findManga(m1.getId());
log.info(r2.getMangas().toString());
Assertions.assertEquals(2, r2.getMangas().size());
Assertions.assertEquals(1, m1.getReaders().size());
Assertions.assertEquals(1, m3.getReaders().size());
mangaService.deleteAllMangas();
readerService.deleteAllReaders();
creatorService.deleteAllCreators();
}
@Test
@ -218,6 +262,9 @@ public class ReMangaTest {
Reader r3 = readerService.findReader(r2.getId());
Assertions.assertEquals(r2.getReaderName(), r3.getReaderName());
readerService.deleteAllReaders();
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
}
@Test
@ -226,21 +273,24 @@ public class ReMangaTest {
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
Creator c1 = creatorService.addCreator("first_C", "1");
Manga m1 = mangaService.addManga(c1, 0, "Vagabond");
Manga m2 = mangaService.addManga(c1, 10, "Berserk");
Manga m1 = mangaService.addManga(c1.getId(), 0, "Vagabond");
Manga m2 = mangaService.addManga(c1.getId(), 10, "Berserk");
Reader r1 = readerService.addReader("first_R", "1");
readerService.addManga(m1, r1.getId());
readerService.addManga(m2, r1.getId());
readerService.addManga(m1.getId(), r1.getId());
readerService.addManga(m2.getId(), r1.getId());
Reader r11 = readerService.findReader(r1.getId());
readerService.removeManga(m1, r11.getId());
readerService.removeManga(m1.getId(), r11.getId());
Reader r12 = readerService.findReader(r11.getId());
Manga m11 = mangaService.findManga(m1.getId());
Assertions.assertEquals(1, r12.getMangas().size());
log.info(mangaService.findAllMangas().toString());
log.info(r12.getMangas().toString());
mangaService.deleteAllMangas();
readerService.deleteAllReaders();
creatorService.deleteAllCreators();
}
@Test
@ -249,12 +299,13 @@ public class ReMangaTest {
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
Creator c1 = creatorService.addCreator("first_C", "1");
Manga m1 = mangaService.addManga(c1, 0, "Vagabond");
Manga m2 = mangaService.addManga(c1, 10, "Berserk");
Manga m1 = mangaService.addManga(c1.getId(), 0, "Vagabond");
Manga m2 = mangaService.addManga(c1.getId(), 10, "Berserk");
Reader r1 = readerService.addReader("first_R", "1");
Reader r2 = readerService.addReader("2_R", "2");
readerService.addManga(m1, r1.getId());
readerService.addManga(m2, r1.getId());
readerService.addManga(m1.getId(), r1.getId());
readerService.addManga(m2.getId(), r1.getId());
Reader r11 = readerService.findReader(r1.getId());
readerService.deleteReader(r11.getId());
@ -263,6 +314,9 @@ public class ReMangaTest {
log.info(readerService.findAllReaders().toString());
log.info(m11.getReaders().toString());
Assertions.assertEquals(0, m11.getReaders().size());
mangaService.deleteAllMangas();
readerService.deleteAllReaders();
creatorService.deleteAllCreators();
}
@Test
@ -271,17 +325,20 @@ public class ReMangaTest {
mangaService.deleteAllMangas();
creatorService.deleteAllCreators();
Creator c1 = creatorService.addCreator("first_C", "1");
Manga m1 = mangaService.addManga(c1, 0, "Vagabond");
Manga m2 = mangaService.addManga(c1, 10, "Berserk");
Manga m1 = mangaService.addManga(c1.getId(), 0, "Vagabond");
Manga m2 = mangaService.addManga(c1.getId(), 10, "Berserk");
Reader r1 = readerService.addReader("first_R", "1");
readerService.addManga(m1, r1.getId());
readerService.addManga(m2, r1.getId());
readerService.addManga(m1.getId(), r1.getId());
readerService.addManga(m2.getId(), r1.getId());
Reader r11 = readerService.updateReader(r1.getId(), "reader", "password");
r11 = readerService.findReader(r11.getId());
m1 = mangaService.findManga(m1.getId());
Assertions.assertNotEquals(r11.getReaderName(), r1.getReaderName());
Assertions.assertEquals(r11.getReaderName(), m1.getReaders().get(0).getReaderName());
mangaService.deleteAllMangas();
readerService.deleteAllReaders();
creatorService.deleteAllCreators();
}
}