From 38624e6014069e9cb661faded35c650d2fbd6d75 Mon Sep 17 00:00:00 2001 From: paulofelipefeitosa Date: Sun, 3 Mar 2019 11:37:41 -0300 Subject: [PATCH 1/2] Add Curso private controller and Curso refactor --- pom.xml | 6 ++ .../api/categoriaadmin/CategoriaAdmin.java | 15 +++-- .../CategoriaAdminController.java | 8 +-- .../br/com/openenade/api/curso/Curso.java | 9 +-- .../openenade/api/curso/CursoController.java | 56 ------------------- .../com/openenade/api/curso/CursoService.java | 23 +++++--- .../api/curso/PrivateCursoController.java | 34 +++++++++++ .../api/curso/PublicCursoController.java | 36 ++++++++++++ .../openenade/api/modalidade/Modalidade.java | 9 ++- .../api/modalidade/ModalidadeController.java | 4 +- .../api/modalidade/ModalidadeService.java | 17 ++++++ .../api/universidade/UniversidadeService.java | 11 +--- .../br/com/openenade/api/BaseUnitTest.java | 2 +- .../api/curso/CursoServiceTests.java | 22 ++++---- .../api/nota/NotaControllerTests.java | 4 +- .../UniversidadeControllerTests.java | 4 +- .../UniversidadeServiceTests.java | 4 +- 17 files changed, 150 insertions(+), 114 deletions(-) delete mode 100644 src/main/java/br/com/openenade/api/curso/CursoController.java create mode 100644 src/main/java/br/com/openenade/api/curso/PrivateCursoController.java create mode 100644 src/main/java/br/com/openenade/api/curso/PublicCursoController.java create mode 100644 src/main/java/br/com/openenade/api/modalidade/ModalidadeService.java diff --git a/pom.xml b/pom.xml index 3baf711..869c624 100644 --- a/pom.xml +++ b/pom.xml @@ -61,6 +61,12 @@ runtime + + com.google.code.gson + gson + + + diff --git a/src/main/java/br/com/openenade/api/categoriaadmin/CategoriaAdmin.java b/src/main/java/br/com/openenade/api/categoriaadmin/CategoriaAdmin.java index e29bdd0..34e52a3 100644 --- a/src/main/java/br/com/openenade/api/categoriaadmin/CategoriaAdmin.java +++ b/src/main/java/br/com/openenade/api/categoriaadmin/CategoriaAdmin.java @@ -1,22 +1,21 @@ package br.com.openenade.api.categoriaadmin; - import com.fasterxml.jackson.annotation.JsonValue; public enum CategoriaAdmin { - - PUBLICO("Publico"),PRIVADO("Privado"); - + + PUBLICO("Publico"), PRIVADO("Privado"); + private String value; - + private CategoriaAdmin() { - + } - + private CategoriaAdmin(String value) { this.value = value; } - + @JsonValue public String getValue() { return this.value; diff --git a/src/main/java/br/com/openenade/api/categoriaadmin/CategoriaAdminController.java b/src/main/java/br/com/openenade/api/categoriaadmin/CategoriaAdminController.java index af1df44..59683c4 100644 --- a/src/main/java/br/com/openenade/api/categoriaadmin/CategoriaAdminController.java +++ b/src/main/java/br/com/openenade/api/categoriaadmin/CategoriaAdminController.java @@ -12,13 +12,13 @@ @CrossOrigin(origins = "*") @RequestMapping(path = CategoriaAdminController.ENDPOINT) public class CategoriaAdminController { - + public static final String ENDPOINT = "/categorias-admin"; - + @RequestMapping(method = RequestMethod.GET) public @ResponseBody ResponseEntity index() { - + return new ResponseEntity<>(CategoriaAdmin.values(), HttpStatus.OK); } - + } diff --git a/src/main/java/br/com/openenade/api/curso/Curso.java b/src/main/java/br/com/openenade/api/curso/Curso.java index 6ce93d1..3295432 100644 --- a/src/main/java/br/com/openenade/api/curso/Curso.java +++ b/src/main/java/br/com/openenade/api/curso/Curso.java @@ -4,27 +4,24 @@ import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; -import javax.validation.constraints.NotNull; import javax.validation.constraints.Positive; import javax.validation.constraints.NotBlank; import br.com.openenade.api.modalidade.Modalidade; import javax.persistence.IdClass; - @Entity @IdClass(CursoId.class) public class Curso { - @NotBlank(message = "'nome' não pode ser vazio.") + @NotBlank(message = "Curso 'nome' nao pode ser vazio") private String nome; @Id - @Positive(message = "'codigoArea' precisa ser positivo.") + @Positive(message = "Curso 'codigoArea' precisa ser positivo") private Long codigoArea; @Id - @Enumerated(EnumType.STRING) - @NotNull(message = "Você precisa especificar uma 'modalidade' de ensino.") + @Enumerated(EnumType.ORDINAL) private Modalidade modalidade; public Curso() { diff --git a/src/main/java/br/com/openenade/api/curso/CursoController.java b/src/main/java/br/com/openenade/api/curso/CursoController.java deleted file mode 100644 index 66e8367..0000000 --- a/src/main/java/br/com/openenade/api/curso/CursoController.java +++ /dev/null @@ -1,56 +0,0 @@ -package br.com.openenade.api.curso; - -import java.util.List; -import java.util.Optional; -import javax.validation.Valid; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import br.com.openenade.api.modalidade.Modalidade; - - -@RestController -@CrossOrigin("*") -@RequestMapping(path = CursoController.ENDPOINT) -public class CursoController { - - public static final String ENDPOINT = "cursos"; - - @Autowired - private CursoService service; - - @PostMapping - public Curso postCurso(@Valid @RequestBody Curso newCurso) { - return this.service.save(newCurso); - } - - @GetMapping - @ResponseBody - public ResponseEntity> getAll() { - return new ResponseEntity<>(this.service.getAll(), HttpStatus.OK); - } - - @ResponseBody - @GetMapping(path = "/{codigo}/{modalidade}") - public ResponseEntity getCursoByCodigo(@PathVariable(name = "codigo") Long codigo, - @PathVariable(name = "modalidade") Modalidade modalidade) { - Optional optCurso = this.service.getByCodigo(codigo, modalidade); - - if (optCurso.isPresent()) { - return new ResponseEntity<>(optCurso.get(), HttpStatus.OK); - } else { - return new ResponseEntity<>(HttpStatus.NOT_FOUND); - } - } - - - -} diff --git a/src/main/java/br/com/openenade/api/curso/CursoService.java b/src/main/java/br/com/openenade/api/curso/CursoService.java index 49653d8..a7fb2fb 100644 --- a/src/main/java/br/com/openenade/api/curso/CursoService.java +++ b/src/main/java/br/com/openenade/api/curso/CursoService.java @@ -4,16 +4,16 @@ import java.util.Optional; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; +import br.com.openenade.api.exceptions.ResourceNotFound; import br.com.openenade.api.modalidade.Modalidade; - @Service public class CursoService { @Autowired private CursoRepository repository; - public Curso save(Curso curso) { + public Curso addCurso(Curso curso) { return this.repository.save(curso); } @@ -21,15 +21,20 @@ public List getAll() { return this.repository.findAll(); } - public Optional getByCodigo(Long codigo, Modalidade modalidade) { + public Curso getByCodigo(Long codigo, Modalidade modalidade) { CursoId cursoId = new CursoId(codigo, modalidade); - return this.repository.findById(cursoId); - + Optional optCurso = this.repository.findById(cursoId); + if (optCurso.isPresent()) { + return optCurso.get(); + } else { + throw new ResourceNotFound("Cannot find Curso with Codigo [" + Long.toString(codigo) + + "] and Modalidade [" + modalidade.getValue() + "]"); + } } - - // unutilized - public void deleteCursoById(CursoId id) { - this.repository.deleteById(id); + + public void deleteById(CursoId cursoId) { + this.getByCodigo(cursoId.getCodigoArea(), cursoId.getModalidade()); + this.repository.deleteById(cursoId); } } diff --git a/src/main/java/br/com/openenade/api/curso/PrivateCursoController.java b/src/main/java/br/com/openenade/api/curso/PrivateCursoController.java new file mode 100644 index 0000000..189f21a --- /dev/null +++ b/src/main/java/br/com/openenade/api/curso/PrivateCursoController.java @@ -0,0 +1,34 @@ +package br.com.openenade.api.curso; + +import javax.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import br.com.openenade.api.modalidade.ModalidadeService; + +@RestController +@RequestMapping(path = PublicCursoController.ENDPOINT) +public class PrivateCursoController { + + @Autowired + private CursoService service; + + @ResponseBody + @PostMapping + public Curso addCurso(@Valid @RequestBody Curso newCurso) { + return this.service.addCurso(newCurso); + } + + @DeleteMapping(path = "/{codigo}/{modalidade}") + public void deleteCursoByCodigo(@PathVariable(name = "codigo") Long codigo, + @PathVariable(name = "modalidade") Integer modalidadeId) { + this.service + .deleteById(new CursoId(codigo, ModalidadeService.getModalidadeById(modalidadeId))); + } + +} diff --git a/src/main/java/br/com/openenade/api/curso/PublicCursoController.java b/src/main/java/br/com/openenade/api/curso/PublicCursoController.java new file mode 100644 index 0000000..a839a69 --- /dev/null +++ b/src/main/java/br/com/openenade/api/curso/PublicCursoController.java @@ -0,0 +1,36 @@ +package br.com.openenade.api.curso; + +import java.util.List; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import br.com.openenade.api.modalidade.ModalidadeService; + +@RestController +@CrossOrigin("*") +@RequestMapping(path = PublicCursoController.ENDPOINT) +public class PublicCursoController { + + public static final String ENDPOINT = "cursos"; + + @Autowired + private CursoService service; + + @GetMapping + @ResponseBody + public List getAll() { + return this.service.getAll(); + } + + @ResponseBody + @GetMapping(path = "/{codigo}/{modalidade}") + public Curso getCursoByCodigo(@PathVariable(name = "codigo") Long codigo, + @PathVariable(name = "modalidade") Integer modalidadeId) { + return this.service.getByCodigo(codigo, ModalidadeService.getModalidadeById(modalidadeId)); + } + +} diff --git a/src/main/java/br/com/openenade/api/modalidade/Modalidade.java b/src/main/java/br/com/openenade/api/modalidade/Modalidade.java index 84d3065..d7da8a2 100644 --- a/src/main/java/br/com/openenade/api/modalidade/Modalidade.java +++ b/src/main/java/br/com/openenade/api/modalidade/Modalidade.java @@ -7,20 +7,23 @@ public enum Modalidade { @Enumerated(EnumType.ORDINAL) - EDUCACAO_PRESENCIAL("Educação Presencial"), EDUCACAO_A_DISTANCIA("Educação à Distância"); + EDUCACAO_PRESENCIAL("Educação Presencial", 0), EDUCACAO_A_DISTANCIA("Educação à Distância", 1); private String value; + private Integer id; private Modalidade() { } - private Modalidade(String value) { + private Modalidade(String value, Integer id) { this.value = value; + this.id = id; } @JsonValue public String getValue() { - return this.value; + return this.value + " - " + this.id; } + } diff --git a/src/main/java/br/com/openenade/api/modalidade/ModalidadeController.java b/src/main/java/br/com/openenade/api/modalidade/ModalidadeController.java index b448634..e53a4f0 100644 --- a/src/main/java/br/com/openenade/api/modalidade/ModalidadeController.java +++ b/src/main/java/br/com/openenade/api/modalidade/ModalidadeController.java @@ -16,8 +16,8 @@ public class ModalidadeController { public static final String ENDPOINT = "/modalidades"; @RequestMapping(method = RequestMethod.GET) - public @ResponseBody ResponseEntity index() { + public @ResponseBody ResponseEntity getAllModalidades() { return new ResponseEntity<>(Modalidade.values(), HttpStatus.OK); } - + } diff --git a/src/main/java/br/com/openenade/api/modalidade/ModalidadeService.java b/src/main/java/br/com/openenade/api/modalidade/ModalidadeService.java new file mode 100644 index 0000000..2341af6 --- /dev/null +++ b/src/main/java/br/com/openenade/api/modalidade/ModalidadeService.java @@ -0,0 +1,17 @@ +package br.com.openenade.api.modalidade; + +import br.com.openenade.api.exceptions.ResourceNotFound; + +public class ModalidadeService { + + public static Modalidade getModalidadeById(Integer id) { + Modalidade[] modalidades = Modalidade.values(); + if (id < 0 || id > modalidades.length) { + throw new ResourceNotFound( + "Cannot find Modalidade with Id [" + Integer.toString(id) + "]"); + } else { + return modalidades[id]; + } + } + +} diff --git a/src/main/java/br/com/openenade/api/universidade/UniversidadeService.java b/src/main/java/br/com/openenade/api/universidade/UniversidadeService.java index 13611e2..693a282 100644 --- a/src/main/java/br/com/openenade/api/universidade/UniversidadeService.java +++ b/src/main/java/br/com/openenade/api/universidade/UniversidadeService.java @@ -39,14 +39,9 @@ public Universidade save(Universidade universidade) { } public Universidade addCurso2Universidade(Universidade universidade, Curso curso) { - Optional optCurso = - this.cursoService.getByCodigo(curso.getCodigoArea(), curso.getModalidade()); - if (optCurso.isPresent()) { - universidade.addCurso(optCurso.get()); - return this.repository.saveAndFlush(universidade); - } else { - throw new ResourceNotFound(curso.toString()); - } + curso = this.cursoService.getByCodigo(curso.getCodigoArea(), curso.getModalidade()); + universidade.addCurso(curso); + return this.repository.saveAndFlush(universidade); } public Collection getAll() { diff --git a/src/test/java/br/com/openenade/api/BaseUnitTest.java b/src/test/java/br/com/openenade/api/BaseUnitTest.java index 7ccadd0..050da4c 100644 --- a/src/test/java/br/com/openenade/api/BaseUnitTest.java +++ b/src/test/java/br/com/openenade/api/BaseUnitTest.java @@ -61,7 +61,7 @@ public void clean() { for (Curso curso : this.cursoService.getAll()) { CursoId id = new CursoId(curso.getCodigoArea(), curso.getModalidade()); - this.cursoService.deleteCursoById(id); + this.cursoService.deleteById(id); } for (Ano ano : this.anoService.getAllAnos()) { this.anoService.deleteAno(ano.getAno()); diff --git a/src/test/java/br/com/openenade/api/curso/CursoServiceTests.java b/src/test/java/br/com/openenade/api/curso/CursoServiceTests.java index aeb712a..a8a7232 100644 --- a/src/test/java/br/com/openenade/api/curso/CursoServiceTests.java +++ b/src/test/java/br/com/openenade/api/curso/CursoServiceTests.java @@ -23,7 +23,7 @@ public class CursoServiceTests extends BaseUnitTest { @Test public void testSaveBasic() { - this.cursoService.save(new Curso("CC", 13, Modalidade.EDUCACAO_PRESENCIAL)); + this.cursoService.addCurso(new Curso("CC", 13, Modalidade.EDUCACAO_PRESENCIAL)); } @Test @@ -35,10 +35,10 @@ public void testGetAllBasic() { Curso e = new Curso("História", 13, Modalidade.EDUCACAO_A_DISTANCIA); - this.cursoService.save(a); - this.cursoService.save(b); - this.cursoService.save(c); - this.cursoService.save(d); + this.cursoService.addCurso(a); + this.cursoService.addCurso(b); + this.cursoService.addCurso(c); + this.cursoService.addCurso(d); List cursos = this.cursoService.getAll(); @@ -63,13 +63,13 @@ public void testGetByCodigo() { Curso b = new Curso(cursos[1], 5, modalidade); Curso c = new Curso(cursos[2], 7, modalidade); - this.cursoService.save(a); - this.cursoService.save(b); - this.cursoService.save(c); + this.cursoService.addCurso(a); + this.cursoService.addCurso(b); + this.cursoService.addCurso(c); - Curso aa = this.cursoService.getByCodigo(3L, modalidade).get(); - Curso bb = this.cursoService.getByCodigo(5L, modalidade).get(); - Curso cc = this.cursoService.getByCodigo(7L, modalidade).get(); + Curso aa = this.cursoService.getByCodigo(3L, modalidade); + Curso bb = this.cursoService.getByCodigo(5L, modalidade); + Curso cc = this.cursoService.getByCodigo(7L, modalidade); assertEquals(a, aa); assertEquals(b, bb); diff --git a/src/test/java/br/com/openenade/api/nota/NotaControllerTests.java b/src/test/java/br/com/openenade/api/nota/NotaControllerTests.java index 401dd3c..d4f6ef0 100644 --- a/src/test/java/br/com/openenade/api/nota/NotaControllerTests.java +++ b/src/test/java/br/com/openenade/api/nota/NotaControllerTests.java @@ -113,13 +113,13 @@ public void getTestBasicPlusDelete() throws Exception { JSONAssert.assertEquals( "{\"info\":{\"ano\":{\"ano\":2018},\"curso\":{\"nome\":" + "\"Ciência da Computação\",\"codigoArea\":33,\"" - + "modalidade\":\"Educação Presencial\"},\"universidade\":{\"c" + + "modalidade\":\"Educação Presencial - 0\"},\"universidade\":{\"c" + "odigoIES\":3213321,\"nome\":\"UFREI\",\"campus\":{\"codigo" + "\":123,\"estado\":{\"sigla\":\"GO\",\"regiao\":{\"sigla\":" + "\"NE\"}},\"nome\":\"Poeira Grande\"},\"categoriaAdmin\":\"P" + "ublico\",\"cursos\":[{\"nome\":\"Ciênc" + "ia da Computação\",\"codigoArea\":33,\"modalidade\":\"Educa" - + "ção Presencial\"}]}},\"avaliacao\":{\"concluintesInscritos" + + "ção Presencial - 0\"}]}},\"avaliacao\":{\"concluintesInscritos" + "\":3,\"concluintesParticipantes\":2,\"notaBrutaFG\":0.5,\"" + "notaPadronizadaFG\":0.0,\"notaBrutaCE\":2.1,\"notaPadroniz" + "adaCE\":0.0,\"enadeContinuo\":3.666,\"enadeFaixa\":1}}", diff --git a/src/test/java/br/com/openenade/api/universidade/UniversidadeControllerTests.java b/src/test/java/br/com/openenade/api/universidade/UniversidadeControllerTests.java index a5a0d8f..b57338f 100644 --- a/src/test/java/br/com/openenade/api/universidade/UniversidadeControllerTests.java +++ b/src/test/java/br/com/openenade/api/universidade/UniversidadeControllerTests.java @@ -88,9 +88,9 @@ public void deleteTests() { private Set createCursos() { Set cursos = new HashSet(); Curso cursoCC = - this.cursoService.save(new Curso("CC", 13, Modalidade.EDUCACAO_PRESENCIAL)); + this.cursoService.addCurso(new Curso("CC", 13, Modalidade.EDUCACAO_PRESENCIAL)); Curso cursoEE = - this.cursoService.save(new Curso("EE", 14, Modalidade.EDUCACAO_PRESENCIAL)); + this.cursoService.addCurso(new Curso("EE", 14, Modalidade.EDUCACAO_PRESENCIAL)); cursos.add(cursoCC); cursos.add(cursoEE); return cursos; diff --git a/src/test/java/br/com/openenade/api/universidade/UniversidadeServiceTests.java b/src/test/java/br/com/openenade/api/universidade/UniversidadeServiceTests.java index c24cbbf..234ab8b 100644 --- a/src/test/java/br/com/openenade/api/universidade/UniversidadeServiceTests.java +++ b/src/test/java/br/com/openenade/api/universidade/UniversidadeServiceTests.java @@ -111,9 +111,9 @@ public void deleteUniversidadeByCodigoIESTest() { private Set createCursos() { Set cursos = new HashSet(); Curso cursoCC = - this.cursoService.save(new Curso("CC", 13, Modalidade.EDUCACAO_PRESENCIAL)); + this.cursoService.addCurso(new Curso("CC", 13, Modalidade.EDUCACAO_PRESENCIAL)); Curso cursoEE = - this.cursoService.save(new Curso("EE", 14, Modalidade.EDUCACAO_PRESENCIAL)); + this.cursoService.addCurso(new Curso("EE", 14, Modalidade.EDUCACAO_PRESENCIAL)); cursos.add(cursoCC); cursos.add(cursoEE); return cursos; From dfc0a64a987072f7d2c1bfb177ee59f602492bc9 Mon Sep 17 00:00:00 2001 From: paulofelipefeitosa Date: Sun, 3 Mar 2019 13:43:16 -0300 Subject: [PATCH 2/2] Refactoring of Notas and add Nota private controller --- .../com/openenade/api/curso/CursoService.java | 21 ++- .../api/curso/PublicCursoController.java | 2 +- .../br/com/openenade/api/estado/Estado.java | 10 +- .../openenade/api/modalidade/Modalidade.java | 4 + .../openenade/api/nota/NotaController.java | 63 --------- .../openenade/api/nota/NotaRepository.java | 2 - .../com/openenade/api/nota/NotaService.java | 55 ++++---- .../api/nota/PrivateNotaController.java | 30 +++++ .../api/nota/PublicNotaController.java | 33 +++++ .../api/stub_data/StubDataCreator.java | 2 +- .../universidade/UniversidadeController.java | 2 +- .../api/universidade/UniversidadeService.java | 4 +- .../api/curso/CursoServiceTests.java | 6 +- .../api/nota/NotaControllerTests.java | 15 ++- .../openenade/api/nota/NotaServiceTests.java | 125 ++++++++---------- .../UniversidadeServiceTests.java | 22 +-- 16 files changed, 196 insertions(+), 200 deletions(-) delete mode 100644 src/main/java/br/com/openenade/api/nota/NotaController.java create mode 100644 src/main/java/br/com/openenade/api/nota/PrivateNotaController.java create mode 100644 src/main/java/br/com/openenade/api/nota/PublicNotaController.java diff --git a/src/main/java/br/com/openenade/api/curso/CursoService.java b/src/main/java/br/com/openenade/api/curso/CursoService.java index a7fb2fb..9c30d33 100644 --- a/src/main/java/br/com/openenade/api/curso/CursoService.java +++ b/src/main/java/br/com/openenade/api/curso/CursoService.java @@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import br.com.openenade.api.exceptions.ResourceNotFound; import br.com.openenade.api.modalidade.Modalidade; +import br.com.openenade.api.modalidade.ModalidadeService; @Service public class CursoService { @@ -21,19 +22,29 @@ public List getAll() { return this.repository.findAll(); } - public Curso getByCodigo(Long codigo, Modalidade modalidade) { - CursoId cursoId = new CursoId(codigo, modalidade); + public Curso getCursoByCursoId(CursoId cursoId) { Optional optCurso = this.repository.findById(cursoId); if (optCurso.isPresent()) { return optCurso.get(); } else { - throw new ResourceNotFound("Cannot find Curso with Codigo [" + Long.toString(codigo) - + "] and Modalidade [" + modalidade.getValue() + "]"); + throw new ResourceNotFound( + "Cannot find Curso with Codigo [" + Long.toString(cursoId.getCodigoArea()) + + "] and Modalidade [" + cursoId.getModalidade().getValue() + "]"); } } + public Curso getCursoByCodigo(Long codigo, Integer modalidade) { + CursoId cursoId = new CursoId(codigo, ModalidadeService.getModalidadeById(modalidade)); + return this.getCursoByCursoId(cursoId); + } + + public Curso getCursoByCodigo(Long codigo, Modalidade modalidade) { + CursoId cursoId = new CursoId(codigo, modalidade); + return this.getCursoByCursoId(cursoId); + } + public void deleteById(CursoId cursoId) { - this.getByCodigo(cursoId.getCodigoArea(), cursoId.getModalidade()); + this.getCursoByCodigo(cursoId.getCodigoArea(), cursoId.getModalidade()); this.repository.deleteById(cursoId); } diff --git a/src/main/java/br/com/openenade/api/curso/PublicCursoController.java b/src/main/java/br/com/openenade/api/curso/PublicCursoController.java index a839a69..ca45f2f 100644 --- a/src/main/java/br/com/openenade/api/curso/PublicCursoController.java +++ b/src/main/java/br/com/openenade/api/curso/PublicCursoController.java @@ -30,7 +30,7 @@ public List getAll() { @GetMapping(path = "/{codigo}/{modalidade}") public Curso getCursoByCodigo(@PathVariable(name = "codigo") Long codigo, @PathVariable(name = "modalidade") Integer modalidadeId) { - return this.service.getByCodigo(codigo, ModalidadeService.getModalidadeById(modalidadeId)); + return this.service.getCursoByCodigo(codigo, ModalidadeService.getModalidadeById(modalidadeId)); } } diff --git a/src/main/java/br/com/openenade/api/estado/Estado.java b/src/main/java/br/com/openenade/api/estado/Estado.java index 8afa092..7928327 100644 --- a/src/main/java/br/com/openenade/api/estado/Estado.java +++ b/src/main/java/br/com/openenade/api/estado/Estado.java @@ -1,6 +1,5 @@ package br.com.openenade.api.estado; - import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToOne; @@ -12,19 +11,18 @@ public class Estado { @Id - @NotBlank(message = "'siglaEstado' não pode ser vazio.") + @NotBlank(message = "Estado 'sigla' não pode ser vazio.") private String sigla; @ManyToOne(optional = false) - @NotNull(message = "'regiaoEstado' não pode ser nulo.") + @NotNull(message = "Estado 'regiao' não pode ser nulo.") private Regiao regiao; public Estado() { } - public Estado(@NotBlank(message = "'siglaEstado' não pode ser vazio.") String siglaEstado, - Regiao regiaoEstado) { + public Estado(String siglaEstado, Regiao regiaoEstado) { super(); this.sigla = siglaEstado; this.regiao = regiaoEstado; @@ -82,6 +80,4 @@ public String toString() { return "Estado [siglaEstado=" + sigla + ", regiaoEstado=" + regiao + "]"; } - - } diff --git a/src/main/java/br/com/openenade/api/modalidade/Modalidade.java b/src/main/java/br/com/openenade/api/modalidade/Modalidade.java index d7da8a2..84676a2 100644 --- a/src/main/java/br/com/openenade/api/modalidade/Modalidade.java +++ b/src/main/java/br/com/openenade/api/modalidade/Modalidade.java @@ -20,6 +20,10 @@ private Modalidade(String value, Integer id) { this.value = value; this.id = id; } + + public Integer getId() { + return this.id; + } @JsonValue public String getValue() { diff --git a/src/main/java/br/com/openenade/api/nota/NotaController.java b/src/main/java/br/com/openenade/api/nota/NotaController.java deleted file mode 100644 index 58a92b1..0000000 --- a/src/main/java/br/com/openenade/api/nota/NotaController.java +++ /dev/null @@ -1,63 +0,0 @@ -package br.com.openenade.api.nota; - -import java.util.Collection; -import java.util.List; -import java.util.Optional; -import javax.validation.Valid; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@CrossOrigin("*") -@RequestMapping(path = NotaController.ENDPOINT) -public class NotaController { - - public static final String ENDPOINT = "notas"; - - @Autowired - private NotaService service; - - @PostMapping - public void postNota(@Valid @RequestBody Nota nota) { - this.service.save(nota); - } - - @GetMapping - @ResponseBody - public ResponseEntity> getAll() { - return new ResponseEntity<>(this.service.getAll(), HttpStatus.OK); - } - - @ResponseBody - @GetMapping(path = "/{ano}-{codigoArea}-{modalidade}-{codigoIES}-{codigoMunicipio}") - public ResponseEntity getNotaByIndex(NotaIdInterface notaIdInterface) { - - Optional optNota = this.service.getNota(notaIdInterface); - - return new ResponseEntity<>(optNota.get(), HttpStatus.OK); - } - - @DeleteMapping(path = "/{ano}-{codigoArea}-{modalidade}-{codigoIES}-{codigoMunicipio}") - public ResponseEntity deleteNotaByIndex(NotaIdInterface notaIdInterface) { - - this.service.deleteNota(notaIdInterface); - - return new ResponseEntity<>(HttpStatus.OK); - } - - @GetMapping("/filterby") - public Collection getFilteredNotas(NotaFilterInterface notaFilterInterface) { - - return this.service.filterByGenericAtribute(notaFilterInterface); - } - -} diff --git a/src/main/java/br/com/openenade/api/nota/NotaRepository.java b/src/main/java/br/com/openenade/api/nota/NotaRepository.java index b1b102e..cbfb91e 100644 --- a/src/main/java/br/com/openenade/api/nota/NotaRepository.java +++ b/src/main/java/br/com/openenade/api/nota/NotaRepository.java @@ -6,6 +6,4 @@ @Repository public interface NotaRepository extends JpaRepository { - - } diff --git a/src/main/java/br/com/openenade/api/nota/NotaService.java b/src/main/java/br/com/openenade/api/nota/NotaService.java index 0a9a570..930ce3c 100644 --- a/src/main/java/br/com/openenade/api/nota/NotaService.java +++ b/src/main/java/br/com/openenade/api/nota/NotaService.java @@ -10,6 +10,7 @@ import br.com.openenade.api.curso.Curso; import br.com.openenade.api.curso.CursoId; import br.com.openenade.api.curso.CursoRepository; +import br.com.openenade.api.exceptions.ResourceNotFound; import br.com.openenade.api.modalidade.Modalidade; import br.com.openenade.api.universidade.Universidade; import br.com.openenade.api.universidade.UniversidadeService; @@ -30,32 +31,36 @@ public class NotaService { @Autowired private UniversidadeService universidadeService; - public Nota save(Nota nota) { - this.anoRepository.save(nota.getInfo().getAno()); - - this.cursoRepository.save(nota.getInfo().getCurso()); - - Universidade universidadeA = nota.getInfo().getUniversidade(); - - Optional optUniB = this.universidadeService.getOptUniversidadeById( - universidadeA.getCodigoIES(), universidadeA.getCampus().getCodigo()); - - if (optUniB.isPresent()) { - Universidade universidadeB = optUniB.get(); - - universidadeA.getCursos().addAll(universidadeB.getCursos()); + public Nota addNota(Nota nota) { + Ano ano = this.anoRepository.save(nota.getInfo().getAno()); + Curso curso = this.cursoRepository.save(nota.getInfo().getCurso()); + + Universidade uni = nota.getInfo().getUniversidade(); + Optional optUni = this.universidadeService + .getOptUniversidadeById(uni.getCodigoIES(), uni.getCampus().getCodigo()); + if (optUni.isPresent()) { + uni = optUni.get(); + } else { + uni = this.universidadeService.addUniversidade(uni); } - this.universidadeService.save(universidadeA); - + nota.getInfo().setAno(ano); + nota.getInfo().setCurso(curso); + nota.getInfo().setUniversidade(uni); return this.notaRepository.save(nota); } - public Optional getNotaById(NotaId id) { - return this.notaRepository.findById(id); + public Nota getNotaById(NotaId id) { + Optional optNota = this.notaRepository.findById(id); + if (optNota.isPresent()) { + return optNota.get(); + } else { + throw new ResourceNotFound("Cannot find Nota by Id " + id.toString()); + } } public void deleteNotaById(NotaId id) { + this.getNotaById(id); this.notaRepository.deleteById(id); } @@ -63,16 +68,15 @@ public List getAll() { return this.notaRepository.findAll(); } - public Optional getNota(NotaIdInterface id) { + public Nota getNota(NotaIdInterface id) { NotaId notaId = makeNotaIdFromInterface(id); - - return this.notaRepository.findById(notaId); + return this.getNotaById(notaId); } public void deleteNota(NotaIdInterface id) { NotaId notaId = makeNotaIdFromInterface(id); - this.notaRepository.deleteById(notaId); + this.deleteNotaById(notaId); } private NotaId makeNotaIdFromInterface(NotaIdInterface idInterface) { @@ -88,7 +92,7 @@ private NotaId makeNotaIdFromInterface(NotaIdInterface idInterface) { } - public List filterByGenericAtribute(NotaFilterInterface nfi) { + public List filterByGenericAttribute(NotaFilterInterface nfi) { FilterBy filter = new FilterBy(this.getAll()); @@ -99,9 +103,4 @@ public List filterByGenericAtribute(NotaFilterInterface nfi) { .filterByIntervaloAno(nfi.getBeginAno(), nfi.getEndAno()).get(); } - public void deleteAll() { - - this.notaRepository.deleteAll(); - - } } diff --git a/src/main/java/br/com/openenade/api/nota/PrivateNotaController.java b/src/main/java/br/com/openenade/api/nota/PrivateNotaController.java new file mode 100644 index 0000000..859ac2c --- /dev/null +++ b/src/main/java/br/com/openenade/api/nota/PrivateNotaController.java @@ -0,0 +1,30 @@ +package br.com.openenade.api.nota; + +import javax.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping(path = PublicNotaController.ENDPOINT) +public class PrivateNotaController { + + @Autowired + private NotaService service; + + @PostMapping + @ResponseBody + public Nota postNota(@Valid @RequestBody Nota nota) { + return this.service.addNota(nota); + } + + @DeleteMapping(path = "/{ano}-{codigoArea}-{modalidade}-{codigoIES}-{codigoMunicipio}") + public void deleteNotaByIndex(NotaIdInterface notaIdInterface) { + this.service.deleteNota(notaIdInterface); + } + +} diff --git a/src/main/java/br/com/openenade/api/nota/PublicNotaController.java b/src/main/java/br/com/openenade/api/nota/PublicNotaController.java new file mode 100644 index 0000000..99f689f --- /dev/null +++ b/src/main/java/br/com/openenade/api/nota/PublicNotaController.java @@ -0,0 +1,33 @@ +package br.com.openenade.api.nota; + +import java.util.Collection; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@CrossOrigin("*") +@RequestMapping(path = PublicNotaController.ENDPOINT) +public class PublicNotaController { + + public static final String ENDPOINT = "notas"; + + @Autowired + private NotaService service; + + @ResponseBody + @GetMapping(path = "/{ano}-{codigoArea}-{modalidade}-{codigoIES}-{codigoMunicipio}") + public Nota getNotaByIndex(NotaIdInterface notaIdInterface) { + return this.service.getNota(notaIdInterface); + } + + @GetMapping + @ResponseBody + public Collection getFilteredNotas(NotaFilterInterface notaFilterInterface) { + return this.service.filterByGenericAttribute(notaFilterInterface); + } + +} diff --git a/src/main/java/br/com/openenade/api/stub_data/StubDataCreator.java b/src/main/java/br/com/openenade/api/stub_data/StubDataCreator.java index d0242df..751d3e7 100644 --- a/src/main/java/br/com/openenade/api/stub_data/StubDataCreator.java +++ b/src/main/java/br/com/openenade/api/stub_data/StubDataCreator.java @@ -163,7 +163,7 @@ private void addNotas(Ano anos[], Curso cursos[], Universidade universidades[]) Nota nota = new Nota.Builder().setAno(anos[i]).setCurso(cursos[i]) .setUniversidade(universidades[i]).build(); - this.notaService.save(nota); + this.notaService.addNota(nota); } } diff --git a/src/main/java/br/com/openenade/api/universidade/UniversidadeController.java b/src/main/java/br/com/openenade/api/universidade/UniversidadeController.java index e1f2b10..b64ffd9 100644 --- a/src/main/java/br/com/openenade/api/universidade/UniversidadeController.java +++ b/src/main/java/br/com/openenade/api/universidade/UniversidadeController.java @@ -29,7 +29,7 @@ public class UniversidadeController { @PostMapping public void addUniversidade(@Valid @RequestBody Universidade universidade) { - this.service.save(universidade); + this.service.addUniversidade(universidade); } @ResponseBody diff --git a/src/main/java/br/com/openenade/api/universidade/UniversidadeService.java b/src/main/java/br/com/openenade/api/universidade/UniversidadeService.java index 693a282..863da98 100644 --- a/src/main/java/br/com/openenade/api/universidade/UniversidadeService.java +++ b/src/main/java/br/com/openenade/api/universidade/UniversidadeService.java @@ -25,7 +25,7 @@ public class UniversidadeService { @Autowired private MunicipioService municipioService; - public Universidade save(Universidade universidade) { + public Universidade addUniversidade(Universidade universidade) { Optional optMunicipio = this.municipioService.getOptionalByCodigo(universidade.getCampus().getCodigo()); Municipio newCampus; @@ -39,7 +39,7 @@ public Universidade save(Universidade universidade) { } public Universidade addCurso2Universidade(Universidade universidade, Curso curso) { - curso = this.cursoService.getByCodigo(curso.getCodigoArea(), curso.getModalidade()); + curso = this.cursoService.getCursoByCodigo(curso.getCodigoArea(), curso.getModalidade()); universidade.addCurso(curso); return this.repository.saveAndFlush(universidade); } diff --git a/src/test/java/br/com/openenade/api/curso/CursoServiceTests.java b/src/test/java/br/com/openenade/api/curso/CursoServiceTests.java index a8a7232..129bd5a 100644 --- a/src/test/java/br/com/openenade/api/curso/CursoServiceTests.java +++ b/src/test/java/br/com/openenade/api/curso/CursoServiceTests.java @@ -67,9 +67,9 @@ public void testGetByCodigo() { this.cursoService.addCurso(b); this.cursoService.addCurso(c); - Curso aa = this.cursoService.getByCodigo(3L, modalidade); - Curso bb = this.cursoService.getByCodigo(5L, modalidade); - Curso cc = this.cursoService.getByCodigo(7L, modalidade); + Curso aa = this.cursoService.getCursoByCodigo(3L, modalidade); + Curso bb = this.cursoService.getCursoByCodigo(5L, modalidade); + Curso cc = this.cursoService.getCursoByCodigo(7L, modalidade); assertEquals(a, aa); assertEquals(b, bb); diff --git a/src/test/java/br/com/openenade/api/nota/NotaControllerTests.java b/src/test/java/br/com/openenade/api/nota/NotaControllerTests.java index d4f6ef0..f55e718 100644 --- a/src/test/java/br/com/openenade/api/nota/NotaControllerTests.java +++ b/src/test/java/br/com/openenade/api/nota/NotaControllerTests.java @@ -22,6 +22,7 @@ import br.com.openenade.api.categoriaadmin.CategoriaAdmin; import br.com.openenade.api.curso.Curso; import br.com.openenade.api.estado.Estado; +import br.com.openenade.api.exceptions.ResourceNotFound; import br.com.openenade.api.modalidade.Modalidade; import br.com.openenade.api.municipio.Municipio; import br.com.openenade.api.municipio.MunicipioService; @@ -66,7 +67,7 @@ public void postTestBasic() throws Exception { nota.getAvaliacao().setEnadeContinuo(3.333); nota.getAvaliacao().setEnadeFaixa(3); - String url = "/" + NotaController.ENDPOINT; + String url = "/" + PublicNotaController.ENDPOINT; assertFalse(notaService.getAll().contains(nota)); @@ -76,7 +77,7 @@ public void postTestBasic() throws Exception { assertTrue(notaService.getAll().contains(nota)); } - @Test + @Test(expected = ResourceNotFound.class) public void getTestBasicPlusDelete() throws Exception { Ano ano = new Ano(2018); Regiao regiao = new Regiao("NE"); @@ -97,12 +98,12 @@ public void getTestBasicPlusDelete() throws Exception { nota.getAvaliacao().setEnadeContinuo(3.666); nota.getAvaliacao().setEnadeFaixa(1); - this.notaService.save(nota); + this.notaService.addNota(nota); - String url = "/" + NotaController.ENDPOINT + String url = "/" + PublicNotaController.ENDPOINT + String.format("/%d-%d-%d-%d-%d", nota.getInfo().getAno().getAno(), nota.getInfo().getCurso().getCodigoArea(), - nota.getInfo().getCurso().getModalidade().ordinal(), + nota.getInfo().getCurso().getModalidade().getId(), nota.getInfo().getUniversidade().getCodigoIES(), nota.getInfo().getUniversidade().getCampus().getCodigo()); @@ -125,11 +126,11 @@ public void getTestBasicPlusDelete() throws Exception { + "adaCE\":0.0,\"enadeContinuo\":3.666,\"enadeFaixa\":1}}", result.getResponse().getContentAsString(), true); - assertTrue(this.notaService.getNotaById(nota.getInfo()).isPresent()); + assertNotNull(this.notaService.getNotaById(nota.getInfo())); result = mvc.perform(delete(url)).andExpect(status().isOk()).andReturn(); - assertFalse(this.notaService.getNotaById(nota.getInfo()).isPresent()); + this.notaService.getNotaById(nota.getInfo()); } } diff --git a/src/test/java/br/com/openenade/api/nota/NotaServiceTests.java b/src/test/java/br/com/openenade/api/nota/NotaServiceTests.java index 019f6c5..24a934a 100644 --- a/src/test/java/br/com/openenade/api/nota/NotaServiceTests.java +++ b/src/test/java/br/com/openenade/api/nota/NotaServiceTests.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; -import java.util.Optional; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -16,6 +15,7 @@ import br.com.openenade.api.categoriaadmin.CategoriaAdmin; import br.com.openenade.api.curso.Curso; import br.com.openenade.api.estado.Estado; +import br.com.openenade.api.exceptions.ResourceNotFound; import br.com.openenade.api.modalidade.Modalidade; import br.com.openenade.api.municipio.Municipio; import br.com.openenade.api.municipio.MunicipioService; @@ -45,16 +45,14 @@ public List addAnos() { Estado estado1 = new Estado("PE", regiao1); Municipio municipio1 = new Municipio(333L, estado1, "Recife"); this.municipioService.save(municipio1); - Curso curso1 = - new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); + Curso curso1 = new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); Universidade universidade1 = new Universidade(11111L, "UFPE", municipio1, CategoriaAdmin.PUBLICO, new HashSet<>()); universidade1.getCursos().add(curso1); Nota nota1 = new Nota.Builder().setAno(ano1).setCurso(curso1).setUniversidade(universidade1) .build(); - - + nota1.getAvaliacao().setConcluintesInscritos(50); nota1.getAvaliacao().setConcluintesParticipantes(20); nota1.getAvaliacao().setNotaBrutaCE(2.5); @@ -68,15 +66,14 @@ public List addAnos() { Estado estado2 = new Estado("MG", regiao2); Municipio municipio2 = new Municipio(222L, estado2, "Minas Gerais"); this.municipioService.save(municipio2); - Curso curso2 = - new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); + Curso curso2 = new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); Universidade universidade2 = new Universidade(11111L, "UFMG", municipio2, CategoriaAdmin.PUBLICO, new HashSet<>()); universidade2.getCursos().add(curso2); Nota nota2 = new Nota.Builder().setAno(ano2).setCurso(curso2).setUniversidade(universidade2) .build(); - + nota2.getAvaliacao().setConcluintesInscritos(60); nota2.getAvaliacao().setConcluintesParticipantes(60); nota2.getAvaliacao().setNotaBrutaCE(2.9); @@ -89,8 +86,7 @@ public List addAnos() { Estado estado = new Estado("PB", regiao); Municipio municipio = new Municipio(123L, estado, "Campina Grande"); this.municipioService.save(municipio); - Curso curso = - new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); + Curso curso = new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); Universidade universidade = new Universidade(123123L, "UFCG", municipio, CategoriaAdmin.PRIVADO, new HashSet<>()); universidade.getCursos().add(curso); @@ -104,16 +100,16 @@ public List addAnos() { nota3.getAvaliacao().setNotaBrutaFG(1.7); nota3.getAvaliacao().setEnadeContinuo(3.553); nota3.getAvaliacao().setEnadeFaixa(3); - + List notas = new ArrayList<>(); notas.add(nota1); notas.add(nota2); notas.add(nota3); - this.notaService.save(nota1); - this.notaService.save(nota2); - this.notaService.save(nota3); + this.notaService.addNota(nota1); + this.notaService.addNota(nota2); + this.notaService.addNota(nota3); return notas; } @@ -124,8 +120,7 @@ public void save() { Regiao regiao = new Regiao("NO"); Estado estado = new Estado("XD", regiao); Municipio municipio = new Municipio(123L, estado, "Capoeira Grande"); - Curso curso = - new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); + Curso curso = new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); Universidade universidade = new Universidade(123123L, "UFCG", municipio, CategoriaAdmin.PUBLICO, new HashSet<>()); universidade.getCursos().add(curso); @@ -139,13 +134,13 @@ public void save() { nota.getAvaliacao().setEnadeContinuo(3.333); nota.getAvaliacao().setEnadeFaixa(3); - this.notaService.save(nota); + this.notaService.addNota(nota); - assertTrue(this.notaService.getNotaById(nota.getInfo()).isPresent()); + assertNotNull(this.notaService.getNotaById(nota.getInfo())); - this.notaService.save(nota); + this.notaService.addNota(nota); - assertTrue(this.notaService.getNotaById(nota.getInfo()).isPresent()); + assertNotNull(this.notaService.getNotaById(nota.getInfo())); } public void saveUnivDuplicated() { @@ -153,10 +148,8 @@ public void saveUnivDuplicated() { Regiao regiao = new Regiao("NO"); Estado estado = new Estado("XD", regiao); Municipio municipio = new Municipio(123L, estado, "Capoeira Grande"); - Curso cursoA = - new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); - Curso cursoB = - new Curso("Ciência da Neurologia", 41L, Modalidade.EDUCACAO_PRESENCIAL); + Curso cursoA = new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); + Curso cursoB = new Curso("Ciência da Neurologia", 41L, Modalidade.EDUCACAO_PRESENCIAL); Universidade universidadeA = new Universidade(123123L, "UFCG", municipio, @@ -170,16 +163,16 @@ public void saveUnivDuplicated() { Nota nota = new Nota.Builder().setAno(ano).setCurso(cursoA).setUniversidade(universidadeA) .build(); - this.notaService.save(nota); + this.notaService.addNota(nota); nota = new Nota.Builder().setAno(ano).setCurso(cursoB).setUniversidade(universidadeB) .build(); - this.notaService.save(nota); + this.notaService.addNota(nota); - assertTrue(this.notaService.getNotaById(nota.getInfo()).isPresent()); + assertNotNull(this.notaService.getNotaById(nota.getInfo())); - nota = this.notaService.getNotaById(nota.getInfo()).get(); + nota = this.notaService.getNotaById(nota.getInfo()); assertEquals(2, nota.getInfo().getUniversidade().getCursos().size()); @@ -193,8 +186,7 @@ public void getAll() { Regiao regiao = new Regiao("NE"); Estado estado = new Estado("PB", regiao); Municipio municipio = new Municipio(123L, estado, "Campina Grande"); - Curso curso = - new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); + Curso curso = new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); Universidade universidade = new Universidade(123123L, "UFCG", municipio, CategoriaAdmin.PUBLICO, new HashSet<>()); universidade.getCursos().add(curso); @@ -202,7 +194,7 @@ public void getAll() { Nota nota3 = new Nota.Builder().setAno(ano).setCurso(curso).setUniversidade(universidade) .build(); - nota3 = this.notaService.save(nota3); + nota3 = this.notaService.addNota(nota3); ano = new Ano(2017); regiao = new Regiao("N"); @@ -216,7 +208,7 @@ public void getAll() { Nota nota4 = new Nota.Builder().setAno(ano).setCurso(curso).setUniversidade(universidade) .build(); - nota4 = this.notaService.save(nota4); + nota4 = this.notaService.addNota(nota4); List notas = this.notaService.getAll(); assertTrue(notas.contains(nota3)); @@ -229,8 +221,7 @@ public void getById() { Regiao regiao = new Regiao("C"); Estado estado = new Estado("Ancapistão", regiao); Municipio municipio = new Municipio(123L, estado, "Paulo Kogos"); - Curso curso = - new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_A_DISTANCIA); + Curso curso = new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_A_DISTANCIA); Universidade universidade = new Universidade(123123L, "UCIP", municipio, CategoriaAdmin.PRIVADO, new HashSet<>()); universidade.getCursos().add(curso); @@ -238,13 +229,12 @@ public void getById() { Nota nota3 = new Nota.Builder().setAno(ano).setCurso(curso).setUniversidade(universidade) .build(); - nota3 = this.notaService.save(nota3); + nota3 = this.notaService.addNota(nota3); - Optional optNota = this.notaService.getNotaById(nota3.getInfo()); + Nota nota = this.notaService.getNotaById(nota3.getInfo()); - assertTrue(optNota.isPresent()); + assertNotNull(nota); - Nota nota = optNota.get(); assertEquals(nota3, nota); assertEquals(nota3.hashCode(), nota.hashCode()); @@ -254,14 +244,13 @@ public void getById() { assertEquals(universidade, nota.getInfo().getUniversidade()); } - @Test + @Test(expected = ResourceNotFound.class) public void deleteById() { Ano ano = new Ano(2019); Regiao regiao = new Regiao("NE"); Estado estado = new Estado("PE", regiao); Municipio municipio = new Municipio(123L, estado, "Campina Grande"); - Curso curso = - new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); + Curso curso = new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); Universidade universidade = new Universidade(123123L, "UFCG", municipio, CategoriaAdmin.PUBLICO, new HashSet<>()); universidade.getCursos().add(curso); @@ -269,11 +258,11 @@ public void deleteById() { Nota nota3 = new Nota.Builder().setAno(ano).setCurso(curso).setUniversidade(universidade) .build(); - nota3 = this.notaService.save(nota3); + nota3 = this.notaService.addNota(nota3); this.notaService.deleteNotaById(nota3.getInfo()); - assertFalse(this.notaService.getNotaById(nota3.getInfo()).isPresent()); + this.notaService.getNotaById(nota3.getInfo()); } @@ -283,7 +272,7 @@ public void testFilterByAno() { NotaFilterInterface nfi = new NotaFilterInterface(); nfi.setBeginAno(2017); nfi.setEndAno(2017); - assertEquals(this.notas.get(0), this.notaService.filterByGenericAtribute(nfi).get(0)); + assertEquals(this.notas.get(0), this.notaService.filterByGenericAttribute(nfi).get(0)); } @Test @@ -296,7 +285,7 @@ public void testFilterByCategoria() { NotaFilterInterface nfi = new NotaFilterInterface(); nfi.setCategoria(CategoriaAdmin.PUBLICO); - assertEquals(publica, this.notaService.filterByGenericAtribute(nfi)); + assertEquals(publica, this.notaService.filterByGenericAttribute(nfi)); } @Test @@ -304,7 +293,7 @@ public void testFilterByCodigoCurso() { NotaFilterInterface nfi = new NotaFilterInterface(); nfi.setCodigoArea(41L); - assertEquals(this.notas, this.notaService.filterByGenericAtribute(nfi)); + assertEquals(this.notas, this.notaService.filterByGenericAttribute(nfi)); } @Test @@ -312,7 +301,7 @@ public void testFilterByEstado() { NotaFilterInterface nfi = new NotaFilterInterface(); nfi.setEstado("PB"); - assertEquals(this.notas.get(2), this.notaService.filterByGenericAtribute(nfi).get(0)); + assertEquals(this.notas.get(2), this.notaService.filterByGenericAttribute(nfi).get(0)); } @Test @@ -320,7 +309,7 @@ public void testFilterByModalidade() { NotaFilterInterface nfi = new NotaFilterInterface(); nfi.setModalidade(Modalidade.EDUCACAO_PRESENCIAL); - assertEquals(this.notas, this.notaService.filterByGenericAtribute(nfi)); + assertEquals(this.notas, this.notaService.filterByGenericAttribute(nfi)); } @Test @@ -328,7 +317,7 @@ public void testFilterByMunicipio() { NotaFilterInterface nfi = new NotaFilterInterface(); nfi.setMunicipio(123L); - assertEquals(this.notas.get(2), this.notaService.filterByGenericAtribute(nfi).get(0)); + assertEquals(this.notas.get(2), this.notaService.filterByGenericAttribute(nfi).get(0)); } @Test @@ -340,7 +329,7 @@ public void testFilterByRegiao() { NotaFilterInterface nfi = new NotaFilterInterface(); nfi.setRegiao("NE"); - assertEquals(nordeste, this.notaService.filterByGenericAtribute(nfi)); + assertEquals(nordeste, this.notaService.filterByGenericAttribute(nfi)); } @Test @@ -353,13 +342,13 @@ public void testFilterByCodigoIES() { NotaFilterInterface nfi = new NotaFilterInterface(); nfi.setUniversidade(11111L); - assertEquals(byIES, this.notaService.filterByGenericAtribute(nfi)); + assertEquals(byIES, this.notaService.filterByGenericAttribute(nfi)); } @Test public void testFilterByNothing() { NotaFilterInterface nfi = new NotaFilterInterface(); - assertEquals(this.notas, this.notaService.filterByGenericAtribute(nfi)); + assertEquals(this.notas, this.notaService.filterByGenericAttribute(nfi)); } @Test @@ -372,21 +361,20 @@ public void testFilterByAnoInterval() { NotaFilterInterface nfi = new NotaFilterInterface(); nfi.setBeginAno(2017); nfi.setEndAno(2018); - assertEquals(anos, this.notaService.filterByGenericAtribute(nfi)); + assertEquals(anos, this.notaService.filterByGenericAttribute(nfi)); nfi.setEndAno(2019); anos.add(this.notas.get(2)); - assertEquals(anos, this.notaService.filterByGenericAtribute(nfi)); + assertEquals(anos, this.notaService.filterByGenericAttribute(nfi)); } - + @Test public void caso1() { Ano ano = new Ano(2018); Regiao regiao = new Regiao("NO"); Estado estado = new Estado("XD", regiao); Municipio municipio = new Municipio(123L, estado, "Capoeira Grande"); - Curso curso = - new Curso("Ciência da Computação", 2234234L, Modalidade.EDUCACAO_PRESENCIAL); + Curso curso = new Curso("Ciência da Computação", 2234234L, Modalidade.EDUCACAO_PRESENCIAL); Universidade universidade = new Universidade(123123L, "UFCG", municipio, CategoriaAdmin.PUBLICO, new HashSet<>()); universidade.getCursos().add(curso); @@ -400,12 +388,12 @@ public void caso1() { nota.getAvaliacao().setEnadeContinuo(3.333); nota.getAvaliacao().setEnadeFaixa(3); - this.notaService.save(nota); - + this.notaService.addNota(nota); + assertTrue(this.notaService.getAll().contains(nota)); - + } - + @Test public void caso2() { Ano ano1 = new Ano(2017); @@ -413,25 +401,24 @@ public void caso2() { Estado estado1 = new Estado("PE", regiao1); Municipio municipio1 = new Municipio(333L, estado1, "Recife"); this.municipioService.save(municipio1); - Curso curso1 = - new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); + Curso curso1 = new Curso("Ciência da Computação", 41L, Modalidade.EDUCACAO_PRESENCIAL); Universidade universidade1 = new Universidade(11111L, "UFPE", municipio1, CategoriaAdmin.PUBLICO, new HashSet<>()); universidade1.getCursos().add(curso1); Nota nota1 = new Nota.Builder().setAno(ano1).setCurso(curso1).setUniversidade(universidade1) .build(); - + nota1.getAvaliacao().setConcluintesInscritos(50); nota1.getAvaliacao().setConcluintesParticipantes(20); nota1.getAvaliacao().setNotaBrutaCE(2.5); nota1.getAvaliacao().setNotaBrutaFG(1.7); nota1.getAvaliacao().setEnadeContinuo(3.553); nota1.getAvaliacao().setEnadeFaixa(3); - - this.notaService.save(nota1); - + + this.notaService.addNota(nota1); + assertTrue(this.notaService.getAll().contains(this.notas.get(0))); - - } + + } } diff --git a/src/test/java/br/com/openenade/api/universidade/UniversidadeServiceTests.java b/src/test/java/br/com/openenade/api/universidade/UniversidadeServiceTests.java index 234ab8b..76577c9 100644 --- a/src/test/java/br/com/openenade/api/universidade/UniversidadeServiceTests.java +++ b/src/test/java/br/com/openenade/api/universidade/UniversidadeServiceTests.java @@ -45,7 +45,7 @@ public void saveTest() { Universidade ufcg = new Universidade((long) 10, "UFCG", campus, CategoriaAdmin.PUBLICO, cursos); - this.service.save(ufcg); + this.service.addUniversidade(ufcg); Universidade aux = this.service.getUniversidadeById(ufcg.getCodigoIES(), ufcg.getCampus().getCodigo()); assertEquals("UFCG", aux.getNome()); @@ -64,8 +64,8 @@ public void getAllTest() { Universidade Nassau = new Universidade((long) 12, "UEPB", campus, CategoriaAdmin.PRIVADO, cursos); - this.service.save(UFCG); - this.service.save(UFPB); + this.service.addUniversidade(UFCG); + this.service.addUniversidade(UFPB); Collection universidades = this.service.getAll(); @@ -86,8 +86,8 @@ public void getByCodigoIESTest() { Universidade Nassau = new Universidade((long) 12, "UEPB", campus, CategoriaAdmin.PRIVADO, cursos); - this.service.save(UFPB); - this.service.save(Nassau); + this.service.addUniversidade(UFPB); + this.service.addUniversidade(Nassau); Collection actual = this.service.getAllByCodigoIES((long) 10); assertEquals(actual.size(), 1); @@ -101,7 +101,7 @@ public void deleteUniversidadeByCodigoIESTest() { Universidade UFCG = new Universidade((long) 10, "UFCG", campus, CategoriaAdmin.PUBLICO, cursos); - this.service.save(UFCG); + this.service.addUniversidade(UFCG); this.service.deleteUniversidadesByCodigoIES((long) 10); @@ -126,7 +126,7 @@ public void getUniversidadeById() { Universidade ufcg = new Universidade((long) 10, "UFCG", campus, CategoriaAdmin.PUBLICO, cursos); - this.service.save(ufcg); + this.service.addUniversidade(ufcg); assertEquals(ufcg, this.service.getUniversidadeById(ufcg.getCodigoIES(), ufcg.getCampus().getCodigo())); } @@ -142,9 +142,9 @@ public void getUniversidadesByCurso() { Universidade ufpb = new Universidade((long) 12, "UFPB", campus, CategoriaAdmin.PUBLICO, cursosEmpty); - this.service.save(uepb); - this.service.save(ufcg); - this.service.save(ufpb); + this.service.addUniversidade(uepb); + this.service.addUniversidade(ufcg); + this.service.addUniversidade(ufpb); Collection expect = new ArrayList(); expect.add(uepb); @@ -162,7 +162,7 @@ public void deleteUniversidadeById() { Universidade ufcg = new Universidade((long) 10, "UFCG", campus, CategoriaAdmin.PUBLICO, cursos); - this.service.save(ufcg); + this.service.addUniversidade(ufcg); assertEquals(ufcg, this.service.getUniversidadeById(ufcg.getCodigoIES(), ufcg.getCampus().getCodigo()));