diff --git a/src/main/java/guru/springframework/bootstrap/Bootstrap.java b/src/main/java/guru/springframework/bootstrap/Bootstrap.java index 3c63e7d..62b79f2 100644 --- a/src/main/java/guru/springframework/bootstrap/Bootstrap.java +++ b/src/main/java/guru/springframework/bootstrap/Bootstrap.java @@ -44,9 +44,7 @@ private void loadCategories() { new Category("Nuts") ); - for(Category category : categories) { - categoryRepository.save(category); - } + categories.forEach(categoryRepository::save); System.out.println("Loaded Category Count: " + categoryRepository.count()); } @@ -60,9 +58,7 @@ private void loadCustomers() { new Customer("Mickey", "Mouse") ); - for(Customer customer : customers) { - customerRepository.save(customer); - } + customers.forEach(customerRepository::save); System.out.println("Loaded Customer Count: " + customerRepository.count()); } diff --git a/src/main/java/guru/springframework/repositories/CategoryRepository.java b/src/main/java/guru/springframework/repositories/CategoryRepository.java index d5cd02f..47378f5 100644 --- a/src/main/java/guru/springframework/repositories/CategoryRepository.java +++ b/src/main/java/guru/springframework/repositories/CategoryRepository.java @@ -3,7 +3,9 @@ import guru.springframework.domain.Category; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.Optional; + public interface CategoryRepository extends JpaRepository { - Category findByName(String name); + Optional findByName(String name); } diff --git a/src/main/java/guru/springframework/services/CategoryServiceImpl.java b/src/main/java/guru/springframework/services/CategoryServiceImpl.java index 4d529f7..a177878 100644 --- a/src/main/java/guru/springframework/services/CategoryServiceImpl.java +++ b/src/main/java/guru/springframework/services/CategoryServiceImpl.java @@ -2,6 +2,7 @@ import guru.springframework.api.v1.mappers.CategoryMapper; import guru.springframework.api.v1.model.CategoryDto; +import guru.springframework.exceptions.ResourceNotFoundException; import guru.springframework.repositories.CategoryRepository; import org.springframework.stereotype.Service; @@ -31,6 +32,9 @@ public List getAllCategories() { @Override public CategoryDto getCategoryByName(String name) { - return categoryMapper.toDto(categoryRepository.findByName(name)); + return categoryRepository + .findByName(name) + .map(categoryMapper::toDto) + .orElseThrow(ResourceNotFoundException::new); } } diff --git a/src/test/java/guru/springframework/services/CategoryServiceImplTest.java b/src/test/java/guru/springframework/services/CategoryServiceImplTest.java index 1cff0dc..0b3dfa1 100644 --- a/src/test/java/guru/springframework/services/CategoryServiceImplTest.java +++ b/src/test/java/guru/springframework/services/CategoryServiceImplTest.java @@ -11,6 +11,7 @@ import java.util.Arrays; import java.util.List; +import java.util.Optional; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.anyString; @@ -54,7 +55,7 @@ public void getCategoryByName() throws Exception { //given Category category = new Category(ID, NAME); - when(categoryRepository.findByName(anyString())).thenReturn(category); + when(categoryRepository.findByName(anyString())).thenReturn(Optional.of(category)); //when CategoryDto categoryDTO = categoryService.getCategoryByName(NAME);