Add integration tests for the server components

This commit is contained in:
Dave Syer
2017-03-07 09:40:57 +00:00
parent ec4e962997
commit a055893243
9 changed files with 129 additions and 71 deletions

View File

@@ -16,26 +16,10 @@
package org.springframework.cloud.launcher.dataflow;
import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.batch.BatchDatabaseInitializer;
import org.springframework.boot.autoconfigure.batch.BatchProperties;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.dataflow.server.EnableDataFlowServer;
import org.springframework.cloud.dataflow.server.config.features.FeaturesProperties;
import org.springframework.cloud.dataflow.server.repository.RdbmsTaskDefinitionRepository;
import org.springframework.cloud.dataflow.server.repository.TaskDefinitionRepository;
import org.springframework.cloud.dataflow.server.repository.support.DataflowRdbmsInitializer;
import org.springframework.cloud.task.repository.support.TaskRepositoryInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ResourceLoader;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
/**
* @author Spencer Gibb
@@ -49,58 +33,4 @@ public class DataFlowApplication {
SpringApplication.run(DataFlowApplication.class, args);
}
/*
* Special case for local H2 with tcp, but not in memory. Create a load of beans that
* dataflow doesn't in this case, but probably should (see
* https://github.com/spring-cloud/spring-cloud-dataflow/issues/926).
*/
@Configuration
@ConditionalOnExpression("#{'${spring.datasource.url:}'.startsWith('jdbc:h2:tcp://localhost:') && !'${spring.datasource.url:}'.contains('/mem:')}")
public static class H2ServerConfiguration {
@Bean
public JobRepositoryFactoryBean jobRepositoryFactoryBean(DataSource dataSource,
DataSourceTransactionManager dataSourceTransactionManager) {
JobRepositoryFactoryBean repositoryFactoryBean = new JobRepositoryFactoryBean();
repositoryFactoryBean.setDataSource(dataSource);
repositoryFactoryBean.setTransactionManager(dataSourceTransactionManager);
return repositoryFactoryBean;
}
@Bean
public BatchDatabaseInitializer batchRepositoryInitializer(
DataSource dataSource, ResourceLoader resourceLoader, BatchProperties batchProperties) {
return new BatchDatabaseInitializer(dataSource, resourceLoader, batchProperties);
}
@Bean
public TaskRepositoryInitializer taskRepositoryInitializer(
DataSource dataSource) {
TaskRepositoryInitializer taskRepositoryInitializer = new TaskRepositoryInitializer();
taskRepositoryInitializer.setDataSource(dataSource);
return taskRepositoryInitializer;
}
@Bean
@ConditionalOnMissingBean
public TaskDefinitionRepository taskDefinitionRepository(DataSource dataSource)
throws Exception {
return new RdbmsTaskDefinitionRepository(dataSource);
}
@Bean
public DataSourceTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean
public DataflowRdbmsInitializer dataflowRdbmsInitializer(DataSource dataSource,
FeaturesProperties featuresProperties) {
DataflowRdbmsInitializer dataflowRdbmsInitializer = new DataflowRdbmsInitializer(
featuresProperties);
dataflowRdbmsInitializer.setDataSource(dataSource);
return dataflowRdbmsInitializer;
}
}
}

View File

@@ -0,0 +1,18 @@
package org.springframework.cloud.launcher.dataflow;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest({ "spring.datasource.url=jdbc:h2:tcp://localhost:9096/./target/test",
"spring.cloud.bus.enabled=false", "eureka.client.enabled=false" })
public class DeployerApplicationTests {
@Test
public void contextLoads() {
}
}