mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-22 07:15:49 +00:00
Cambiato il db (da h2 in memory a PostgreSQL locale)
Aggiunti due nuovi casi di test in ValidatorTest
This commit is contained in:
parent
56f09331aa
commit
381ffe33bf
3 changed files with 109 additions and 75 deletions
16
pom.xml
16
pom.xml
|
@ -66,17 +66,11 @@
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Databases - Uses H2 by default -->
|
<!-- Databases - postgresql implementation -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.h2database</groupId>
|
<groupId>org.postgresql</groupId>
|
||||||
<artifactId>h2</artifactId>
|
<artifactId>postgresql</artifactId>
|
||||||
<scope>runtime</scope>
|
</dependency>
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>mysql</groupId>
|
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
|
||||||
<scope>runtime</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- caching -->
|
<!-- caching -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -1,12 +1,21 @@
|
||||||
# database init, supports mysql too
|
# default connection pool
|
||||||
database=h2
|
spring.datasource.hikari.connectionTimeout=20000
|
||||||
spring.datasource.schema=classpath*:db/${database}/schema.sql
|
spring.datasource.hikari.maximumPoolSize=5
|
||||||
spring.datasource.data=classpath*:db/${database}/data.sql
|
# 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
|
# Web
|
||||||
spring.thymeleaf.mode=HTML
|
spring.thymeleaf.mode=HTML
|
||||||
|
|
||||||
# JPA
|
# JPA
|
||||||
|
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
|
||||||
spring.jpa.hibernate.ddl-auto=none
|
spring.jpa.hibernate.ddl-auto=none
|
||||||
spring.jpa.open-in-view=false
|
spring.jpa.open-in-view=false
|
||||||
|
|
||||||
|
|
|
@ -1,60 +1,91 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2019 the original author or authors.
|
* Copyright 2012-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.springframework.samples.petclinic.model;
|
package org.springframework.samples.petclinic.model;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.validation.ConstraintViolation;
|
import javax.validation.ConstraintViolation;
|
||||||
import javax.validation.Validator;
|
import javax.validation.Validator;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.context.i18n.LocaleContextHolder;
|
import org.springframework.context.i18n.LocaleContextHolder;
|
||||||
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
|
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Michael Isvy Simple test to make sure that Bean Validation is working (useful
|
* @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)
|
* when upgrading to a new version of Hibernate Validator/ Bean Validation)
|
||||||
*/
|
*/
|
||||||
class ValidatorTests {
|
class ValidatorTests {
|
||||||
|
|
||||||
private Validator createValidator() {
|
private Validator createValidator() {
|
||||||
LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
|
LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
|
||||||
localValidatorFactoryBean.afterPropertiesSet();
|
localValidatorFactoryBean.afterPropertiesSet();
|
||||||
return localValidatorFactoryBean;
|
return localValidatorFactoryBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void shouldNotValidateWhenFirstNameEmpty() {
|
void shouldNotValidateWhenFirstNameEmpty() {
|
||||||
|
|
||||||
LocaleContextHolder.setLocale(Locale.ENGLISH);
|
LocaleContextHolder.setLocale(Locale.ENGLISH);
|
||||||
Person person = new Person();
|
Person person = new Person();
|
||||||
person.setFirstName("");
|
person.setFirstName("");
|
||||||
person.setLastName("smith");
|
person.setLastName("smith");
|
||||||
|
|
||||||
Validator validator = createValidator();
|
Validator validator = createValidator();
|
||||||
Set<ConstraintViolation<Person>> constraintViolations = validator.validate(person);
|
Set<ConstraintViolation<Person>> constraintViolations = validator.validate(person);
|
||||||
|
|
||||||
assertThat(constraintViolations).hasSize(1);
|
assertThat(constraintViolations).hasSize(1);
|
||||||
ConstraintViolation<Person> violation = constraintViolations.iterator().next();
|
ConstraintViolation<Person> violation = constraintViolations.iterator().next();
|
||||||
assertThat(violation.getPropertyPath().toString()).isEqualTo("firstName");
|
assertThat(violation.getPropertyPath().toString()).isEqualTo("firstName");
|
||||||
assertThat(violation.getMessage()).isEqualTo("must not be empty");
|
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<ConstraintViolation<Person>> 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<ConstraintViolation<Person>> constraintViolations = validator.validate(person);
|
||||||
|
|
||||||
|
assertThat(constraintViolations).hasSize(1);
|
||||||
|
ConstraintViolation<Person> violation = constraintViolations.iterator().next();
|
||||||
|
assertThat(violation.getPropertyPath().toString()).isEqualTo("lastName");
|
||||||
|
assertThat(violation.getMessage()).isEqualTo("must not be empty");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue