diff --git a/pom.xml b/pom.xml
index becd05b79..498b5fdc6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,17 +66,11 @@
-
-
- com.h2database
- h2
- runtime
-
-
- mysql
- mysql-connector-java
- runtime
-
+
+
+ org.postgresql
+ postgresql
+
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 4f2c86834..0d226cb5d 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,12 +1,21 @@
-# database init, supports mysql too
-database=h2
-spring.datasource.schema=classpath*:db/${database}/schema.sql
-spring.datasource.data=classpath*:db/${database}/data.sql
+# default connection pool
+spring.datasource.hikari.connectionTimeout=20000
+spring.datasource.hikari.maximumPoolSize=5
+# PostgreSQL connection and inizialization
+spring.datasource.url=jdbc:postgresql://localhost:5432/petclinic
+spring.datasource.username=postgres
+spring.datasource.password=pass
+spring.datasource.sql-script-encoding= UTF-8
+spring.datasource.schema=classpath*:db/postgres/schema.sql
+spring.datasource.data=classpath*:db/postgres/data.sql
+spring.datasource.initialization-mode=always
+
# Web
spring.thymeleaf.mode=HTML
# JPA
+spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.open-in-view=false
diff --git a/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java b/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java
index 8d754900d..ca1da8efb 100644
--- a/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java
+++ b/src/test/java/org/springframework/samples/petclinic/model/ValidatorTests.java
@@ -1,60 +1,91 @@
-/*
- * Copyright 2012-2019 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.samples.petclinic.model;
-
-import java.util.Locale;
-import java.util.Set;
-
-import javax.validation.ConstraintViolation;
-import javax.validation.Validator;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.context.i18n.LocaleContextHolder;
-import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-/**
- * @author Michael Isvy Simple test to make sure that Bean Validation is working (useful
- * when upgrading to a new version of Hibernate Validator/ Bean Validation)
- */
-class ValidatorTests {
-
- private Validator createValidator() {
- LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
- localValidatorFactoryBean.afterPropertiesSet();
- return localValidatorFactoryBean;
- }
-
- @Test
- void shouldNotValidateWhenFirstNameEmpty() {
-
- LocaleContextHolder.setLocale(Locale.ENGLISH);
- Person person = new Person();
- person.setFirstName("");
- person.setLastName("smith");
-
- Validator validator = createValidator();
- Set> constraintViolations = validator.validate(person);
-
- assertThat(constraintViolations).hasSize(1);
- ConstraintViolation violation = constraintViolations.iterator().next();
- assertThat(violation.getPropertyPath().toString()).isEqualTo("firstName");
- assertThat(violation.getMessage()).isEqualTo("must not be empty");
- }
-
-}
+/*
+ * Copyright 2012-2019 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.samples.petclinic.model;
+
+import java.util.Locale;
+import java.util.Set;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.Validator;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.context.i18n.LocaleContextHolder;
+import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * @author Michael Isvy Simple test to make sure that Bean Validation is working (useful
+ * when upgrading to a new version of Hibernate Validator/ Bean Validation)
+ */
+class ValidatorTests {
+
+ private Validator createValidator() {
+ LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
+ localValidatorFactoryBean.afterPropertiesSet();
+ return localValidatorFactoryBean;
+ }
+
+ @Test
+ void shouldNotValidateWhenFirstNameEmpty() {
+
+ LocaleContextHolder.setLocale(Locale.ENGLISH);
+ Person person = new Person();
+ person.setFirstName("");
+ person.setLastName("smith");
+
+ Validator validator = createValidator();
+ Set> constraintViolations = validator.validate(person);
+
+ assertThat(constraintViolations).hasSize(1);
+ ConstraintViolation violation = constraintViolations.iterator().next();
+ assertThat(violation.getPropertyPath().toString()).isEqualTo("firstName");
+ assertThat(violation.getMessage()).isEqualTo("must not be empty");
+ }
+ /*My test*/
+ @Test
+ void validateWhenFirstNameNotEmpty() {
+
+ LocaleContextHolder.setLocale(Locale.ENGLISH);
+ Person person = new Person();
+ person.setFirstName("john");
+ person.setLastName("smith");
+
+ Validator validator = createValidator();
+ Set> constraintViolations = validator.validate(person);
+
+ assertThat(constraintViolations).hasSize(0);
+ }
+ /*My test*/
+ @Test
+ void shouldNotValidateWhenLastNameEmpty() {
+
+ LocaleContextHolder.setLocale(Locale.ENGLISH);
+ Person person = new Person();
+ person.setFirstName("john");
+ person.setLastName("");
+
+ Validator validator = createValidator();
+ Set> constraintViolations = validator.validate(person);
+
+ assertThat(constraintViolations).hasSize(1);
+ ConstraintViolation violation = constraintViolations.iterator().next();
+ assertThat(violation.getPropertyPath().toString()).isEqualTo("lastName");
+ assertThat(violation.getMessage()).isEqualTo("must not be empty");
+ }
+
+}