From c01c6010231759fc1aa0da058a0a25e0dcbd876b Mon Sep 17 00:00:00 2001
From: oldgit <jon.harvey.uk@gmail.com>
Date: Wed, 26 Feb 2020 15:50:19 +0000
Subject: [PATCH] Bump libs to latest versions, improve /owners POST,PUT, add
 tests

- Updated pom.xml dependent libs to latest versions
- Added minimum code coverage rules in pom.xml
- Added petclinic-ermodel.png and added ref in readme.md
- /owners POST: update to ensure no id is given in request body
- /owners PUT: update to ensure bodyId (if given) matches pathId
- Add bad request tests to /owners POST,PUT
- Improve test coverage
---
 petclinic-ermodel.png                         | Bin 0 -> 71318 bytes
 pom.xml                                       | 202 ++++++++++--------
 readme.md                                     |   4 +
 .../petclinic/rest/BindingErrorsResponse.java |  52 ++---
 .../rest/JacksonCustomOwnerDeserializer.java  |   8 +-
 .../rest/JacksonCustomOwnerSerializer.java    |   6 +-
 .../petclinic/rest/OwnerRestController.java   |  23 +-
 .../petclinic/rest/PetRestController.java     |  12 +-
 .../petclinic/rest/PetTypeRestController.java |  10 +-
 .../rest/SpecialtyRestController.java         |  10 +-
 .../petclinic/rest/UserRestController.java    |   2 +-
 .../petclinic/rest/VetRestController.java     |  10 +-
 .../petclinic/rest/VisitRestController.java   |  10 +-
 .../util/ApplicationSwaggerConfig.java        |   6 +-
 .../rest/OwnerRestControllerTests.java        | 142 +++++++++---
 .../rest/PetRestControllerTests.java          |  11 +-
 .../rest/PetTypeRestControllerTests.java      |  12 +-
 .../rest/SpecialtyRestControllerTests.java    |   8 +-
 .../rest/VetRestControllerTests.java          |   8 +-
 .../rest/VisitRestControllerTests.java        |   8 +-
 20 files changed, 339 insertions(+), 205 deletions(-)
 create mode 100644 petclinic-ermodel.png

diff --git a/petclinic-ermodel.png b/petclinic-ermodel.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c790fb7c45f61ea9526fcf4aae5a6a0a46ec4f1
GIT binary patch
literal 71318
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
D%!1)1

literal 0
HcmV?d00001

diff --git a/pom.xml b/pom.xml
index 41ee6a0f..ca330d71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,82 +1,82 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
 
-	<groupId>org.springframework.samples</groupId>
-	<artifactId>spring-petclinic-rest</artifactId>
-	<version>2.2.4</version>
+    <groupId>org.springframework.samples</groupId>
+    <artifactId>spring-petclinic-rest</artifactId>
+    <version>2.2.4</version>
 
-	<description>REST version of the Spring Petclinic sample application</description>
+    <description>REST version of the Spring Petclinic sample application</description>
     <url>https://spring-petclinic.github.io/</url>
 
-	<parent>
-		<groupId>org.springframework.boot</groupId>
-		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>2.2.4.RELEASE</version>
-		<relativePath/> <!-- lookup parent from Maven repository -->
-	</parent>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.2.4.RELEASE</version>
+        <relativePath/> <!-- lookup parent from Maven repository -->
+    </parent>
 
-	<properties>
+    <properties>
         <spring-data-jdbc.version>1.2.1.RELEASE</spring-data-jdbc.version>
-        <springfox-swagger.version>2.6.1</springfox-swagger.version>
-        <jacoco.version>0.8.2</jacoco.version>
+        <springfox-swagger.version>2.9.2</springfox-swagger.version>
+        <jacoco.version>0.8.5</jacoco.version>
 
         <docker.jib-maven-plugin.version>1.3.0</docker.jib-maven-plugin.version>
         <docker.image.prefix>springcommunity</docker.image.prefix>
-	</properties>
-
-	<!-- repository for springfox plugin -->
-	<repositories>
-	    <repository>
-	      <id>jcenter-snapshots</id>
-	      <name>jcenter</name>
-    	  <url>https://jcenter.bintray.com/</url>
-    	</repository>
-	</repositories>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-aop</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-cache</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-data-jpa</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-jdbc</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-web</artifactId>
-		</dependency>
+    </properties>
+
+    <!-- repository for springfox plugin -->
+    <repositories>
+        <repository>
+            <id>jcenter-snapshots</id>
+            <name>jcenter</name>
+            <url>https://jcenter.bintray.com/</url>
+        </repository>
+    </repositories>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-aop</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-cache</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jdbc</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-security</artifactId>
         </dependency>
-		<dependency>
-			<groupId>org.hsqldb</groupId>
-			<artifactId>hsqldb</artifactId>
-			<scope>runtime</scope>
-		</dependency>
-		<dependency>
-			<groupId>mysql</groupId>
-			<artifactId>mysql-connector-java</artifactId>
-			<scope>runtime</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.postgresql</groupId>
-			<artifactId>postgresql</artifactId>
-			<scope>runtime</scope>
-		</dependency>
-
-	    <dependency>
+        <dependency>
+            <groupId>org.hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
             <groupId>org.springframework.data</groupId>
             <artifactId>spring-data-jdbc-core</artifactId>
             <version>${spring-data-jdbc.version}</version>
@@ -88,11 +88,11 @@
             </exclusions>
         </dependency>
 
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-test</artifactId>
-			<scope>test</scope>
-		</dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-test</artifactId>
@@ -113,15 +113,15 @@
             <scope>test</scope>
         </dependency>
 
-		<dependency>
-			<groupId>io.springfox</groupId>
-			<artifactId>springfox-swagger2</artifactId>
-			<version>${springfox-swagger.version}</version>
-		</dependency>
-	    <dependency>
-        	<groupId>io.springfox</groupId>
-        	<artifactId>springfox-swagger-ui</artifactId>
-        	<version>${springfox-swagger.version}</version>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>${springfox-swagger.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>${springfox-swagger.version}</version>
         </dependency>
 
         <dependency>
@@ -135,13 +135,13 @@
             <artifactId>jaxb-api</artifactId>
             <version>2.3.0</version>
         </dependency>
-	</dependencies>
+    </dependencies>
 
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.springframework.boot</groupId>
-				<artifactId>spring-boot-maven-plugin</artifactId>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
                 <executions>
                     <execution>
                         <!-- Spring Boot Actuator displays build-related information
@@ -159,7 +159,7 @@
                         </configuration>
                     </execution>
                 </executions>
-			</plugin>
+            </plugin>
 
             <plugin>
                 <groupId>org.jacoco</groupId>
@@ -171,6 +171,34 @@
                             <goal>prepare-agent</goal>
                         </goals>
                     </execution>
+                    <execution>
+                        <id>check</id>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <rule>
+                                    <element>BUNDLE</element>
+                                    <limits>
+                                        <limit>
+                                            <counter>LINE</counter>
+                                            <value>COVEREDRATIO</value>
+                                            <minimum>0.87</minimum>
+                                        </limit>
+                                        <limit>
+                                            <counter>BRANCH</counter>
+                                            <value>COVEREDRATIO</value>
+                                            <minimum>0.74</minimum>
+                                        </limit>
+                                    </limits>
+                                    <excludes>
+                                        <!-- <exclude>com.xyz.ClassToExclude</exclude> -->
+                                    </excludes>
+                                </rule>
+                            </rules>
+                        </configuration>
+                    </execution>
                     <execution>
                         <id>report</id>
                         <phase>prepare-package</phase>
@@ -195,7 +223,7 @@
                     </to>
                 </configuration>
             </plugin>
-		</plugins>
-	</build>
+        </plugins>
+    </build>
 
 </project>
diff --git a/readme.md b/readme.md
index 3a9243fe..921034a6 100644
--- a/readme.md
+++ b/readme.md
@@ -7,6 +7,10 @@ The [spring-petclinic-angular project](https://github.com/spring-petclinic/sprin
 
 [See the presentation of the Spring Petclinic Framework version](http://fr.slideshare.net/AntoineRey/spring-framework-petclinic-sample-application)
 
+### Petclinic ER Model
+
+![alt petclinic-ermodel](petclinic-ermodel.png)
+
 ## Running petclinic locally
 
 ### With maven command line
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/BindingErrorsResponse.java b/src/main/java/org/springframework/samples/petclinic/rest/BindingErrorsResponse.java
index 73311e26..a52ef833 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/BindingErrorsResponse.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/BindingErrorsResponse.java
@@ -34,15 +34,35 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 
 public class BindingErrorsResponse {
 
-	private List<BindingError> bindingErrors = new ArrayList<BindingError>();
-
-	public List<BindingError> getBindingErrors() {
-		return bindingErrors;
-	}
+    public BindingErrorsResponse() {
+        this(null);
+    }
+
+    public BindingErrorsResponse(Integer id) {
+        this(null, id);
+    }
+
+    public BindingErrorsResponse(Integer pathId, Integer bodyId) {
+        boolean onlyBodyIdSpecified = pathId == null && bodyId != null;
+        if (onlyBodyIdSpecified) {
+            addBodyIdError(bodyId, "must not be specified");
+        }
+        boolean bothIdsSpecified = pathId != null && bodyId != null;
+        if (bothIdsSpecified && !pathId.equals(bodyId)) {
+            addBodyIdError(bodyId, String.format("does not match pathId: %d", pathId));
+        }
+    }
+
+    private void addBodyIdError(Integer bodyId, String message) {
+        BindingError error = new BindingError();
+        error.setObjectName("body");
+        error.setFieldName("id");
+        error.setFieldValue(bodyId.toString());
+        error.setErrorMessage(message);
+        addError(error);
+    }
 
-	public void setBindingErrors(List<BindingError> bindingErrors) {
-		this.bindingErrors = bindingErrors;
-	}
+	private List<BindingError> bindingErrors = new ArrayList<BindingError>();
 
 	public void addError(BindingError bindingError) {
 		this.bindingErrors.add(bindingError);
@@ -90,34 +110,18 @@ public class BindingErrorsResponse {
 			this.errorMessage = "";
 		}
 
-		protected String getObjectName() {
-			return objectName;
-		}
-
 		protected void setObjectName(String objectName) {
 			this.objectName = objectName;
 		}
 
-		protected String getFieldName() {
-			return fieldName;
-		}
-
 		protected void setFieldName(String fieldName) {
 			this.fieldName = fieldName;
 		}
 
-		protected String getFieldValue() {
-			return fieldValue;
-		}
-
 		protected void setFieldValue(String fieldValue) {
 			this.fieldValue = fieldValue;
 		}
 
-		protected String getErrorMessage() {
-			return errorMessage;
-		}
-
 		protected void setErrorMessage(String error_message) {
 			this.errorMessage = error_message;
 		}
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/JacksonCustomOwnerDeserializer.java b/src/main/java/org/springframework/samples/petclinic/rest/JacksonCustomOwnerDeserializer.java
index b63dd422..d629b8b5 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/JacksonCustomOwnerDeserializer.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/JacksonCustomOwnerDeserializer.java
@@ -32,7 +32,7 @@ import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
  */
 
 public class JacksonCustomOwnerDeserializer extends StdDeserializer<Owner> {
-	
+
 	public JacksonCustomOwnerDeserializer(){
 		this(null);
 	}
@@ -45,15 +45,13 @@ public class JacksonCustomOwnerDeserializer extends StdDeserializer<Owner> {
 	public Owner deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException {
 		JsonNode node = parser.getCodec().readTree(parser);
 		Owner owner = new Owner();
-		int id = node.get("id").asInt();
 		String firstName = node.get("firstName").asText(null);
 		String lastName = node.get("lastName").asText(null);
 		String address = node.get("address").asText(null);
 		String city = node.get("city").asText(null);
 		String telephone = node.get("telephone").asText(null);
-
-		if (!(id == 0)) {
-			owner.setId(id);
+		if (node.hasNonNull("id")) {
+			owner.setId(node.get("id").asInt());
 		}
         owner.setFirstName(firstName);
         owner.setLastName(lastName);
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/JacksonCustomOwnerSerializer.java b/src/main/java/org/springframework/samples/petclinic/rest/JacksonCustomOwnerSerializer.java
index b106063d..594d82a0 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/JacksonCustomOwnerSerializer.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/JacksonCustomOwnerSerializer.java
@@ -77,7 +77,11 @@ public class JacksonCustomOwnerSerializer extends StdSerializer<Owner> {
 			jgen.writeStringField("name", petType.getName());
 			jgen.writeEndObject(); // type
 
-			jgen.writeNumberField("owner", pet.getOwner().getId());
+            if (pet.getOwner().getId() == null) {
+                jgen.writeNullField("owner");
+            } else {
+                jgen.writeNumberField("owner", pet.getOwner().getId());
+            }
 			// write visits array
 			jgen.writeArrayFieldStart("visits");
 			for (Visit visit : pet.getVisits()) {
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/OwnerRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/OwnerRestController.java
index ff60a276..4d9cb878 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/OwnerRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/OwnerRestController.java
@@ -52,7 +52,7 @@ public class OwnerRestController {
 	private ClinicService clinicService;
 
 	@PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/*/lastname/{lastName}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/*/lastname/{lastName}", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Collection<Owner>> getOwnersList(@PathVariable("lastName") String ownerLastName) {
 		if (ownerLastName == null) {
 			ownerLastName = "";
@@ -65,7 +65,7 @@ public class OwnerRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Collection<Owner>> getOwners() {
 		Collection<Owner> owners = this.clinicService.findAllOwners();
 		if (owners.isEmpty()) {
@@ -75,7 +75,7 @@ public class OwnerRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/{ownerId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{ownerId}", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Owner> getOwner(@PathVariable("ownerId") int ownerId) {
 		Owner owner = null;
 		owner = this.clinicService.findOwnerById(ownerId);
@@ -86,12 +86,12 @@ public class OwnerRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json")
 	public ResponseEntity<Owner> addOwner(@RequestBody @Valid Owner owner, BindingResult bindingResult,
 			UriComponentsBuilder ucBuilder) {
-		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
-		if (bindingResult.hasErrors() || (owner == null)) {
+		if (bindingResult.hasErrors() || owner.getId() != null) {
+            BindingErrorsResponse errors = new BindingErrorsResponse(owner.getId());
 			errors.addAllErrors(bindingResult);
 			headers.add("errors", errors.toJSON());
 			return new ResponseEntity<Owner>(headers, HttpStatus.BAD_REQUEST);
@@ -102,13 +102,14 @@ public class OwnerRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/{ownerId}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{ownerId}", method = RequestMethod.PUT, produces = "application/json")
 	public ResponseEntity<Owner> updateOwner(@PathVariable("ownerId") int ownerId, @RequestBody @Valid Owner owner,
 			BindingResult bindingResult, UriComponentsBuilder ucBuilder) {
-		BindingErrorsResponse errors = new BindingErrorsResponse();
-		HttpHeaders headers = new HttpHeaders();
-		if (bindingResult.hasErrors() || (owner == null)) {
+	    boolean bodyIdMatchesPathId = owner.getId() == null || ownerId == owner.getId();
+		if (bindingResult.hasErrors() || !bodyIdMatchesPathId) {
+            BindingErrorsResponse errors = new BindingErrorsResponse(ownerId, owner.getId());
 			errors.addAllErrors(bindingResult);
+            HttpHeaders headers = new HttpHeaders();
 			headers.add("errors", errors.toJSON());
 			return new ResponseEntity<Owner>(headers, HttpStatus.BAD_REQUEST);
 		}
@@ -126,7 +127,7 @@ public class OwnerRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/{ownerId}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{ownerId}", method = RequestMethod.DELETE, produces = "application/json")
 	@Transactional
 	public ResponseEntity<Void> deleteOwner(@PathVariable("ownerId") int ownerId) {
 		Owner owner = this.clinicService.findOwnerById(ownerId);
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/PetRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/PetRestController.java
index 79d971d6..875956b0 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/PetRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/PetRestController.java
@@ -53,7 +53,7 @@ public class PetRestController {
 	private ClinicService clinicService;
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/{petId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{petId}", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Pet> getPet(@PathVariable("petId") int petId){
 		Pet pet = this.clinicService.findPetById(petId);
 		if(pet == null){
@@ -63,7 +63,7 @@ public class PetRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Collection<Pet>> getPets(){
 		Collection<Pet> pets = this.clinicService.findAllPets();
 		if(pets.isEmpty()){
@@ -73,13 +73,13 @@ public class PetRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/pettypes", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/pettypes", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Collection<PetType>> getPetTypes(){
 		return new ResponseEntity<Collection<PetType>>(this.clinicService.findPetTypes(), HttpStatus.OK);
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json")
 	public ResponseEntity<Pet> addPet(@RequestBody @Valid Pet pet, BindingResult bindingResult, UriComponentsBuilder ucBuilder){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -94,7 +94,7 @@ public class PetRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/{petId}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{petId}", method = RequestMethod.PUT, produces = "application/json")
 	public ResponseEntity<Pet> updatePet(@PathVariable("petId") int petId, @RequestBody @Valid Pet pet, BindingResult bindingResult){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -116,7 +116,7 @@ public class PetRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/{petId}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{petId}", method = RequestMethod.DELETE, produces = "application/json")
 	@Transactional
 	public ResponseEntity<Void> deletePet(@PathVariable("petId") int petId){
 		Pet pet = this.clinicService.findPetById(petId);
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/PetTypeRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/PetTypeRestController.java
index e16f51e8..ff672876 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/PetTypeRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/PetTypeRestController.java
@@ -48,7 +48,7 @@ public class PetTypeRestController {
 	private ClinicService clinicService;
 
     @PreAuthorize( "hasAnyRole(@roles.OWNER_ADMIN, @roles.VET_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Collection<PetType>> getAllPetTypes(){
 		Collection<PetType> petTypes = new ArrayList<PetType>();
 		petTypes.addAll(this.clinicService.findAllPetTypes());
@@ -59,7 +59,7 @@ public class PetTypeRestController {
 	}
 
     @PreAuthorize( "hasAnyRole(@roles.OWNER_ADMIN, @roles.VET_ADMIN)" )
-	@RequestMapping(value = "/{petTypeId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{petTypeId}", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<PetType> getPetType(@PathVariable("petTypeId") int petTypeId){
 		PetType petType = this.clinicService.findPetTypeById(petTypeId);
 		if(petType == null){
@@ -69,7 +69,7 @@ public class PetTypeRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json")
 	public ResponseEntity<PetType> addPetType(@RequestBody @Valid PetType petType, BindingResult bindingResult, UriComponentsBuilder ucBuilder){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -84,7 +84,7 @@ public class PetTypeRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "/{petTypeId}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{petTypeId}", method = RequestMethod.PUT, produces = "application/json")
 	public ResponseEntity<PetType> updatePetType(@PathVariable("petTypeId") int petTypeId, @RequestBody @Valid PetType petType, BindingResult bindingResult){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -103,7 +103,7 @@ public class PetTypeRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "/{petTypeId}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{petTypeId}", method = RequestMethod.DELETE, produces = "application/json")
 	@Transactional
 	public ResponseEntity<Void> deletePetType(@PathVariable("petTypeId") int petTypeId){
 		PetType petType = this.clinicService.findPetTypeById(petTypeId);
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/SpecialtyRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/SpecialtyRestController.java
index eb63b706..6680e729 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/SpecialtyRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/SpecialtyRestController.java
@@ -53,7 +53,7 @@ public class SpecialtyRestController {
 	private ClinicService clinicService;
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Collection<Specialty>> getAllSpecialtys(){
 		Collection<Specialty> specialties = new ArrayList<Specialty>();
 		specialties.addAll(this.clinicService.findAllSpecialties());
@@ -64,7 +64,7 @@ public class SpecialtyRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "/{specialtyId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{specialtyId}", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Specialty> getSpecialty(@PathVariable("specialtyId") int specialtyId){
 		Specialty specialty = this.clinicService.findSpecialtyById(specialtyId);
 		if(specialty == null){
@@ -74,7 +74,7 @@ public class SpecialtyRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json")
 	public ResponseEntity<Specialty> addSpecialty(@RequestBody @Valid Specialty specialty, BindingResult bindingResult, UriComponentsBuilder ucBuilder){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -89,7 +89,7 @@ public class SpecialtyRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "/{specialtyId}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{specialtyId}", method = RequestMethod.PUT, produces = "application/json")
 	public ResponseEntity<Specialty> updateSpecialty(@PathVariable("specialtyId") int specialtyId, @RequestBody @Valid Specialty specialty, BindingResult bindingResult){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -108,7 +108,7 @@ public class SpecialtyRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "/{specialtyId}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{specialtyId}", method = RequestMethod.DELETE, produces = "application/json")
 	@Transactional
 	public ResponseEntity<Void> deleteSpecialty(@PathVariable("specialtyId") int specialtyId){
 		Specialty specialty = this.clinicService.findSpecialtyById(specialtyId);
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/UserRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/UserRestController.java
index 7abb07cb..47ad14b7 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/UserRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/UserRestController.java
@@ -42,7 +42,7 @@ public class UserRestController {
     private UserService userService;
 
     @PreAuthorize( "hasRole(@roles.ADMIN)" )
-    @RequestMapping(value = "", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    @RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json")
     public ResponseEntity<User> addOwner(@RequestBody @Valid User user,  BindingResult bindingResult) throws Exception {
         BindingErrorsResponse errors = new BindingErrorsResponse();
         HttpHeaders headers = new HttpHeaders();
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/VetRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/VetRestController.java
index c666976e..7570173a 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/VetRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/VetRestController.java
@@ -53,7 +53,7 @@ public class VetRestController {
 	private ClinicService clinicService;
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Collection<Vet>> getAllVets(){
 		Collection<Vet> vets = new ArrayList<Vet>();
 		vets.addAll(this.clinicService.findAllVets());
@@ -64,7 +64,7 @@ public class VetRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "/{vetId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{vetId}", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Vet> getVet(@PathVariable("vetId") int vetId){
 		Vet vet = this.clinicService.findVetById(vetId);
 		if(vet == null){
@@ -74,7 +74,7 @@ public class VetRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json")
 	public ResponseEntity<Vet> addVet(@RequestBody @Valid Vet vet, BindingResult bindingResult, UriComponentsBuilder ucBuilder){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -89,7 +89,7 @@ public class VetRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "/{vetId}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{vetId}", method = RequestMethod.PUT, produces = "application/json")
 	public ResponseEntity<Vet> updateVet(@PathVariable("vetId") int vetId, @RequestBody @Valid Vet vet, BindingResult bindingResult){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -113,7 +113,7 @@ public class VetRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.VET_ADMIN)" )
-	@RequestMapping(value = "/{vetId}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{vetId}", method = RequestMethod.DELETE, produces = "application/json")
 	@Transactional
 	public ResponseEntity<Void> deleteVet(@PathVariable("vetId") int vetId){
 		Vet vet = this.clinicService.findVetById(vetId);
diff --git a/src/main/java/org/springframework/samples/petclinic/rest/VisitRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/VisitRestController.java
index ba1638e6..92fe1531 100644
--- a/src/main/java/org/springframework/samples/petclinic/rest/VisitRestController.java
+++ b/src/main/java/org/springframework/samples/petclinic/rest/VisitRestController.java
@@ -53,7 +53,7 @@ public class VisitRestController {
 	private ClinicService clinicService;
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Collection<Visit>> getAllVisits(){
 		Collection<Visit> visits = new ArrayList<Visit>();
 		visits.addAll(this.clinicService.findAllVisits());
@@ -64,7 +64,7 @@ public class VisitRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/{visitId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{visitId}", method = RequestMethod.GET, produces = "application/json")
 	public ResponseEntity<Visit> getVisit(@PathVariable("visitId") int visitId){
 		Visit visit = this.clinicService.findVisitById(visitId);
 		if(visit == null){
@@ -74,7 +74,7 @@ public class VisitRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json")
 	public ResponseEntity<Visit> addVisit(@RequestBody @Valid Visit visit, BindingResult bindingResult, UriComponentsBuilder ucBuilder){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -89,7 +89,7 @@ public class VisitRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/{visitId}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{visitId}", method = RequestMethod.PUT, produces = "application/json")
 	public ResponseEntity<Visit> updateVisit(@PathVariable("visitId") int visitId, @RequestBody @Valid Visit visit, BindingResult bindingResult){
 		BindingErrorsResponse errors = new BindingErrorsResponse();
 		HttpHeaders headers = new HttpHeaders();
@@ -110,7 +110,7 @@ public class VisitRestController {
 	}
 
     @PreAuthorize( "hasRole(@roles.OWNER_ADMIN)" )
-	@RequestMapping(value = "/{visitId}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@RequestMapping(value = "/{visitId}", method = RequestMethod.DELETE, produces = "application/json")
 	@Transactional
 	public ResponseEntity<Void> deleteVisit(@PathVariable("visitId") int visitId){
 		Visit visit = this.clinicService.findVisitById(visitId);
diff --git a/src/main/java/org/springframework/samples/petclinic/util/ApplicationSwaggerConfig.java b/src/main/java/org/springframework/samples/petclinic/util/ApplicationSwaggerConfig.java
index 0cc4ba68..18df3bd7 100644
--- a/src/main/java/org/springframework/samples/petclinic/util/ApplicationSwaggerConfig.java
+++ b/src/main/java/org/springframework/samples/petclinic/util/ApplicationSwaggerConfig.java
@@ -29,9 +29,11 @@ import springfox.documentation.spi.DocumentationType;
 import springfox.documentation.spring.web.plugins.Docket;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
+import java.util.Collections;
+
 /**
  * Java config for Springfox swagger documentation plugin
- * 
+ *
  * @author Vitaliy Fedoriv
  *
  */
@@ -62,7 +64,7 @@ public class ApplicationSwaggerConfig {
 				"https://github.com/spring-petclinic/spring-petclinic-rest",
 				"vitaliy.fedoriv@gmail.com"),
 		"Apache 2.0",
-		"http://www.apache.org/licenses/LICENSE-2.0");
+		"http://www.apache.org/licenses/LICENSE-2.0", Collections.emptyList());
    }
 
 
diff --git a/src/test/java/org/springframework/samples/petclinic/rest/OwnerRestControllerTests.java b/src/test/java/org/springframework/samples/petclinic/rest/OwnerRestControllerTests.java
index 75d8f5f8..57147a55 100644
--- a/src/test/java/org/springframework/samples/petclinic/rest/OwnerRestControllerTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/rest/OwnerRestControllerTests.java
@@ -21,11 +21,10 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import org.junit.Before;
@@ -36,6 +35,9 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.MediaType;
 import org.springframework.samples.petclinic.model.Owner;
+import org.springframework.samples.petclinic.model.Pet;
+import org.springframework.samples.petclinic.model.PetType;
+import org.springframework.samples.petclinic.model.Visit;
 import org.springframework.samples.petclinic.service.clinicService.ApplicationTestConfig;
 import org.springframework.samples.petclinic.service.ClinicService;
 import org.springframework.security.test.context.support.WithMockUser;
@@ -76,16 +78,17 @@ public class OwnerRestControllerTests {
     			.build();
     	owners = new ArrayList<Owner>();
 
-    	Owner owner = new Owner();
-    	owner.setId(1);
-    	owner.setFirstName("George");
-    	owner.setLastName("Franklin");
-    	owner.setAddress("110 W. Liberty St.");
-    	owner.setCity("Madison");
-    	owner.setTelephone("6085551023");
-    	owners.add(owner);
-
-    	owner = new Owner();
+    	Owner ownerWithPet = new Owner();
+    	ownerWithPet.setId(1);
+    	ownerWithPet.setFirstName("George");
+    	ownerWithPet.setLastName("Franklin");
+    	ownerWithPet.setAddress("110 W. Liberty St.");
+    	ownerWithPet.setCity("Madison");
+    	ownerWithPet.setTelephone("6085551023");
+    	ownerWithPet.addPet(getTestPetWithIdAndName(ownerWithPet, 1, "Rosy"));
+    	owners.add(ownerWithPet);
+
+        Owner owner = new Owner();
     	owner.setId(2);
     	owner.setFirstName("Betty");
     	owner.setLastName("Davis");
@@ -111,8 +114,29 @@ public class OwnerRestControllerTests {
     	owner.setCity("Windsor");
     	owner.setTelephone("6085553198");
     	owners.add(owner);
+    }
 
+    private Pet getTestPetWithIdAndName(final Owner owner, final int id, final String name) {
+        PetType petType = new PetType();
+        petType.setId(2);
+        petType.setName("dog");
+        Pet pet = new Pet();
+        pet.setId(id);
+        pet.setName(name);
+        pet.setBirthDate(new Date());
+        pet.setOwner(owner);
+        pet.setType(petType);
+        pet.addVisit(getTestVisitForPet(pet, 1));
+        return pet;
+    }
 
+    private Visit getTestVisitForPet(final Pet pet, final int id) {
+        Visit visit = new Visit();
+        visit.setId(id);
+        visit.setPet(pet);
+        visit.setDate(new Date());
+        visit.setDescription("test" + id);
+        return visit;
     }
 
     @Test
@@ -122,7 +146,7 @@ public class OwnerRestControllerTests {
         this.mockMvc.perform(get("/api/owners/1")
         	.accept(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(1))
             .andExpect(jsonPath("$.firstName").value("George"));
     }
@@ -145,7 +169,7 @@ public class OwnerRestControllerTests {
         this.mockMvc.perform(get("/api/owners/*/lastname/Davis")
         	.accept(MediaType.APPLICATION_JSON))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.[0].id").value(2))
             .andExpect(jsonPath("$.[0].firstName").value("Betty"))
             .andExpect(jsonPath("$.[1].id").value(4))
@@ -171,7 +195,7 @@ public class OwnerRestControllerTests {
         this.mockMvc.perform(get("/api/owners/")
         	.accept(MediaType.APPLICATION_JSON))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.[0].id").value(2))
             .andExpect(jsonPath("$.[0].firstName").value("Betty"))
             .andExpect(jsonPath("$.[1].id").value(4))
@@ -192,7 +216,7 @@ public class OwnerRestControllerTests {
     @WithMockUser(roles="OWNER_ADMIN")
     public void testCreateOwnerSuccess() throws Exception {
     	Owner newOwner = owners.get(0);
-    	newOwner.setId(999);
+    	newOwner.setId(null);
     	ObjectMapper mapper = new ObjectMapper();
     	String newOwnerAsJSON = mapper.writeValueAsString(newOwner);
     	this.mockMvc.perform(post("/api/owners/")
@@ -200,6 +224,20 @@ public class OwnerRestControllerTests {
     		.andExpect(status().isCreated());
     }
 
+    @Test
+    @WithMockUser(roles="OWNER_ADMIN")
+    public void testCreateOwnerErrorIdSpecified() throws Exception {
+        Owner newOwner = owners.get(0);
+        newOwner.setId(999);
+        ObjectMapper mapper = new ObjectMapper();
+        String newOwnerAsJSON = mapper.writeValueAsString(newOwner);
+        this.mockMvc.perform(post("/api/owners/")
+            .content(newOwnerAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
+            .andExpect(status().isBadRequest())
+            .andExpect(header().string("errors",
+                "[{\"objectName\":\"body\",\"fieldName\":\"id\",\"fieldValue\":\"999\",\"errorMessage\":\"must not be specified\"}]"));
+    }
+
     @Test
     @WithMockUser(roles="OWNER_ADMIN")
     public void testCreateOwnerError() throws Exception {
@@ -216,25 +254,79 @@ public class OwnerRestControllerTests {
     @Test
     @WithMockUser(roles="OWNER_ADMIN")
     public void testUpdateOwnerSuccess() throws Exception {
+        given(this.clinicService.findOwnerById(1)).willReturn(owners.get(0));
+        int ownerId = owners.get(0).getId();
+        Owner updatedOwner = new Owner();
+        // body.id = ownerId which is used in url path
+        updatedOwner.setId(ownerId);
+        updatedOwner.setFirstName("George I");
+        updatedOwner.setLastName("Franklin");
+        updatedOwner.setAddress("110 W. Liberty St.");
+        updatedOwner.setCity("Madison");
+        updatedOwner.setTelephone("6085551023");
+        ObjectMapper mapper = new ObjectMapper();
+        String newOwnerAsJSON = mapper.writeValueAsString(updatedOwner);
+        this.mockMvc.perform(put("/api/owners/" + ownerId)
+            .content(newOwnerAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
+            .andExpect(content().contentType("application/json"))
+            .andExpect(status().isNoContent());
+
+        this.mockMvc.perform(get("/api/owners/" + ownerId)
+            .accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON_VALUE))
+            .andExpect(status().isOk())
+            .andExpect(content().contentType("application/json"))
+            .andExpect(jsonPath("$.id").value(ownerId))
+            .andExpect(jsonPath("$.firstName").value("George I"));
+
+    }
+    @Test
+    @WithMockUser(roles="OWNER_ADMIN")
+    public void testUpdateOwnerSuccessNoBodyId() throws Exception {
     	given(this.clinicService.findOwnerById(1)).willReturn(owners.get(0));
-    	Owner newOwner = owners.get(0);
-    	newOwner.setFirstName("George I");
+        int ownerId = owners.get(0).getId();
+        Owner updatedOwner = new Owner();
+        updatedOwner.setFirstName("George I");
+        updatedOwner.setLastName("Franklin");
+        updatedOwner.setAddress("110 W. Liberty St.");
+        updatedOwner.setCity("Madison");
+        updatedOwner.setTelephone("6085551023");
     	ObjectMapper mapper = new ObjectMapper();
-    	String newOwnerAsJSON = mapper.writeValueAsString(newOwner);
-    	this.mockMvc.perform(put("/api/owners/1")
+    	String newOwnerAsJSON = mapper.writeValueAsString(updatedOwner);
+    	this.mockMvc.perform(put("/api/owners/" + ownerId)
     		.content(newOwnerAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
-        	.andExpect(content().contentType("application/json;charset=UTF-8"))
+        	.andExpect(content().contentType("application/json"))
         	.andExpect(status().isNoContent());
 
-    	this.mockMvc.perform(get("/api/owners/1")
+    	this.mockMvc.perform(get("/api/owners/" + ownerId)
            	.accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
-            .andExpect(jsonPath("$.id").value(1))
+            .andExpect(content().contentType("application/json"))
+            .andExpect(jsonPath("$.id").value(ownerId))
             .andExpect(jsonPath("$.firstName").value("George I"));
 
     }
 
+    @Test
+    @WithMockUser(roles="OWNER_ADMIN")
+    public void testUpdateOwnerErrorBodyIdMismatchWithPathId() throws Exception {
+        int ownerId = owners.get(0).getId();
+        Owner updatedOwner = new Owner();
+        // body.id != ownerId
+        updatedOwner.setId(-1);
+        updatedOwner.setFirstName("George I");
+        updatedOwner.setLastName("Franklin");
+        updatedOwner.setAddress("110 W. Liberty St.");
+        updatedOwner.setCity("Madison");
+        updatedOwner.setTelephone("6085551023");
+        ObjectMapper mapper = new ObjectMapper();
+        String newOwnerAsJSON = mapper.writeValueAsString(updatedOwner);
+        this.mockMvc.perform(put("/api/owners/" + ownerId)
+            .content(newOwnerAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
+            .andExpect(status().isBadRequest())
+            .andExpect(header().string("errors",
+                "[{\"objectName\":\"body\",\"fieldName\":\"id\",\"fieldValue\":\"-1\",\"errorMessage\":\"does not match pathId: 1\"}]"));
+    }
+
     @Test
     @WithMockUser(roles="OWNER_ADMIN")
     public void testUpdateOwnerError() throws Exception {
diff --git a/src/test/java/org/springframework/samples/petclinic/rest/PetRestControllerTests.java b/src/test/java/org/springframework/samples/petclinic/rest/PetRestControllerTests.java
index 1a421170..9513f34b 100644
--- a/src/test/java/org/springframework/samples/petclinic/rest/PetRestControllerTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/rest/PetRestControllerTests.java
@@ -46,6 +46,7 @@ import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.test.context.web.WebAppConfiguration;
 import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -116,7 +117,7 @@ public class PetRestControllerTests {
         this.mockMvc.perform(get("/api/pets/3")
         	.accept(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(3))
             .andExpect(jsonPath("$.name").value("Rosy"));
     }
@@ -137,7 +138,7 @@ public class PetRestControllerTests {
         this.mockMvc.perform(get("/api/pets/")
         	.accept(MediaType.APPLICATION_JSON))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.[0].id").value(3))
             .andExpect(jsonPath("$.[0].name").value("Rosy"))
             .andExpect(jsonPath("$.[1].id").value(4))
@@ -176,7 +177,7 @@ public class PetRestControllerTests {
     	String newPetAsJSON = mapper.writeValueAsString(newPet);
     	this.mockMvc.perform(post("/api/pets/")
         		.content(newPetAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
-        		.andExpect(status().isBadRequest());
+        		.andExpect(status().isBadRequest()).andDo(MockMvcResultHandlers.print());
      }
 
     @Test
@@ -189,13 +190,13 @@ public class PetRestControllerTests {
     	String newPetAsJSON = mapper.writeValueAsString(newPet);
     	this.mockMvc.perform(put("/api/pets/3")
     		.content(newPetAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
-        	.andExpect(content().contentType("application/json;charset=UTF-8"))
+        	.andExpect(content().contentType("application/json"))
         	.andExpect(status().isNoContent());
 
     	this.mockMvc.perform(get("/api/pets/3")
            	.accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(3))
             .andExpect(jsonPath("$.name").value("Rosy I"));
 
diff --git a/src/test/java/org/springframework/samples/petclinic/rest/PetTypeRestControllerTests.java b/src/test/java/org/springframework/samples/petclinic/rest/PetTypeRestControllerTests.java
index e0a3c7cb..089cebfb 100644
--- a/src/test/java/org/springframework/samples/petclinic/rest/PetTypeRestControllerTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/rest/PetTypeRestControllerTests.java
@@ -104,7 +104,7 @@ public class PetTypeRestControllerTests {
         this.mockMvc.perform(get("/api/pettypes/1")
         	.accept(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(1))
             .andExpect(jsonPath("$.name").value("cat"));
     }
@@ -116,7 +116,7 @@ public class PetTypeRestControllerTests {
         this.mockMvc.perform(get("/api/pettypes/1")
             .accept(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(1))
             .andExpect(jsonPath("$.name").value("cat"));
     }
@@ -139,7 +139,7 @@ public class PetTypeRestControllerTests {
         this.mockMvc.perform(get("/api/pettypes/")
         	.accept(MediaType.APPLICATION_JSON))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
         	.andExpect(jsonPath("$.[0].id").value(2))
         	.andExpect(jsonPath("$.[0].name").value("dog"))
         	.andExpect(jsonPath("$.[1].id").value(4))
@@ -155,7 +155,7 @@ public class PetTypeRestControllerTests {
         this.mockMvc.perform(get("/api/pettypes/")
             .accept(MediaType.APPLICATION_JSON))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.[0].id").value(2))
             .andExpect(jsonPath("$.[0].name").value("dog"))
             .andExpect(jsonPath("$.[1].id").value(4))
@@ -207,13 +207,13 @@ public class PetTypeRestControllerTests {
     	String newPetTypeAsJSON = mapper.writeValueAsString(newPetType);
     	this.mockMvc.perform(put("/api/pettypes/2")
     		.content(newPetTypeAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
-        	.andExpect(content().contentType("application/json;charset=UTF-8"))
+        	.andExpect(content().contentType("application/json"))
         	.andExpect(status().isNoContent());
 
     	this.mockMvc.perform(get("/api/pettypes/2")
            	.accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(2))
             .andExpect(jsonPath("$.name").value("dog I"));
     }
diff --git a/src/test/java/org/springframework/samples/petclinic/rest/SpecialtyRestControllerTests.java b/src/test/java/org/springframework/samples/petclinic/rest/SpecialtyRestControllerTests.java
index 1f99c1cc..c4592101 100644
--- a/src/test/java/org/springframework/samples/petclinic/rest/SpecialtyRestControllerTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/rest/SpecialtyRestControllerTests.java
@@ -99,7 +99,7 @@ public class SpecialtyRestControllerTests {
         this.mockMvc.perform(get("/api/specialties/1")
         	.accept(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(1))
             .andExpect(jsonPath("$.name").value("radiology"));
     }
@@ -121,7 +121,7 @@ public class SpecialtyRestControllerTests {
         this.mockMvc.perform(get("/api/specialties/")
         	.accept(MediaType.APPLICATION_JSON))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
         	.andExpect(jsonPath("$.[0].id").value(2))
         	.andExpect(jsonPath("$.[0].name").value("surgery"))
         	.andExpect(jsonPath("$.[1].id").value(3))
@@ -173,13 +173,13 @@ public class SpecialtyRestControllerTests {
     	String newSpecialtyAsJSON = mapper.writeValueAsString(newSpecialty);
     	this.mockMvc.perform(put("/api/specialties/2")
     		.content(newSpecialtyAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
-        	.andExpect(content().contentType("application/json;charset=UTF-8"))
+        	.andExpect(content().contentType("application/json"))
         	.andExpect(status().isNoContent());
 
     	this.mockMvc.perform(get("/api/specialties/2")
            	.accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(2))
             .andExpect(jsonPath("$.name").value("surgery I"));
     }
diff --git a/src/test/java/org/springframework/samples/petclinic/rest/VetRestControllerTests.java b/src/test/java/org/springframework/samples/petclinic/rest/VetRestControllerTests.java
index 9358b6da..a6ab35ce 100644
--- a/src/test/java/org/springframework/samples/petclinic/rest/VetRestControllerTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/rest/VetRestControllerTests.java
@@ -102,7 +102,7 @@ public class VetRestControllerTests {
         this.mockMvc.perform(get("/api/vets/1")
         	.accept(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(1))
             .andExpect(jsonPath("$.firstName").value("James"));
     }
@@ -123,7 +123,7 @@ public class VetRestControllerTests {
         this.mockMvc.perform(get("/api/vets/")
         	.accept(MediaType.APPLICATION_JSON))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.[0].id").value(1))
             .andExpect(jsonPath("$.[0].firstName").value("James"))
             .andExpect(jsonPath("$.[1].id").value(2))
@@ -175,13 +175,13 @@ public class VetRestControllerTests {
     	String newVetAsJSON = mapper.writeValueAsString(newVet);
     	this.mockMvc.perform(put("/api/vets/1")
     		.content(newVetAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
-        	.andExpect(content().contentType("application/json;charset=UTF-8"))
+        	.andExpect(content().contentType("application/json"))
         	.andExpect(status().isNoContent());
 
     	this.mockMvc.perform(get("/api/vets/1")
            	.accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(1))
             .andExpect(jsonPath("$.firstName").value("James"));
 
diff --git a/src/test/java/org/springframework/samples/petclinic/rest/VisitRestControllerTests.java b/src/test/java/org/springframework/samples/petclinic/rest/VisitRestControllerTests.java
index 1d0c1b2a..e318080e 100644
--- a/src/test/java/org/springframework/samples/petclinic/rest/VisitRestControllerTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/rest/VisitRestControllerTests.java
@@ -125,7 +125,7 @@ public class VisitRestControllerTests {
         this.mockMvc.perform(get("/api/visits/2")
         	.accept(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(2))
             .andExpect(jsonPath("$.description").value("rabies shot"));
     }
@@ -146,7 +146,7 @@ public class VisitRestControllerTests {
         this.mockMvc.perform(get("/api/visits/")
         	.accept(MediaType.APPLICATION_JSON))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
         	.andExpect(jsonPath("$.[0].id").value(2))
         	.andExpect(jsonPath("$.[0].description").value("rabies shot"))
         	.andExpect(jsonPath("$.[1].id").value(3))
@@ -199,13 +199,13 @@ public class VisitRestControllerTests {
     	String newVisitAsJSON = mapper.writeValueAsString(newVisit);
     	this.mockMvc.perform(put("/api/visits/2")
     		.content(newVisitAsJSON).accept(MediaType.APPLICATION_JSON_VALUE).contentType(MediaType.APPLICATION_JSON_VALUE))
-        	.andExpect(content().contentType("application/json;charset=UTF-8"))
+        	.andExpect(content().contentType("application/json"))
         	.andExpect(status().isNoContent());
 
     	this.mockMvc.perform(get("/api/visits/2")
            	.accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON_VALUE))
             .andExpect(status().isOk())
-            .andExpect(content().contentType("application/json;charset=UTF-8"))
+            .andExpect(content().contentType("application/json"))
             .andExpect(jsonPath("$.id").value(2))
             .andExpect(jsonPath("$.description").value("rabies shot test"));
     }
-- 
GitLab