Skip to content

Commit 438a9cd

Browse files
Refatorando para simplificar a aplicação: - Correção do negócio da busca de gastos por dia. - Criado teste unitário para listagem de gastos por dia
1 parent 0bf9d34 commit 438a9cd

File tree

4 files changed

+17
-7
lines changed

4 files changed

+17
-7
lines changed

testeSantanderWay/src/main/java/br/com/testesantanderway/controller/GastoController.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import br.com.testesantanderway.controller.form.GastoForm;
66
import br.com.testesantanderway.dto.GastoDTO;
77
import br.com.testesantanderway.modelo.Gasto;
8-
import br.com.testesantanderway.repository.GastoRepository;
98
import br.com.testesantanderway.service.GastoService;
109
import org.springframework.beans.factory.annotation.Autowired;
1110
import org.springframework.cache.annotation.Cacheable;
@@ -17,7 +16,7 @@
1716
import org.springframework.web.bind.annotation.*;
1817

1918
import javax.servlet.http.HttpServletRequest;
20-
import java.time.LocalDateTime;
19+
import java.time.LocalDate;
2120
import java.util.List;
2221

2322
@RestController
@@ -49,7 +48,7 @@ public ResponseEntity lancarGastosCartao(HttpServletRequest request, @RequestBod
4948
@Cacheable("gastoUsuario")
5049
@GetMapping("/{dataCriacao}")
5150
public Page<GastoDTO> listagemDeGastosPorData(HttpServletRequest request,
52-
@PathVariable LocalDateTime dataCriacao,
51+
@PathVariable LocalDate dataCriacao,
5352
@PageableDefault(sort = "dataCriacao", direction = Sort.Direction.DESC) Pageable paginacao) {
5453
String codigoUsuario = servicoDeToken.getCodigo(AutenticacaoViaTokenFilter.recuperarToken(request));
5554
return GastoDTO.converter(gastoService.encontrarGastosDoDia(codigoUsuario, dataCriacao, paginacao));

testeSantanderWay/src/main/java/br/com/testesantanderway/repository/GastoRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public interface GastoRepository extends SolrCrudRepository<Gasto, String>{
1414
List<Gasto> findByCodigoUsuarioAndDataCriacaoAfter(String codigoUsuario, LocalDateTime dataCriacao);
1515

1616
@Cacheable("gastoUsuario")
17-
Page<Gasto> findByCodigoUsuarioAndDataCriacao(String codigoUsuario, LocalDateTime dataCriacao, Pageable paginacao);
17+
Page<Gasto> findByCodigoUsuarioAndDataCriacaoBetween(String codigoUsuario, LocalDateTime inicio, LocalDateTime fim, Pageable paginacao);
1818

1919
@Cacheable("categoria")
2020
Optional<String> findCategoriaByDescricao(String descricao);

testeSantanderWay/src/main/java/br/com/testesantanderway/service/GastoService.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
import org.springframework.data.domain.Pageable;
88
import org.springframework.stereotype.Service;
99

10+
import java.time.LocalDate;
1011
import java.time.LocalDateTime;
12+
import java.time.temporal.TemporalUnit;
1113
import java.util.List;
1214
import java.util.Optional;
1315

@@ -27,8 +29,10 @@ public List<Gasto> listarGastosMaisRecentes(String codigoUsuario) {
2729
return gastoRepository.findByCodigoUsuarioAndDataCriacaoAfter(codigoUsuario, ultimosCincoSegundos);
2830
}
2931

30-
public Page<Gasto> encontrarGastosDoDia(String codigoUsuario, LocalDateTime dia, Pageable paginacao){
31-
return gastoRepository.findByCodigoUsuarioAndDataCriacao(codigoUsuario, dia, paginacao);
32+
public Page<Gasto> encontrarGastosDoDia(String codigoUsuario, LocalDate dia, Pageable paginacao){
33+
LocalDateTime inicio = dia.atStartOfDay();
34+
LocalDateTime fim = dia.plusDays(1).atStartOfDay().minusNanos(1);
35+
return gastoRepository.findByCodigoUsuarioAndDataCriacaoBetween(codigoUsuario, inicio, fim, paginacao);
3236
}
3337

3438
private void integrarCategoria(Gasto gasto){

testeSantanderWay/src/test/java/br/com/testesantanderway/config/TesteGasto.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22

33
import br.com.testesantanderway.modelo.Gasto;
44
import br.com.testesantanderway.service.GastoService;
5-
import io.jsonwebtoken.lang.Assert;
65
import org.junit.jupiter.api.BeforeEach;
76
import org.junit.jupiter.api.DisplayName;
87
import org.junit.jupiter.api.Test;
98
import org.mockito.Mock;
109
import org.springframework.boot.test.context.SpringBootTest;
10+
import org.springframework.data.domain.Pageable;
1111

12+
import java.time.LocalDate;
1213
import java.time.LocalDateTime;
1314
import java.util.UUID;
1415

@@ -45,4 +46,10 @@ public void testarListagemDeGastos(){
4546
service.listarGastosMaisRecentes(this.codigoUsuario);
4647
}
4748

49+
@DisplayName("Testa o Serviço de Listagem de Gastos de um determinado dia")
50+
@Test
51+
public void testarListagemDeGastosDoDia(){
52+
service.encontrarGastosDoDia(codigoUsuario, LocalDate.now(), Pageable.unpaged());
53+
}
54+
4855
}

0 commit comments

Comments
 (0)