From b3eff7ad616e00205704b19b769804714b027b2c Mon Sep 17 00:00:00 2001 From: Aitor Angulo Salas Date: Wed, 23 Oct 2024 17:52:47 +0200 Subject: [PATCH] Resueltos todos los conflictos, Corregido el problema del duplicado de la clase DAO --- .../AnhadirPuntoInteresPresenter.java | 5 +- .../puntoInteres/AnhadirPuntoInteresView.java | 5 +- .../IAnhadirPuntoInteresContract.java | 5 +- .../gasolineras/model/PuntoInteres.java | 2 +- .../repository/IPuntosInteresDAO.java | 3 + .../repository/IPuntosInteresDao.java | 68 ------------------- .../AnhadirPuntoInteresPresenterTest.java | 10 +-- 7 files changed, 15 insertions(+), 83 deletions(-) delete mode 100644 AndroidProject/app/src/main/java/es/unican/gasolineras/repository/IPuntosInteresDao.java diff --git a/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/AnhadirPuntoInteresPresenter.java b/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/AnhadirPuntoInteresPresenter.java index 7220632..0c078ca 100644 --- a/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/AnhadirPuntoInteresPresenter.java +++ b/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/AnhadirPuntoInteresPresenter.java @@ -4,7 +4,8 @@ import android.database.sqlite.SQLiteException; import es.unican.gasolineras.model.PuntoInteres; -import es.unican.gasolineras.repository.IPuntosInteresDao; +import es.unican.gasolineras.repository.IPuntosInteresDAO; + /** * El presenter que controla la actividad añadir punto interés. @@ -12,7 +13,7 @@ public class AnhadirPuntoInteresPresenter implements IAnhadirPuntoInteresContract.Presenter { private IAnhadirPuntoInteresContract.View vista; - private IPuntosInteresDao puntosInteresDao; + private IPuntosInteresDAO puntosInteresDao; /** * Constructor. diff --git a/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/AnhadirPuntoInteresView.java b/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/AnhadirPuntoInteresView.java index 58b0caa..5f496b4 100644 --- a/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/AnhadirPuntoInteresView.java +++ b/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/AnhadirPuntoInteresView.java @@ -11,7 +11,8 @@ import es.unican.gasolineras.R; import es.unican.gasolineras.repository.AppDatabase; import es.unican.gasolineras.repository.DbFunctions; -import es.unican.gasolineras.repository.IPuntosInteresDao; +import es.unican.gasolineras.repository.IPuntosInteresDAO; + /** * Actividad que representa la vista para añadir un nuevo punto de interés. @@ -117,7 +118,7 @@ public void cerrarVista() { * @return El DAO de puntos de interés. */ @Override - public IPuntosInteresDao getPuntosInteresDAO() { + public IPuntosInteresDAO getPuntosInteresDAO() { AppDatabase db = DbFunctions.generaBaseDatosPuntosInteres(getApplicationContext()); return db.puntosInteresDao(); } diff --git a/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/IAnhadirPuntoInteresContract.java b/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/IAnhadirPuntoInteresContract.java index 034a59e..d29a826 100644 --- a/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/IAnhadirPuntoInteresContract.java +++ b/AndroidProject/app/src/main/java/es/unican/gasolineras/activities/puntoInteres/IAnhadirPuntoInteresContract.java @@ -1,6 +1,7 @@ package es.unican.gasolineras.activities.puntoInteres; -import es.unican.gasolineras.repository.IPuntosInteresDao; +import es.unican.gasolineras.repository.IPuntosInteresDAO; + /** * Interfaz que define la vista para la funcionalidad de añadir un punto de interés. @@ -55,7 +56,7 @@ public interface View { * * @return El DAO de puntos de interés. */ - public IPuntosInteresDao getPuntosInteresDAO(); + public IPuntosInteresDAO getPuntosInteresDAO(); } /** diff --git a/AndroidProject/app/src/main/java/es/unican/gasolineras/model/PuntoInteres.java b/AndroidProject/app/src/main/java/es/unican/gasolineras/model/PuntoInteres.java index 1e60fef..6e50d3f 100644 --- a/AndroidProject/app/src/main/java/es/unican/gasolineras/model/PuntoInteres.java +++ b/AndroidProject/app/src/main/java/es/unican/gasolineras/model/PuntoInteres.java @@ -22,7 +22,7 @@ @Setter @Entity(indices = {@Index(value = {"nombre"}, unique = true)}) public class PuntoInteres { - @PrimaryKey + @PrimaryKey(autoGenerate = true) public int idPuntoInteres; @ColumnInfo(name = "nombre") diff --git a/AndroidProject/app/src/main/java/es/unican/gasolineras/repository/IPuntosInteresDAO.java b/AndroidProject/app/src/main/java/es/unican/gasolineras/repository/IPuntosInteresDAO.java index d3ccb99..07283d8 100644 --- a/AndroidProject/app/src/main/java/es/unican/gasolineras/repository/IPuntosInteresDAO.java +++ b/AndroidProject/app/src/main/java/es/unican/gasolineras/repository/IPuntosInteresDAO.java @@ -31,4 +31,7 @@ public interface IPuntosInteresDAO { @Delete void delete(PuntoInteres puntoInteres); + + @Query("DELETE FROM PuntoInteres") + void deleteAll(); } \ No newline at end of file diff --git a/AndroidProject/app/src/main/java/es/unican/gasolineras/repository/IPuntosInteresDao.java b/AndroidProject/app/src/main/java/es/unican/gasolineras/repository/IPuntosInteresDao.java deleted file mode 100644 index db2a819..0000000 --- a/AndroidProject/app/src/main/java/es/unican/gasolineras/repository/IPuntosInteresDao.java +++ /dev/null @@ -1,68 +0,0 @@ -package es.unican.gasolineras.repository; - -import androidx.room.Dao; -import androidx.room.Delete; -import androidx.room.Insert; -import androidx.room.Query; -import androidx.room.Update; - -import java.util.List; - -import es.unican.gasolineras.model.PuntoInteres; - -/** - * La interfaz {@code IPuntosInteresDao} define las operaciones de acceso a datos (DAO) - * para la entidad {@link PuntoInteres}. Esta interfaz proporciona métodos para interactuar - * con la base de datos, como insertar, eliminar y consultar puntos de interés. - * Anotada con {@link Dao}, esta interfaz es utilizada por Room para generar automáticamente - * el código necesario para las operaciones de base de datos. - */ -@Dao -public interface IPuntosInteresDao { - @Query("SELECT * FROM PuntoInteres") - List getAll(); - - /** - * Busca un punto de interés por su ID. - * @param PuntoInteresId id del punto a buscar. - * @return el punto de interés con ese ID, o null si no se encuentra. - */ - @Query("SELECT * FROM PuntoInteres WHERE idPuntoInteres IN (:PuntoInteresId)") - PuntoInteres loadById(int PuntoInteresId); - - /** - * Busca un punto de interés por su nombre. - * @param NombrePuntoInteres nombre del punto a buscar. - * @return el punto de interés con ese nombre, o null si no se encuentra. - */ - @Query("SELECT * FROM PuntoInteres WHERE nombre IN (:NombrePuntoInteres)") - PuntoInteres loadByName(String NombrePuntoInteres); - - /** - * Busca un punto de interés por su latitud y longitud. - * @param lat la latitud del punto a buscar. - * @param lon la longitud del punto a buscar. - * @return el punto de interés con esa latitud y longitud, o null si no se encuentra. - */ - @Query("SELECT * FROM PuntoInteres WHERE latitud = :lat AND longitud = :lon") - PuntoInteres loadByLatLon(double lat, double lon); - - /** - * Inserta un nuevo punto de interés en la base de datos. - * - * @param puntoInteres El objeto PuntoInteres a insertar. - */ - @Insert - void insertAll(PuntoInteres... puntoInteres); - - @Query("DELETE FROM PuntoInteres") - void deleteAll(); - - /** - * Elimina un punto de interés de la base de datos. - * - * @param puntoInteres El objeto PuntoInteres a eliminar. - */ - @Delete - void delete(PuntoInteres puntoInteres); -} \ No newline at end of file diff --git a/AndroidProject/app/src/test/java/es/unican/gasolineras/puntoInteres/AnhadirPuntoInteresPresenterTest.java b/AndroidProject/app/src/test/java/es/unican/gasolineras/puntoInteres/AnhadirPuntoInteresPresenterTest.java index b4f4ee1..db745f2 100644 --- a/AndroidProject/app/src/test/java/es/unican/gasolineras/puntoInteres/AnhadirPuntoInteresPresenterTest.java +++ b/AndroidProject/app/src/test/java/es/unican/gasolineras/puntoInteres/AnhadirPuntoInteresPresenterTest.java @@ -10,26 +10,20 @@ import static org.mockito.Mockito.when; import android.content.Context; -import android.database.sqlite.SQLiteConstraintException; -import android.database.sqlite.SQLiteException; import androidx.test.core.app.ApplicationProvider; import org.junit.Before; import org.junit.Test; -import org.junit.function.ThrowingRunnable; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; import org.robolectric.RobolectricTestRunner; import es.unican.gasolineras.activities.puntoInteres.AnhadirPuntoInteresPresenter; import es.unican.gasolineras.activities.puntoInteres.IAnhadirPuntoInteresContract; -import es.unican.gasolineras.activities.puntoInteres.IAnhadirPuntoInteresContract.View; -import es.unican.gasolineras.model.GasolinerasResponse; import es.unican.gasolineras.model.PuntoInteres; import es.unican.gasolineras.repository.AppDatabase; import es.unican.gasolineras.repository.DbFunctions; -import es.unican.gasolineras.repository.IPuntosInteresDao; +import es.unican.gasolineras.repository.IPuntosInteresDAO; @RunWith(RobolectricTestRunner.class) public class AnhadirPuntoInteresPresenterTest { @@ -39,7 +33,7 @@ public class AnhadirPuntoInteresPresenterTest { Context context = ApplicationProvider.getApplicationContext(); private IAnhadirPuntoInteresContract.View vistaMock; - private IPuntosInteresDao puntosInteresDao; + private IPuntosInteresDAO puntosInteresDao; private AnhadirPuntoInteresPresenter presenter; String nombreStr = "casa";