Se agrego el miodelo de detalle
This commit is contained in:
147
test/danielcortes/xyz/models/detalle/SQLiteDetalleDAOTest.java
Normal file
147
test/danielcortes/xyz/models/detalle/SQLiteDetalleDAOTest.java
Normal file
@@ -0,0 +1,147 @@
|
||||
/*
|
||||
* Copyright (c) 2019 Daniel Antonio Cortés Pincheira. All rights reserved
|
||||
*/
|
||||
|
||||
package danielcortes.xyz.models.detalle;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import com.github.javafaker.Faker;
|
||||
import danielcortes.xyz.data.ConnectionHolder;
|
||||
import danielcortes.xyz.data.DAOManager;
|
||||
import danielcortes.xyz.data.SQLiteConnectionHolder;
|
||||
import danielcortes.xyz.models.estado_resultado.EstadoResultado;
|
||||
import danielcortes.xyz.models.estado_resultado.EstadoResultadoDAO;
|
||||
import danielcortes.xyz.models.tipo_detalle.TipoDetalle;
|
||||
import danielcortes.xyz.models.tipo_detalle.TipoDetalleDAO;
|
||||
import danielcortes.xyz.models.version.SQLiteVersionDAO;
|
||||
import danielcortes.xyz.models.version.VersionDAO;
|
||||
import danielcortes.xyz.utils.RandomLocalDate;
|
||||
import java.io.File;
|
||||
import java.time.YearMonth;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
|
||||
class SQLiteDetalleDAOTest {
|
||||
private static final int databaseVersion = 3;
|
||||
|
||||
private static Faker faker;
|
||||
private static VersionDAO versionDAO;
|
||||
private DetalleDAO detalleDAO;
|
||||
private EstadoResultadoDAO estadoResultadoDAO;
|
||||
private TipoDetalleDAO tipoDetalleDAO;
|
||||
|
||||
|
||||
@BeforeAll
|
||||
static void setAll() {
|
||||
ConnectionHolder connectionHolder = new SQLiteConnectionHolder("jdbc:sqlite:/tmp/tmp.sqlite");
|
||||
DAOManager.setup(connectionHolder);
|
||||
versionDAO = new SQLiteVersionDAO(connectionHolder);
|
||||
faker = new Faker();
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
versionDAO.updateTo(databaseVersion);
|
||||
this.tipoDetalleDAO = DAOManager.getTipoDetalleDAO();
|
||||
this.estadoResultadoDAO = DAOManager.getEstadoResultadoDAO();
|
||||
this.detalleDAO = DAOManager.getDetalleDAO();
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void tearDown() {
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
new File("/tmp/tmp.sqlite").delete();
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ValueSource(ints={1, 5, 10})
|
||||
void getAll(int size) {
|
||||
//La base de datos al crearse genera un tipoDetalle con id 1 entre otros
|
||||
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||
TipoDetalle tipoDetalle = this.tipoDetalleDAO.getById(1).get();
|
||||
|
||||
List<EstadoResultado> e = new ArrayList<>(size);
|
||||
for(int i = 0; i < size; i++){
|
||||
EstadoResultado estadoResultado = giveEstadoResultado();
|
||||
|
||||
this.estadoResultadoDAO.insert(estadoResultado);
|
||||
e.add(estadoResultado);
|
||||
}
|
||||
|
||||
List<Detalle> d1 = new ArrayList<>(size);
|
||||
for(EstadoResultado estadoResultado: e){
|
||||
Detalle detalle = giveDetalle(tipoDetalle, estadoResultado);
|
||||
this.detalleDAO.insert(detalle);
|
||||
d1.add(detalle);
|
||||
}
|
||||
|
||||
List<Detalle> d2 = this.detalleDAO.getAll();
|
||||
assertThat(d2)
|
||||
.hasSize(size)
|
||||
.containsAll(d1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getByTipoDetalle() {
|
||||
}
|
||||
|
||||
@Test
|
||||
void getById() {
|
||||
}
|
||||
|
||||
@Test
|
||||
void getByEstadoResultado() {
|
||||
}
|
||||
|
||||
@Test
|
||||
void insert() {
|
||||
}
|
||||
|
||||
@Test
|
||||
void update() {
|
||||
}
|
||||
|
||||
@Test
|
||||
void delete() {
|
||||
}
|
||||
|
||||
Detalle giveDetalle(TipoDetalle tipoDetalle, EstadoResultado estadoResultado) {
|
||||
Detalle detalle = new Detalle();
|
||||
detalle.setValor(faker.number().numberBetween(0, 10000000));
|
||||
detalle.setDescripcion(faker.lorem().sentence());
|
||||
detalle.setTipoDetalle(tipoDetalle);
|
||||
detalle.setEstadoResultado(estadoResultado);
|
||||
|
||||
return detalle;
|
||||
}
|
||||
|
||||
EstadoResultado giveEstadoResultado() {
|
||||
EstadoResultado estadoResultado = new EstadoResultado();
|
||||
estadoResultado.setMes(YearMonth.from(RandomLocalDate.random()));
|
||||
estadoResultado.setCostoVenta(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setCuentaCorrienteFactura(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setCuentaCorrienteBoleta(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setCuentaCorrienteSinRespaldo(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setRemuneraciones(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setFiniquitos(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setAguinaldo(faker.number().numberBetween(0, 10000000) );
|
||||
estadoResultado.setBonosPersonal(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setHonorariosContador(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setArriendo(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setAgua(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setLuz(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setGas(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setTelefono(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setOtroServicio(faker.number().numberBetween(0, 10000000));
|
||||
estadoResultado.setPpm(faker.number().randomDouble(2,0,100));
|
||||
estadoResultado.setIvaFavor(faker.number().numberBetween(0, 10000000));
|
||||
return estadoResultado;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user