DATAJPA-863 - Polishing.

Moving from Hamcrest to AssertJ. Fixing JavaDoc. Removing superfluos explicite type arguments.

Original pull request: #232.
This commit is contained in:
Jens Schauder
2017-11-10 11:34:52 +01:00
committed by Oliver Gierke
parent 5f917a9452
commit 807118fbde
3 changed files with 35 additions and 41 deletions

View File

@@ -99,7 +99,7 @@ class ParameterMetadataProvider {
this.builder = builder;
this.parameters = parameters.getBindableParameters().iterator();
this.expressions = new ArrayList<ParameterMetadata<?>>();
this.expressions = new ArrayList<>();
this.bindableParameterValues = bindableParameterValues;
this.persistenceProvider = provider;
}
@@ -115,9 +115,6 @@ class ParameterMetadataProvider {
/**
* Builds a new {@link ParameterMetadata} for given {@link Part} and the next {@link Parameter}.
*
* @param <T>
* @return
*/
@SuppressWarnings("unchecked")
public <T> ParameterMetadata<T> next(Part part) {
@@ -131,9 +128,9 @@ class ParameterMetadataProvider {
* Builds a new {@link ParameterMetadata} of the given {@link Part} and type. Forwards the underlying
* {@link Parameters} as well.
*
* @param <T>
* @param <T> is the type parameter of the returend {@link ParameterMetadata}.
* @param type must not be {@literal null}.
* @return
* @return ParameterMetadata for the next parameter.
*/
@SuppressWarnings("unchecked")
public <T> ParameterMetadata<? extends T> next(Part part, Class<T> type) {
@@ -146,11 +143,11 @@ class ParameterMetadataProvider {
/**
* Builds a new {@link ParameterMetadata} for the given type and name.
*
* @param <T>
* @param <T> type parameter for the returned {@link ParameterMetadata}.
* @param part must not be {@literal null}.
* @param type must not be {@literal null}.
* @param parameter
* @return
* @param parameter providing the name for the returned {@link ParameterMetadata}.
* @return a new {@link ParameterMetadata} for the given type and name.
*/
private <T> ParameterMetadata<T> next(Part part, Class<T> type, Parameter parameter) {
@@ -164,9 +161,9 @@ class ParameterMetadataProvider {
ParameterExpression<T> expression = parameter.isExplicitlyNamed()
? builder.parameter(reifiedType, parameter.getName().orElseThrow(() -> new IllegalArgumentException("o_O Parameter needs to be named"))) : builder.parameter(reifiedType);
ParameterMetadata<T> value = new ParameterMetadata<T>(expression, part.getType(),
bindableParameterValues == null ? ParameterMetadata.PLACEHOLDER : bindableParameterValues.next(),
this.persistenceProvider);
ParameterMetadata<T> value = new ParameterMetadata<>(expression, part.getType(),
bindableParameterValues == null ? ParameterMetadata.PLACEHOLDER : bindableParameterValues.next(),
this.persistenceProvider);
expressions.add(value);
return value;
@@ -187,11 +184,6 @@ class ParameterMetadataProvider {
/**
* Creates a new {@link ParameterMetadata}.
*
* @param expression
* @param type
* @param value
* @param provider
*/
public ParameterMetadata(ParameterExpression<T> expression, Type type, @Nullable Object value,
PersistenceProvider provider) {
@@ -212,8 +204,6 @@ class ParameterMetadataProvider {
/**
* Returns whether the parameter shall be considered an {@literal IS NULL} parameter.
*
* @return
*/
public boolean isIsNullParameter() {
return Type.IS_NULL.equals(type);
@@ -223,7 +213,6 @@ class ParameterMetadataProvider {
* Prepares the object before it's actually bound to the {@link javax.persistence.Query;}.
*
* @param value must not be {@literal null}.
* @return
*/
@Nullable
public Object prepare(Object value) {
@@ -256,8 +245,8 @@ class ParameterMetadataProvider {
* {@link Collections}, turn an array into an {@link ArrayList} or simply wrap any other value into a single element
* {@link Collections}.
*
* @param value
* @return
* @param value the value to be converted to a {@link Collection}.
* @return the object itself as a {@link Collection} or a {@link Collection} constructed from the value.
*/
@Nullable
private static Collection<?> toCollection(@Nullable Object value) {

View File

@@ -15,8 +15,7 @@
*/
package org.springframework.data.jpa.repository.query;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.assertj.core.api.Assertions.assertThat;
import java.lang.reflect.Method;
import java.util.List;
@@ -40,6 +39,7 @@ import org.springframework.test.util.ReflectionTestUtils;
* Integration tests for {@link ParameterMetadataProvider}.
*
* @author Oliver Gierke
* @author Jens Schauder
* @soundtrack Elephants Crossing - We are (Irrelephant)
*/
@RunWith(SpringJUnit4ClassRunner.class)
@@ -54,7 +54,7 @@ public class ParameterMetadataProviderIntegrationTests {
ParameterMetadataProvider provider = createProvider(Sample.class.getMethod("findByFirstname", String.class));
ParameterMetadata<Object> metadata = provider.next(new Part("firstname", User.class));
assertThat(metadata.getExpression().getName(), is("name"));
assertThat(metadata.getExpression().getName()).isEqualTo("name");
}
@Test // DATAJPA-758
@@ -63,7 +63,7 @@ public class ParameterMetadataProviderIntegrationTests {
ParameterMetadataProvider provider = createProvider(Sample.class.getMethod("findByLastname", String.class));
ParameterMetadata<Object> metadata = provider.next(new Part("lastname", User.class));
assertThat(metadata.getExpression().getName(), is(nullValue()));
assertThat(metadata.getExpression().getName()).isNull();
}
@Test // DATAJPA-772
@@ -72,24 +72,24 @@ public class ParameterMetadataProviderIntegrationTests {
ParameterMetadataProvider provider = createProvider(Sample.class.getMethod("findByAgeContaining", Integer.class));
ParameterMetadata<Object> metadata = provider.next(new Part("ageContaining", User.class));
assertThat(metadata.prepare(1), is((Object) 1));
assertThat(metadata.prepare(1)).isEqualTo(1);
}
private ParameterMetadataProvider createProvider(Method method) {
JpaParameters parameters = new JpaParameters(method);
simulateDiscoveredParametername(parameters, 0, "name");
simulateDiscoveredParametername(parameters);
return new ParameterMetadataProvider(em.getCriteriaBuilder(), parameters,
PersistenceProvider.fromEntityManager(em));
}
@SuppressWarnings("unchecked")
private static void simulateDiscoveredParametername(Parameters<?, ?> parameters, int index, String name) {
@SuppressWarnings({ "unchecked", "ConstantConditions" })
private static void simulateDiscoveredParametername(Parameters<?, ?> parameters) {
List<Object> list = (List<Object>) ReflectionTestUtils.getField(parameters, "parameters");
Object parameter = ReflectionTestUtils.getField(list.get(0), "parameter");
ReflectionTestUtils.setField(parameter, "parameterName", name);
ReflectionTestUtils.setField(parameter, "parameterName", "name");
}
interface Sample {

View File

@@ -17,8 +17,7 @@ import org.springframework.aop.framework.Advised;
*/
package org.springframework.data.jpa.repository.query;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.assertThat;
import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.test.util.ReflectionTestUtils.getField;
import java.lang.reflect.Method;
@@ -52,6 +51,7 @@ import org.springframework.data.repository.core.support.DefaultRepositoryMetadat
import org.springframework.data.repository.query.Param;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.Assert;
/**
* Integration tests for {@link PartTreeJpaQuery}.
@@ -59,6 +59,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* @author Oliver Gierke
* @author Mark Paluch
* @author Michael Cramer
* @author Jens Schauder
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:infrastructure.xml")
@@ -109,11 +110,11 @@ public class PartTreeJpaQueryIntegrationTests {
Query query = jpaQuery.createQuery(new Object[] { "Matthews", PageRequest.of(0, 1) });
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY)), endsWith("firstname=:param0"));
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).endsWith("firstname=:param0");
query = jpaQuery.createQuery(new Object[] { null, PageRequest.of(0, 1) });
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY)), endsWith("firstname is null"));
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).endsWith("firstname is null");
}
@Test // DATAJPA-920
@@ -124,7 +125,7 @@ public class PartTreeJpaQueryIntegrationTests {
Query query = jpaQuery.createQuery(new Object[] { "Matthews" });
assertThat(query.getMaxResults(), is(1));
assertThat(query.getMaxResults()).isEqualTo(1);
}
@Test // DATAJPA-920
@@ -135,7 +136,7 @@ public class PartTreeJpaQueryIntegrationTests {
Query query = jpaQuery.createQuery(new Object[] { "Matthews" });
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY)), containsString(".id from User as"));
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).contains(".id from User as");
}
@Test // DATAJPA-1074
@@ -146,7 +147,7 @@ public class PartTreeJpaQueryIntegrationTests {
Query query = jpaQuery.createQuery(new Object[] {});
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY)), endsWith("roles is empty"));
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).endsWith("roles is empty");
}
@Test // DATAJPA-1074
@@ -157,7 +158,7 @@ public class PartTreeJpaQueryIntegrationTests {
Query query = jpaQuery.createQuery(new Object[] {});
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY)), endsWith("roles is not empty"));
assertThat(HibernateUtils.getHibernateQuery(getValue(query, PROPERTY))).endsWith("roles is not empty");
}
@Test(expected = IllegalStateException.class) // DATAJPA-1074
@@ -213,15 +214,18 @@ public class PartTreeJpaQueryIntegrationTests {
}
@SuppressWarnings("unchecked")
private static <T> T getValue(Object source, String path) {
private static <T> T getValue(Object source, String path) {
Iterator<String> split = Arrays.asList(path.split("\\.")).iterator();
Object result = source;
while (split.hasNext()) {
Assert.notNull(source, "result must not be null.");
result = getField(result, split.next());
}
Assert.notNull(result, "result must not be null.");
return (T) result;
}
@@ -237,7 +241,8 @@ public class PartTreeJpaQueryIntegrationTests {
return Version.getVersionString().startsWith("5.");
}
interface UserRepository extends Repository<User, Long> {
@SuppressWarnings("unused")
interface UserRepository extends Repository<User, Long> {
Page<User> findByFirstname(String firstname, Pageable pageable);