Skip to content
Snippets Groups Projects

Testgeolocation

Merged Mads Lundegaard requested to merge testgeolocation into dev
All threads resolved!
 
package NTNU.IDATT1002.repository;
 
 
import static org.junit.jupiter.api.Assertions.*;
 
 
import NTNU.IDATT1002.models.GeoLocation;
 
import java.util.List;
 
import java.util.Optional;
 
import javax.persistence.EntityManager;
 
import javax.persistence.EntityManagerFactory;
 
import javax.persistence.Persistence;
 
import org.junit.jupiter.api.BeforeEach;
 
import org.junit.jupiter.api.Test;
 
 
/**
 
* Tests for {@link GeoLocatioRepository}
 
*
 
* @author madslun
 
* @version 1.0 07.04.20
 
*/
 
class GeoLocationRepositoryTest {
 
 
private static final Long GEOLOCATION_INITIAL_ID = 1L;
 
private GeoLocatioRepository geoLocatioRepository;
 
 
 
/**
 
* Sets up necessary test data for testing
 
*/
 
@BeforeEach
 
void setUp() {
 
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("ImageApplicationTest");
 
EntityManager entityManager = entityManagerFactory.createEntityManager();
 
geoLocatioRepository = new GeoLocatioRepository(entityManager);
 
}
 
 
/**
 
* Test that saves a geolocation then checks that it was saved
 
*/
 
@Test
 
void testSaveReturnsInstance() {
 
Optional<GeoLocation> savedGeolocation = geoLocatioRepository.save(new GeoLocation());
 
 
assertTrue(savedGeolocation.isPresent());
 
assertEquals(GEOLOCATION_INITIAL_ID, savedGeolocation.get().getGeoLocationId());
 
}
 
 
/**
 
* Test that tries to save a geolocation with invalid input
 
*/
 
@Test
 
void testSavedInvalidEntityReturnsEmptyOptional() {
 
Optional<GeoLocation> savedGeolocation = geoLocatioRepository.save(null);
 
assertTrue(savedGeolocation.isEmpty());
 
}
 
 
/**
 
* Test that saves two geolocations then checks that both are saved
 
*/
 
@Test
 
void testFindAllReturnsAllSavedEntities() {
 
geoLocatioRepository.save(new GeoLocation());
 
geoLocatioRepository.save(new GeoLocation());
 
 
List<GeoLocation> foundGeolocations = geoLocatioRepository.findAll();
 
assertEquals(2, foundGeolocations.size());
 
}
 
 
/**
 
* Test that saves a new geolocation then find the geolocation by id
 
* When geolocation is created it uses the first number as id, we therefore search for the geolocation with this number
 
* We then check that the geolocation we got is the correct one
 
*/
 
@Test
 
void testFindByIdReturnsOptionalWithCorrectId() {
 
geoLocatioRepository.save(new GeoLocation());
 
Optional<GeoLocation> foundGeolocation = geoLocatioRepository.findById(GEOLOCATION_INITIAL_ID);
 
 
assertTrue(foundGeolocation.isPresent());
 
assertEquals(GEOLOCATION_INITIAL_ID, foundGeolocation.get().getGeoLocationId());
 
}
 
 
/**
 
* Test that deletes geolocation by id then checks that the geolocation was deleted
 
*/
 
@Test
 
void testDeleteByIdRemovesEntity() {
 
geoLocatioRepository.save(new GeoLocation());
 
Optional<GeoLocation> foundGeolocation = geoLocatioRepository.findById(GEOLOCATION_INITIAL_ID);
 
 
foundGeolocation.ifPresent(geoLocation -> geoLocatioRepository.deleteById(GEOLOCATION_INITIAL_ID));
 
Optional<GeoLocation> deletedGeolocation = geoLocatioRepository.findById(GEOLOCATION_INITIAL_ID);
 
 
assertTrue(deletedGeolocation.isEmpty());
 
}
 
 
/**
 
* Test that deletes a geolocation then checks that the geolocation was deleted
 
* When geolocation is created it uses the first number as id, we therefor try to delete a geolocation with this number
 
* We afterwards try to list all the geolocations and checks that there is no one left
 
*/
 
@Test
 
void testDeleteEntityRemovesEntity() {
 
GeoLocation testGeolocation = new GeoLocation();
 
geoLocatioRepository.save(testGeolocation);
 
Optional<GeoLocation> foundGeolocation = geoLocatioRepository.findById(GEOLOCATION_INITIAL_ID);
 
 
foundGeolocation.ifPresent(geoLocation -> geoLocatioRepository.delete(testGeolocation));
 
List<GeoLocation> foudGeolocations = geoLocatioRepository.findAll();
 
assertEquals(0, foudGeolocations.size());
 
}
 
 
}
 
\ No newline at end of file
Loading