diff --git a/spring-boot/src/main/java/org/baeldung/boot/components/FooComponent.java b/spring-boot/src/main/java/org/baeldung/boot/components/FooComponent.java index b327958c16..d666b11c8c 100644 --- a/spring-boot/src/main/java/org/baeldung/boot/components/FooComponent.java +++ b/spring-boot/src/main/java/org/baeldung/boot/components/FooComponent.java @@ -1,58 +1,21 @@ package org.baeldung.boot.components; -import org.baeldung.boot.exceptions.CommonException; -import org.baeldung.boot.exceptions.FooNotFoundException; import org.baeldung.boot.model.Foo; import org.baeldung.boot.repository.FooRepository; -import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import com.google.common.base.Preconditions; - @Component public class FooComponent { @Autowired private FooRepository fooRepository; - private final static Logger logger = org.slf4j.LoggerFactory.getLogger(FooComponent.class); - - public Foo getFooWithId(Integer id) { - - Foo foo = null; - - try { - foo = fooRepository.findOne(id); - Preconditions.checkNotNull(foo); - logger.info("Foo with Id {} found",id); - }catch(NullPointerException ex){ - logger.error("Foo with Id {} was not found",id); - throw new FooNotFoundException("The given foo Id was not found"); - } catch (Exception ex) { - logger.error("Error while retrieving Foo with Id {} found",id,ex); - throw new CommonException("Error while retrieving foo"); - } - - return foo; + public Foo getFooWithId(Integer id) throws Exception { + return fooRepository.findOne(id); } public Foo getFooWithName(String name) { - - Foo foo = null; - - try { - foo = fooRepository.findByName(name); - Preconditions.checkNotNull(foo); - logger.info("Foo with name {} found",name); - }catch(NullPointerException ex){ - logger.error("Foo with name {} was not found",name); - throw new FooNotFoundException("The given foo name was not found"); - } catch (Exception ex) { - logger.error("Error while retrieving Foo with name {} found",name,ex); - throw new CommonException("Error while retrieving foo"); - } - - return foo; + return fooRepository.findByName(name); } } \ No newline at end of file diff --git a/spring-boot/src/main/java/org/baeldung/boot/service/FooService.java b/spring-boot/src/main/java/org/baeldung/boot/service/FooService.java index 2cb64ea139..6f19a1974c 100644 --- a/spring-boot/src/main/java/org/baeldung/boot/service/FooService.java +++ b/spring-boot/src/main/java/org/baeldung/boot/service/FooService.java @@ -1,19 +1,13 @@ package org.baeldung.boot.service; import org.baeldung.boot.components.FooComponent; -import org.baeldung.boot.exceptions.CommonException; -import org.baeldung.boot.exceptions.FooNotFoundException; import org.baeldung.boot.model.Foo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; @RestController @@ -22,31 +16,19 @@ public class FooService { @Autowired private FooComponent fooComponent; - @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity getFooWithId(@PathVariable Integer id) { + @GetMapping("/{id}") + public ResponseEntity getFooWithId(@PathVariable Integer id) throws Exception { Foo foo = fooComponent.getFooWithId(id); - return new ResponseEntity(foo, HttpStatus.OK); + return new ResponseEntity<>(foo, HttpStatus.OK); } - @RequestMapping(value = "/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity getFooWithName(@RequestParam String name) { + @GetMapping("/") + public ResponseEntity getFooWithName(@RequestParam String name) throws Exception { Foo foo = fooComponent.getFooWithName(name); - return new ResponseEntity(foo, HttpStatus.OK); - } - - @ExceptionHandler(value = FooNotFoundException.class) - @ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "Foo not found") - public void handleFooNotFoundException() { - - } - - @ExceptionHandler(value = CommonException.class) - @ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR, reason = "Common exception") - public void handleCommonException() { - + return new ResponseEntity<>(foo, HttpStatus.OK); } } \ No newline at end of file diff --git a/spring-boot/src/test/java/org/baeldung/boot/FooComponentTests.java b/spring-boot/src/test/java/org/baeldung/boot/FooComponentTests.java index 775f7c1ef0..0a5de7dc7a 100644 --- a/spring-boot/src/test/java/org/baeldung/boot/FooComponentTests.java +++ b/spring-boot/src/test/java/org/baeldung/boot/FooComponentTests.java @@ -1,13 +1,5 @@ package org.baeldung.boot; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Mockito.doReturn; - -import java.util.HashMap; -import java.util.Map; - import org.baeldung.boot.components.FooComponent; import org.baeldung.boot.model.Foo; import org.junit.Before; @@ -22,8 +14,18 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringRunner; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.doReturn; + @RunWith(SpringRunner.class) -@SpringBootTest(classes = DemoApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT) +@SpringBootTest( + classes = DemoApplication.class, + webEnvironment = WebEnvironment.RANDOM_PORT) public class FooComponentTests { @Autowired @@ -33,7 +35,7 @@ public class FooComponentTests { private FooComponent fooComponent; @Before - public void init() { + public void init() throws Exception { Foo foo = new Foo(); foo.setId(5); foo.setName("MOCKED_FOO"); @@ -45,7 +47,7 @@ public class FooComponentTests { @Test public void givenInquiryingFooWithId_whenFooComponentIsMocked_thenAssertMockedResult() { - Map pathVariables = new HashMap(); + Map pathVariables = new HashMap<>(); pathVariables.put("id", "1"); ResponseEntity fooResponse = testRestTemplate.getForEntity("/{id}", Foo.class, pathVariables); @@ -57,7 +59,7 @@ public class FooComponentTests { @Test public void givenInquiryingFooWithName_whenFooComponentIsMocked_thenAssertMockedResult() { - Map pathVariables = new HashMap(); + Map pathVariables = new HashMap<>(); pathVariables.put("name", "Foo_Name"); ResponseEntity fooResponse = testRestTemplate.getForEntity("/?name={name}", Foo.class, pathVariables);