diff --git a/basics/src/main/java/org/springframework/hateoas/examples/DatabaseLoader.java b/basics/src/main/java/org/springframework/hateoas/examples/DatabaseLoader.java index ddeaa70..9583481 100644 --- a/basics/src/main/java/org/springframework/hateoas/examples/DatabaseLoader.java +++ b/basics/src/main/java/org/springframework/hateoas/examples/DatabaseLoader.java @@ -25,7 +25,7 @@ import org.springframework.stereotype.Component; * @author Greg Turnquist */ @Component -public class DatabaseLoader { +class DatabaseLoader { /** * Use Spring to inject a {@link EmployeeRepository} that can then load data. Since this will run diff --git a/basics/src/main/java/org/springframework/hateoas/examples/Employee.java b/basics/src/main/java/org/springframework/hateoas/examples/Employee.java index c10133e..20fbf4a 100644 --- a/basics/src/main/java/org/springframework/hateoas/examples/Employee.java +++ b/basics/src/main/java/org/springframework/hateoas/examples/Employee.java @@ -48,7 +48,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @NoArgsConstructor @AllArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) -public class Employee implements Identifiable { +class Employee implements Identifiable { @Id @GeneratedValue private Long id; diff --git a/basics/src/main/java/org/springframework/hateoas/examples/EmployeeController.java b/basics/src/main/java/org/springframework/hateoas/examples/EmployeeController.java index 8923a62..ba9abcb 100644 --- a/basics/src/main/java/org/springframework/hateoas/examples/EmployeeController.java +++ b/basics/src/main/java/org/springframework/hateoas/examples/EmployeeController.java @@ -32,13 +32,12 @@ import org.springframework.web.bind.annotation.RestController; * @author Greg Turnquist */ @RestController -public class EmployeeController { +class EmployeeController { private final EmployeeRepository repository; private final EmployeeResourceAssembler assembler; - public EmployeeController(EmployeeRepository repository, - EmployeeResourceAssembler assembler) { + EmployeeController(EmployeeRepository repository, EmployeeResourceAssembler assembler) { this.repository = repository; this.assembler = assembler; @@ -61,18 +60,18 @@ public class EmployeeController { } /** - * Look up a single {@link Employee} and transform into a REST resource using + * Look up a single {@link Employee} and transform it into a REST resource using * {@link EmployeeResourceAssembler#toResource(Object)}. Then return it through * Spring Web's {@link ResponseEntity} fluent API. * - * See {@link #findAll()} to explain "produces". + * See {@link #findAll()} to explain {@link GetMapping}'s "produces" argument. * * @param id */ @GetMapping(value = "/employees/{id}", produces = MediaTypes.HAL_JSON_VALUE) - public ResponseEntity> findOne(@PathVariable String id) { + public ResponseEntity> findOne(@PathVariable long id) { return ResponseEntity.ok( - assembler.toResource(repository.findOne(Long.valueOf(id)))); + assembler.toResource(repository.findOne(id))); } } diff --git a/basics/src/main/java/org/springframework/hateoas/examples/EmployeeRepository.java b/basics/src/main/java/org/springframework/hateoas/examples/EmployeeRepository.java index 787d9f0..61ec4c8 100644 --- a/basics/src/main/java/org/springframework/hateoas/examples/EmployeeRepository.java +++ b/basics/src/main/java/org/springframework/hateoas/examples/EmployeeRepository.java @@ -18,7 +18,9 @@ package org.springframework.hateoas.examples; import org.springframework.data.repository.CrudRepository; /** + * A simple Spring Data {@link CrudRepository} for storing {@link Employee}s. + * * @author Greg Turnquist */ -public interface EmployeeRepository extends CrudRepository { +interface EmployeeRepository extends CrudRepository { } diff --git a/basics/src/main/java/org/springframework/hateoas/examples/EmployeeResourceAssembler.java b/basics/src/main/java/org/springframework/hateoas/examples/EmployeeResourceAssembler.java index 673170b..f2a8444 100644 --- a/basics/src/main/java/org/springframework/hateoas/examples/EmployeeResourceAssembler.java +++ b/basics/src/main/java/org/springframework/hateoas/examples/EmployeeResourceAssembler.java @@ -22,14 +22,14 @@ import org.springframework.stereotype.Component; * @author Greg Turnquist */ @Component -public class EmployeeResourceAssembler extends SimpleIdentifiableResourceAssembler { +class EmployeeResourceAssembler extends SimpleIdentifiableResourceAssembler { /** * Link the {@link Employee} domain type to the {@link EmployeeController} using this * {@link SimpleIdentifiableResourceAssembler} in order to generate both {@link org.springframework.hateoas.Resource} * and {@link org.springframework.hateoas.Resources}. */ - public EmployeeResourceAssembler() { + EmployeeResourceAssembler() { super(EmployeeController.class); } } diff --git a/basics/src/test/java/org/springframework/hateoas/examples/EmployeeControllerTests.java b/basics/src/test/java/org/springframework/hateoas/examples/EmployeeControllerTests.java index 206eba0..393aabb 100644 --- a/basics/src/test/java/org/springframework/hateoas/examples/EmployeeControllerTests.java +++ b/basics/src/test/java/org/springframework/hateoas/examples/EmployeeControllerTests.java @@ -36,6 +36,8 @@ import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; /** + * How to test the hypermedia-based {@link EmployeeController} with everything else mocked out. + * * @author Greg Turnquist */ @RunWith(SpringRunner.class) @@ -50,7 +52,7 @@ public class EmployeeControllerTests { private EmployeeRepository repository; @Test - public void noop() throws Exception { + public void getShouldFetchAHalDocument() throws Exception { given(repository.findAll()).willReturn( Arrays.asList(