Browse Source

DATACMNS-993 - Polishing.

Ported SpringDataWebConfigurationIntegrationTests to AssertJ.

Original pull request: #202.
pull/18/merge
Oliver Gierke 9 years ago
parent
commit
bb43b96c4c
  1. 28
      src/test/java/org/springframework/data/web/config/SpringDataWebConfigurationIntegrationTests.java

28
src/test/java/org/springframework/data/web/config/SpringDataWebConfigurationIntegrationTests.java

@ -15,13 +15,12 @@ @@ -15,13 +15,12 @@
*/
package org.springframework.data.web.config;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.assertj.core.api.Assertions.*;
import java.util.ArrayList;
import java.util.List;
import org.hamcrest.Matcher;
import org.assertj.core.api.Condition;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.data.classloadersupport.HidingClassLoader;
@ -49,7 +48,7 @@ public class SpringDataWebConfigurationIntegrationTests { @@ -49,7 +48,7 @@ public class SpringDataWebConfigurationIntegrationTests {
createConfigWithClassLoader(HidingClassLoader.hide(ObjectMapper.class)).extendMessageConverters(converters);
assertThat(converters, not(hasItem(instanceWithClassName(ProjectingJackson2HttpMessageConverter.class))));
assertThat(converters).areNot(instanceWithClassName(ProjectingJackson2HttpMessageConverter.class));
}
@Test // DATACMNS-987
@ -59,7 +58,7 @@ public class SpringDataWebConfigurationIntegrationTests { @@ -59,7 +58,7 @@ public class SpringDataWebConfigurationIntegrationTests {
createConfigWithClassLoader(HidingClassLoader.hide(DocumentContext.class)).extendMessageConverters(converters);
assertThat(converters, not(hasItem(instanceWithClassName(ProjectingJackson2HttpMessageConverter.class))));
assertThat(converters).areNot(instanceWithClassName(ProjectingJackson2HttpMessageConverter.class));
}
@Test // DATACMNS-987
@ -70,7 +69,7 @@ public class SpringDataWebConfigurationIntegrationTests { @@ -70,7 +69,7 @@ public class SpringDataWebConfigurationIntegrationTests {
ClassLoader classLoader = HidingClassLoader.hide(ProjectionFactory.class);
createConfigWithClassLoader(classLoader).extendMessageConverters(converters);
assertThat(converters, not(hasItem(instanceWithClassName(XmlBeamHttpMessageConverter.class))));
assertThat(converters).areNot(instanceWithClassName(XmlBeamHttpMessageConverter.class));
}
@Test // DATACMNS-987
@ -80,8 +79,8 @@ public class SpringDataWebConfigurationIntegrationTests { @@ -80,8 +79,8 @@ public class SpringDataWebConfigurationIntegrationTests {
createConfigWithClassLoader(getClass().getClassLoader()).extendMessageConverters(converters);
assertThat(converters, hasItem(instanceWithClassName(XmlBeamHttpMessageConverter.class)));
assertThat(converters, hasItem(instanceWithClassName(ProjectingJackson2HttpMessageConverter.class)));
assertThat(converters).haveAtLeastOne(instanceWithClassName(XmlBeamHttpMessageConverter.class));
assertThat(converters).haveAtLeastOne(instanceWithClassName(ProjectingJackson2HttpMessageConverter.class));
}
private SpringDataWebConfiguration createConfigWithClassLoader(ClassLoader classLoader) {
@ -99,13 +98,16 @@ public class SpringDataWebConfigurationIntegrationTests { @@ -99,13 +98,16 @@ public class SpringDataWebConfigurationIntegrationTests {
}
/**
* creates a Matcher that check if an object is an instance of a class with the same name as the provided class. This
* is necessary since we are dealing with multiple classloaders which would make a simple instanceof fail all the time
* Creates a {@link Condition} that checks if an object is an instance of a class with the same name as the provided
* class. This is necessary since we are dealing with multiple classloaders which would make a simple instanceof fail
* all the time
*
* @param expectedClass the class that is expected (possibly loaded by a different classloader).
* @return a Matcher
* @return a {@link Condition}
*/
private static <T> Matcher<T> instanceWithClassName(Class<T> expectedClass) {
return hasProperty("class", hasProperty("name", equalTo(expectedClass.getName())));
private static Condition<Object> instanceWithClassName(Class<?> expectedClass) {
return new Condition<>(it -> it.getClass().getName().equals(expectedClass.getName()), //
"with class name %s!", expectedClass.getName());
}
}

Loading…
Cancel
Save