mirror of
https://github.com/hapifhir/hapi-fhir.git
synced 2025-02-17 02:15:22 +00:00
Giant breakthrough in fixing sporadic test failures!
This commit is contained in:
parent
d710682fed
commit
d00c7dbea8
@ -149,6 +149,13 @@ public class ParameterUtil {
|
||||
return escape(theValue.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies {@link #escapeWithDefault(Object)} followed by {@link UrlUtil#escapeUrlParam(String)}
|
||||
*/
|
||||
public static String escapeAndUrlEncode(String theInput) {
|
||||
return UrlUtil.escapeUrlParam(escapeWithDefault(theInput));
|
||||
}
|
||||
|
||||
public static Integer findIdParameterIndex(Method theMethod, FhirContext theContext) {
|
||||
Integer index = findParamAnnotationIndex(theMethod, IdParam.class);
|
||||
if (index != null) {
|
||||
|
@ -1,16 +1,7 @@
|
||||
package ca.uhn.fhir.jpa.config;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Properties;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import ca.uhn.fhir.jpa.search.LuceneSearchMappingFactory;
|
||||
import net.ttddyy.dsproxy.listener.logging.SLF4JLogLevel;
|
||||
import ca.uhn.fhir.jpa.dao.DaoConfig;
|
||||
import ca.uhn.fhir.jpa.search.LuceneSearchMappingFactory;
|
||||
import ca.uhn.fhir.jpa.subscription.email.IEmailSender;
|
||||
import ca.uhn.fhir.jpa.subscription.email.JavaMailEmailSender;
|
||||
import ca.uhn.fhir.rest.server.interceptor.RequestValidatingInterceptor;
|
||||
@ -18,12 +9,19 @@ import ca.uhn.fhir.validation.ResultSeverityEnum;
|
||||
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder;
|
||||
import org.apache.commons.dbcp2.BasicDataSource;
|
||||
import org.hibernate.jpa.HibernatePersistenceProvider;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
|
||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.orm.jpa.JpaTransactionManager;
|
||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
||||
import org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
@ -180,4 +178,37 @@ public class TestDstu3Config extends BaseJavaConfigDstu3 {
|
||||
return retVal;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public UnregisterScheduledProcessor unregisterScheduledProcessor(Environment theEnv) {
|
||||
return new UnregisterScheduledProcessor(theEnv);
|
||||
}
|
||||
|
||||
/**
|
||||
* This lets the "@Value" fields reference properties from the properties file
|
||||
*/
|
||||
@Bean
|
||||
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
|
||||
return new PropertySourcesPlaceholderConfigurer();
|
||||
}
|
||||
|
||||
|
||||
public class UnregisterScheduledProcessor implements BeanFactoryPostProcessor {
|
||||
|
||||
private final Environment myEnvironment;
|
||||
|
||||
public UnregisterScheduledProcessor(Environment theEnv) {
|
||||
myEnvironment = theEnv;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postProcessBeanFactory(final ConfigurableListableBeanFactory beanFactory) throws BeansException {
|
||||
String schedulingDisabled = myEnvironment.getProperty("scheduling_disabled");
|
||||
if (schedulingDisabled.equals("true")) {
|
||||
for (String beanName : beanFactory.getBeanNamesForType(ScheduledAnnotationBeanPostProcessor.class)) {
|
||||
((DefaultListableBeanFactory) beanFactory).removeBeanDefinition(beanName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -48,10 +48,8 @@ import ca.uhn.fhir.rest.server.method.MethodUtil;
|
||||
import ca.uhn.fhir.util.TestUtil;
|
||||
import ca.uhn.fhir.util.UrlUtil;
|
||||
|
||||
//@formatter:off
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes= {TestDstu3Config.class})
|
||||
//@formatter:on
|
||||
public abstract class BaseJpaDstu3Test extends BaseJpaTest {
|
||||
|
||||
private static JpaValidationSupportChainDstu3 ourJpaValidationSupportChainDstu3;
|
||||
|
@ -45,6 +45,7 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
||||
|
||||
|
||||
public abstract class BaseResourceProviderDstu3Test extends BaseJpaDstu3Test {
|
||||
|
||||
protected static JpaValidationSupportChainDstu3 myValidationSupport;
|
||||
|
@ -28,6 +28,7 @@ import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@ -40,6 +41,9 @@ import static org.junit.Assert.*;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
@TestPropertySource(properties = {
|
||||
"scheduling_disabled=true"
|
||||
})
|
||||
public class ResourceProviderInterceptorDstu3Test extends BaseResourceProviderDstu3Test {
|
||||
|
||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ResourceProviderInterceptorDstu3Test.class);
|
||||
|
@ -10,6 +10,11 @@ import ca.uhn.fhir.rest.param.ParameterUtil;
|
||||
|
||||
public class ParameterUtilTest {
|
||||
|
||||
@Test
|
||||
public void testEscapeAndUrlEncode() {
|
||||
assertEquals("123%5C%24123", ParameterUtil.escapeAndUrlEncode("123$123"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertIdToType() {
|
||||
IdDt id = new IdDt("Patient/123");
|
||||
|
Loading…
x
Reference in New Issue
Block a user