diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/AllergyRepository.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/AllergyRepository.java index d87d694e946a9facee39f15887a386358ff6c062..e24f39c1de3b33721e76a04cc6a3e5e12dd2753a 100644 --- a/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/AllergyRepository.java +++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/repository/AllergyRepository.java @@ -10,17 +10,9 @@ import org.springframework.data.jpa.repository.JpaRepository; * Repository for allergies * * @author Stian Lyng - * @version 1.0 - * @since 04.04.2023 + * @version 1.2 + * @since 19.04.2023 */ public interface AllergyRepository extends JpaRepository<Allergy, String> { - /** - * Gets an allergy by name - * - * @param name the name of the allergy - * @return an optional containing the Allergy if it exists - */ - List<Allergy> findByName(String name); - } diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/AllergyRepositoryTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/AllergyRepositoryTest.java new file mode 100644 index 0000000000000000000000000000000000000000..6870826847c981e71d0ea71f5b6f6e06dac0c3ed --- /dev/null +++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/AllergyRepositoryTest.java @@ -0,0 +1,88 @@ +package ntnu.idatt2016.v233.SmartMat.repository; + +import ntnu.idatt2016.v233.SmartMat.entity.Allergy; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; + +import java.util.List; +import java.util.Optional; + +@DataJpaTest +@DisplayName("AllergyRepositoryTest") +class AllergyRepositoryTest { + + @Autowired + private AllergyRepository allergyRepository; + + @Test + @DisplayName("Test findByName") + void testFindByName() { + Allergy allergy = Allergy.builder() + .name("testName") + .description("testDescription") + .build(); + allergyRepository.save(allergy); + + Assertions.assertEquals(1, allergyRepository.findAll().size()); + Optional<Allergy> allergies = allergyRepository.findById("testName"); + Assertions.assertTrue(allergies.isPresent()); + Assertions.assertEquals("testName", allergies.get().getName()); + } + + @Test + @DisplayName("Test save") + void testSave() { + Allergy allergy = Allergy.builder() + .name("testName") + .description("testDescription") + .build(); + + Allergy savedAllergy = allergyRepository.save(allergy); + + Assertions.assertEquals(allergy, savedAllergy); + Assertions.assertEquals(1, allergyRepository.findAll().size()); + + } + + @Test + @DisplayName("Test delete") + void testDelete() { + Allergy allergy = Allergy.builder() + .name("testName") + .description("testDescription") + .build(); + allergyRepository.save(allergy); + + allergyRepository.deleteById("testName"); + Optional<Allergy> deletedAllergy = allergyRepository.findById("testName"); + + Assertions.assertTrue(deletedAllergy.isEmpty()); + } + + @Test + @DisplayName("Test findAll") + void testFindAll() { + // Arrange + Allergy allergy1 = Allergy.builder() + .name("testName") + .description("testDescription") + .build(); + Allergy allergy2 = Allergy.builder() + .name("testName2") + .description("testDescription2") + .build(); + allergyRepository.save(allergy1); + allergyRepository.save(allergy2); + + // Act + List<Allergy> allergies = allergyRepository.findAll(); + + // Assert + Assertions.assertEquals(2, allergies.size()); + Assertions.assertTrue(allergies.contains(allergy1)); + Assertions.assertTrue(allergies.contains(allergy2)); + } +}