Skip to content

marcosfshirafuchi/DEVSUPERIOR-Desafio-TDD-Event-City

Repository files navigation

image-2024-07-01-T11-45-10-371-Z Java Spring Expert - Desafio 01

Desenvolvido na linguagem Java por:

Formação Desenvolvedor Moderno Módulo: Back end

Capítulo: Testes automatizados

DESAFIO: TDD Event City

Implemente as funcionalidades necessárias para que os testes do projeto abaixo passem.

Este é um sistema de eventos e cidades com uma relação N-1 entre eles:

image-2024-08-29-T00-48-54-278-Z

A especificação do que deve ser implementado está no próprio código fonte dos testes automatizados.

Mínimo para aprovação: 6/7

O projeto foi desenvolvido na aula do curso Java Spring Expert - Capítulo: "Testes automatizados" da plataforma DEVSuperior do professor Nélio Alves.

Principais Tecnologias

  • Java 21 : Utilizaremos a versão LTS mais recente do Java para tirar vantagem das últimas inovações que essa linguagem robusta e amplamente utilizada oferece;
  • Spring Boot 3 : Trabalharemos com a mais nova versão do Spring Boot, que maximiza a produtividade do desenvolvedor por meio de sua poderosa premissa de autoconfiguração;
  • Spring Data JPA: Exploraremos como essa ferramenta pode simplificar nossa camada de acesso aos dados, facilitando a integração com bancos de dados SQL;
  • H2 Database: Banco de dados SQL em memória.
  • Postman: Para testar os métodos http do controller.

Critérios de correção:

Mínimo para aprovação: 6 de 7

  • DELETE /cities/{id} deve retornar 404 Not Found quando id não existir

  • DELETE /cities/{id} deve retornar 204 No Content quando id for independente

  • DELETE /cities/{id} deve retornar 400 Bad Request quando id for dependente

  • POST /cities deve inserir recurso

  • GET /cities deve retornar recursos ordenados por nome

  • PUT /events deve atualizar recurso quando id existir

  • PUT /events deve retornar 404 Not Found quando id não existir

Competências avaliadas:

  • Desenvolvimento TDD de API Rest com Java e Spring Boot

  • Implementação de cenários de busca, inserção, deleção e atualização

  • Tratamento de exceções em API com respostas HTTP customizadas