Skip to content

Commit

Permalink
Merge pull request #46 from Joaquimborges/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
hugaodamm committed Nov 11, 2021
2 parents 2d90db8 + 20aefdb commit bcf81f5
Show file tree
Hide file tree
Showing 3 changed files with 110 additions and 17 deletions.
Expand Up @@ -2,6 +2,7 @@

import com.bootcamp_w3_g3.model.dtos.request.CarrinhoForm;
import com.bootcamp_w3_g3.model.entity.Carrinho;
import com.bootcamp_w3_g3.model.entity.Produto;
import com.bootcamp_w3_g3.service.CarrinhoService;
import com.bootcamp_w3_g3.service.CompradorService;
import com.bootcamp_w3_g3.service.ProdutoService;
Expand Down Expand Up @@ -56,5 +57,15 @@ public ResponseEntity<Carrinho> atualizarPedido(@RequestBody CarrinhoForm carrin
return new ResponseEntity<>(carrinho, HttpStatus.OK);
}

/**
*endpoint deve listar todos os produtos
* contidos em um carrinho especifico.
* @author Joaquim Borges
*/
@GetMapping("/carrinho/{idCarrinho}")
public ResponseEntity<List<Produto>> mostrarProdutosDoPedido(@PathVariable Long idCarrinho) {
return new ResponseEntity<>(carrinhoService.mostrarProdutosDoPedido(idCarrinho), HttpStatus.OK);
}

}

20 changes: 5 additions & 15 deletions src/main/java/com/bootcamp_w3_g3/controller/ProdutoController.java
Expand Up @@ -5,7 +5,6 @@
import com.bootcamp_w3_g3.model.entity.Lote;
import com.bootcamp_w3_g3.model.entity.Produto;
import com.bootcamp_w3_g3.model.entity.TipoProduto;
import com.bootcamp_w3_g3.service.CarrinhoService;
import com.bootcamp_w3_g3.service.LoteService;
import com.bootcamp_w3_g3.service.ProdutoService;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -31,8 +30,7 @@ public class ProdutoController {
@Autowired
private LoteService loteService;

@Autowired
private CarrinhoService carrinhoService;



/**
Expand Down Expand Up @@ -93,7 +91,7 @@ public ResponseEntity<List<ProdutoDTO>> listar() {
/**
*endpoint deve listar todos os produtos da
* mesma categoria.
* @autor Joaquim Borges
* @author Joaquim Borges
*/
@GetMapping("/listar/{categoria}")
public ResponseEntity<List<Produto>> listarPorCategoria(@PathVariable TipoProduto categoria) {
Expand All @@ -104,20 +102,12 @@ public ResponseEntity<List<Produto>> listarPorCategoria(@PathVariable TipoProdut
}
}

/**
*endpoint deve listar todos os produtos
* contidos em um carrinho especifico.
* @autor Joaquim Borges
*/
@GetMapping("/carrinho/{idCarrinho}")
public ResponseEntity<List<Produto>> mostrarProdutosDoPedido(@PathVariable Long idCarrinho) {
return new ResponseEntity<>(carrinhoService.mostrarProdutosDoPedido(idCarrinho), HttpStatus.OK);
}


/**
*endpoint para consultar um produto em stock
* saber sua localização no setor e diferentes lotes
* @autor Joaquim Borges
* @author Joaquim Borges
*/
@GetMapping("/lotes/listar/{codProduto}")
public ResponseEntity<List<LoteDTO>> retornaLotesDoProduto(@PathVariable Integer codProduto) {
Expand All @@ -131,7 +121,7 @@ public ResponseEntity<List<LoteDTO>> retornaLotesDoProduto(@PathVariable Integer

/**
*
* @param codProduto
* @param codProduto (codigoDoProduto)
* @param tipoDeOrdenacao (Lote, quantidade, vencimento)
* @return Lista de lotes ordenados.
* @author Matheus Willock
Expand Down
Expand Up @@ -30,7 +30,7 @@


/**
* @autor Joaquim Borges
* @author Joaquim Borges
*/
@SpringBootTest(classes = BootcampW3G3Application.class)
@WebAppConfiguration
Expand Down Expand Up @@ -121,6 +121,16 @@ private ProdutoForm payloadProduto6() {
.build();
}

private ProdutoForm payloadProduto7() {
return ProdutoForm.builder()
.codigoDoProduto(43)
.nome("carne")
.preco(50.0)
.tipoProduto(TipoProduto.FRESCOS)
.temperaturaIndicada(16.0)
.build();
}

private RepresentanteForm payloadRepresentante(){
return RepresentanteForm.builder()
.codigo("R-30")
Expand All @@ -132,6 +142,17 @@ private RepresentanteForm payloadRepresentante(){
.build();
}

private RepresentanteForm payloadRepresentante2(){
return RepresentanteForm.builder()
.codigo("R-100")
.nome("Alex")
.sobrenome("Gomes")
.endereco("rua qualquer")
.cpf("123.234.345-04")
.telefone("11-2473648")
.build();
}

private void persisteRepresentante(RepresentanteForm representanteForm) {
Representante representante = Representante.builder()
.nome(representanteForm.getNome())
Expand All @@ -156,6 +177,18 @@ private ArmazemForm payloadArmazem(RepresentanteForm representanteForm) {
.uf("SP").build();
}

private ArmazemForm payloadArmazem2(RepresentanteForm representanteForm) {
this.persisteRepresentante(representanteForm);

return ArmazemForm.builder()
.codArmazem("AR-100")
.nome("armazem central")
.representante(representanteForm)
.endereco("qualquer lugar")
.numero(100)
.uf("SP").build();
}

private void persisteArmazem(ArmazemForm armazemForm) {

Representante representante = this.representanteService.obter(armazemForm.getRepresentante().getCodigo());
Expand Down Expand Up @@ -319,7 +352,7 @@ void deveApagarUmProduto() throws Exception {
/**
* teste deve listar todos os produtos da mesma
* categoria
* @autor Joaquim Borges
* @author Joaquim Borges
*/
@Test
void deveListarProdutosPorCategoria() throws Exception {
Expand Down Expand Up @@ -384,5 +417,64 @@ void deveListarLotesDoProduto() throws Exception {
.andExpect(status().isOk());
}

/**
* @author Matheus Willock
*/
@Test
void deveListarOrdenadosPorLotes() throws Exception{

ProdutoForm produtoForm = this.payloadProduto7();
this.persisteProduto(produtoForm);

RepresentanteForm representanteForm = this.payloadRepresentante2();
ArmazemForm armazemForm = this.payloadArmazem2(representanteForm);
this.persisteArmazem(armazemForm);

SetorForm setorForm = SetorForm.builder().codigo("S-100")
.nome("C").tipoProduto(TipoProduto.REFRIGERADOS)
.espacoDisponivel(10).armazem(armazemForm)
.build()
;

this.persisteSetor1(setorForm);

LoteForm loteForm = LoteForm.builder().numero(110)
.setorForm(setorForm).produtoForm(produtoForm)
.dataDeValidade(LocalDate.of(2021, 12, 20))
.dataDeFabricacao(LocalDate.now()).horaFabricacao(LocalTime.now())
.quantidadeAtual(4).quantidadeMinina(2).temperaturaAtual(13.2)
.temperaturaMinima(12.5).build()
;

this.persisteLote2(loteForm);

LoteForm loteForm2 = LoteForm.builder().numero(100)
.setorForm(setorForm).produtoForm(produtoForm)
.dataDeValidade(LocalDate.of(2021, 12, 20))
.dataDeFabricacao(LocalDate.now()).horaFabricacao(LocalTime.now())
.quantidadeAtual(4).quantidadeMinina(2).temperaturaAtual(13.2)
.temperaturaMinima(12.5).build()
;

this.persisteLote2(loteForm2);

LoteForm loteForm3 = LoteForm.builder().numero(120)
.setorForm(setorForm).produtoForm(produtoForm)
.dataDeValidade(LocalDate.of(2021, 12, 20))
.dataDeFabricacao(LocalDate.now()).horaFabricacao(LocalTime.now())
.quantidadeAtual(4).quantidadeMinina(2).temperaturaAtual(13.2)
.temperaturaMinima(12.5).build()
;

this.persisteLote2(loteForm3);

this.mockMvc.perform(get(
"http://localhost:8080/produtos/lotes/lista-ordem/"
+ produtoForm.getCodigoDoProduto() + "/lote" )
)
.andExpect(status().isOk()
);

}

}

0 comments on commit bcf81f5

Please sign in to comment.