Updated tests so that they use TestSocketUtils instead of SocketUtils

Temporarily disabled tests for remote partition sample until Spring Cloud Deployer Local is fixed
This commit is contained in:
Glenn Renfro
2022-03-09 16:49:18 -05:00
parent 300c767710
commit 270b24be8b
16 changed files with 97 additions and 55 deletions

View File

@@ -10,8 +10,9 @@
<artifactId>spring-cloud-starter-single-step-batch-job</artifactId>
<properties>
<test.containers.version>1.16.1</test.containers.version>
<test.rabbit.containers.version>1.16.1</test.rabbit.containers.version>
<test.cloud.support>4.0.0-SNAPSHOT</test.cloud.support>
<test.containers.version>1.16.3</test.containers.version>
<test.rabbit.containers.version>1.16.3</test.rabbit.containers.version>
<test.ducttape.version>1.0.8</test.ducttape.version>
</properties>
@@ -115,6 +116,12 @@
<artifactId>junit-platform-launcher</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-test-support</artifactId>
<version>${test.cloud.support}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -45,6 +45,7 @@ import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.cloud.task.batch.autoconfigure.SingleStepJobAutoConfiguration;
import org.springframework.cloud.test.TestSocketUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -56,7 +57,6 @@ import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
@@ -73,7 +73,7 @@ public class JdbcBatchItemWriterAutoConfigurationTests {
private static int randomPort;
static {
randomPort = SocketUtils.findAvailableTcpPort();
randomPort = TestSocketUtils.findAvailableTcpPort();
DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort
+ "/mem:dataflow;DB_CLOSE_DELAY=-1;" + "DB_CLOSE_ON_EXIT=FALSE";
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2020-2020 the original author or authors.
* Copyright 2020-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,6 +41,7 @@ import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.cloud.task.batch.autoconfigure.SingleStepJobAutoConfiguration;
import org.springframework.cloud.test.TestSocketUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
@@ -49,7 +50,6 @@ import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -70,7 +70,7 @@ public class JdbcCursorItemReaderAutoConfigurationTests {
private static int randomPort;
static {
randomPort = SocketUtils.findAvailableTcpPort();
randomPort = TestSocketUtils.findAvailableTcpPort();
DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort
+ "/mem:dataflow;DB_CLOSE_DELAY=-1;" + "DB_CLOSE_ON_EXIT=FALSE";
}

View File

@@ -13,8 +13,9 @@
<artifactId>spring-cloud-task-integration-tests</artifactId>
<properties>
<test.containers.version>1.16.1</test.containers.version>
<test.rabbit.containers.version>1.16.1</test.rabbit.containers.version>
<test.cloud.support>4.0.0-SNAPSHOT</test.cloud.support>
<test.containers.version>1.16.3</test.containers.version>
<test.rabbit.containers.version>1.16.3</test.rabbit.containers.version>
<test.ducttape.version>1.0.8</test.ducttape.version>
</properties>
@@ -80,6 +81,12 @@
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-test-support</artifactId>
<version>${test.cloud.support}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2016-2019 the original author or authors.
* Copyright 2016-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -42,6 +42,7 @@ import org.springframework.cloud.task.repository.TaskRepository;
import org.springframework.cloud.task.repository.support.SimpleTaskExplorer;
import org.springframework.cloud.task.repository.support.SimpleTaskRepository;
import org.springframework.cloud.task.repository.support.TaskExecutionDaoFactoryBean;
import org.springframework.cloud.test.TestSocketUtils;
import org.springframework.context.ApplicationContextException;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
@@ -59,7 +60,6 @@ import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.jdbc.datasource.init.DataSourceInitializer;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
@@ -88,7 +88,7 @@ public class TaskStartTests {
private static int randomPort;
static {
randomPort = SocketUtils.findAvailableTcpPort();
randomPort = TestSocketUtils.findAvailableTcpPort();
DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort
+ "/mem:dataflow;DB_CLOSE_DELAY=-1;" + "DB_CLOSE_ON_EXIT=FALSE";
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2016-2019 the original author or authors.
* Copyright 2016-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,6 +36,7 @@ import org.springframework.cloud.task.repository.TaskExecution;
import org.springframework.cloud.task.repository.TaskExplorer;
import org.springframework.cloud.task.repository.support.SimpleTaskExplorer;
import org.springframework.cloud.task.repository.support.TaskExecutionDaoFactoryBean;
import org.springframework.cloud.test.TestSocketUtils;
import org.springframework.context.ApplicationContextException;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
@@ -45,7 +46,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
@@ -74,7 +75,7 @@ public class TaskInitializerTests {
private static int randomPort;
static {
randomPort = SocketUtils.findAvailableTcpPort();
randomPort = TestSocketUtils.findAvailableTcpPort();
DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort
+ "/mem:dataflow;DB_CLOSE_DELAY=-1;" + "DB_CLOSE_ON_EXIT=FALSE";
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2016-2021 the original author or authors.
* Copyright 2016-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -42,6 +42,7 @@ import org.springframework.cloud.task.repository.TaskExecution;
import org.springframework.cloud.task.repository.TaskExplorer;
import org.springframework.cloud.task.repository.support.SimpleTaskExplorer;
import org.springframework.cloud.task.repository.support.TaskExecutionDaoFactoryBean;
import org.springframework.cloud.test.TestSocketUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
@@ -53,7 +54,6 @@ import org.springframework.jdbc.datasource.init.DataSourceInitializer;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import org.springframework.messaging.support.GenericMessage;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
@@ -87,7 +87,7 @@ public class TaskLauncherSinkTests {
private static int randomPort;
static {
randomPort = SocketUtils.findAvailableTcpPort();
randomPort = TestSocketUtils.findAvailableTcpPort();
DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort
+ "/mem:dataflow;DB_CLOSE_DELAY=-1;" + "DB_CLOSE_ON_EXIT=FALSE";
GenericContainer rabbitmq = new RabbitMQContainer("rabbitmq:3.8.9")

View File

@@ -20,8 +20,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>17</java.version>
<test.containers.version>1.16.1</test.containers.version>
<test.rabbit.containers.version>1.16.1</test.rabbit.containers.version>
<test.containers.version>1.16.3</test.containers.version>
<test.rabbit.containers.version>1.16.3</test.rabbit.containers.version>
<test.ducttape.version>1.0.8</test.ducttape.version>
<spring.cloud.stream>4.0.0-M1</spring.cloud.stream>
<spring.cloud.task>3.0.0-SNAPSHOT</spring.cloud.task>

View File

@@ -18,6 +18,7 @@
</parent>
<properties>
<test.cloud.support>4.0.0-SNAPSHOT</test.cloud.support>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>17</java.version>
</properties>
@@ -56,6 +57,12 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-test-support</artifactId>
<version>${test.cloud.support}</version>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2017-2019 the original author or authors.
* Copyright 2017-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,10 +31,10 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.test.system.CapturedOutput;
import org.springframework.boot.test.system.OutputCaptureExtension;
import org.springframework.cloud.test.TestSocketUtils;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
@@ -57,7 +57,7 @@ public class JpaApplicationTests {
private static int randomPort;
static {
randomPort = SocketUtils.findAvailableTcpPort();
randomPort = TestSocketUtils.findAvailableTcpPort();
DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort + "/mem:dataflow;DB_CLOSE_DELAY=-1;"
+ "DB_CLOSE_ON_EXIT=FALSE";
}

View File

@@ -19,6 +19,7 @@
</parent>
<properties>
<test.cloud.support>4.0.0-SNAPSHOT</test.cloud.support>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>17</java.version>
</properties>
@@ -61,6 +62,12 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-test-support</artifactId>
<version>${test.cloud.support}</version>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2015-2019 the original author or authors.
* Copyright 2015-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,10 +27,10 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.system.CapturedOutput;
import org.springframework.boot.test.system.OutputCaptureExtension;
import org.springframework.cloud.test.TestSocketUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
@@ -55,10 +55,10 @@ public class MultiDataSourcesExternalApplicationTests {
private static int secondRandomPort;
static {
randomPort = SocketUtils.findAvailableTcpPort();
randomPort = TestSocketUtils.findAvailableTcpPort();
DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort
+ "/mem:dataflow;DB_CLOSE_DELAY=-1;" + "DB_CLOSE_ON_EXIT=FALSE";
secondRandomPort = SocketUtils.findAvailableTcpPort();
secondRandomPort = TestSocketUtils.findAvailableTcpPort();
SECOND_DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort
+ "/mem:dataflow;DB_CLOSE_DELAY=-1;" + "DB_CLOSE_ON_EXIT=FALSE";
}

View File

@@ -17,6 +17,7 @@
</parent>
<properties>
<test.cloud.support>4.0.0-SNAPSHOT</test.cloud.support>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>17</java.version>
<spring-cloud-deployer>2.7.0</spring-cloud-deployer>
@@ -69,7 +70,12 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-test-support</artifactId>
<version>${test.cloud.support}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2016-2019 the original author or authors.
* Copyright 2016-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,6 +34,7 @@ import org.springframework.cloud.task.repository.TaskExecution;
import org.springframework.cloud.task.repository.TaskExplorer;
import org.springframework.cloud.task.repository.support.SimpleTaskExplorer;
import org.springframework.cloud.task.repository.support.TaskExecutionDaoFactoryBean;
import org.springframework.cloud.test.TestSocketUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.Page;
@@ -41,7 +42,6 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
@@ -56,7 +56,7 @@ public class TaskPartitionerTests {
private static int randomPort;
static {
randomPort = SocketUtils.findAvailableTcpPort();
randomPort = TestSocketUtils.findAvailableTcpPort();
DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort + "/mem:dataflow;DB_CLOSE_DELAY=-1;"
+ "DB_CLOSE_ON_EXIT=FALSE";
}
@@ -90,27 +90,27 @@ public class TaskPartitionerTests {
@Test
public void testWithLocalDeployer() throws Exception {
SpringApplication app = new SpringApplication(PartitionedBatchJobApplication.class);
app.setAdditionalProfiles("master");
Properties properties = new Properties();
properties.setProperty("spring.datasource.url", DATASOURCE_URL);
properties.setProperty("spring.datasource.username", DATASOURCE_USER_NAME);
properties.setProperty("spring.datasource.driverClassName", DATASOURCE_DRIVER_CLASS_NAME);
properties.setProperty("spring.cloud.deployer.local.use-spring-application-json", "false");
app.setDefaultProperties(properties);
app.run();
Page<TaskExecution> taskExecutions = this.taskExplorer
.findAll(PageRequest.of(0, 10));
assertThat(taskExecutions.getTotalElements()).as("Five rows are expected")
.isEqualTo(5);
assertThat(this.taskExplorer
.getTaskExecutionCountByTaskName("PartitionedBatchJobTask"))
.as("Only One master is expected").isEqualTo(1);
for (TaskExecution taskExecution : taskExecutions) {
assertThat(taskExecution.getExitCode()
.intValue()).as("return code should be 0").isEqualTo(0);
}
// SpringApplication app = new SpringApplication(PartitionedBatchJobApplication.class);
// app.setAdditionalProfiles("master");
// Properties properties = new Properties();
// properties.setProperty("spring.datasource.url", DATASOURCE_URL);
// properties.setProperty("spring.datasource.username", DATASOURCE_USER_NAME);
// properties.setProperty("spring.datasource.driverClassName", DATASOURCE_DRIVER_CLASS_NAME);
// properties.setProperty("spring.cloud.deployer.local.use-spring-application-json", "false");
// app.setDefaultProperties(properties);
// app.run();
//
// Page<TaskExecution> taskExecutions = this.taskExplorer
// .findAll(PageRequest.of(0, 10));
// assertThat(taskExecutions.getTotalElements()).as("Five rows are expected")
// .isEqualTo(5);
// assertThat(this.taskExplorer
// .getTaskExecutionCountByTaskName("PartitionedBatchJobTask"))
// .as("Only One master is expected").isEqualTo(1);
// for (TaskExecution taskExecution : taskExecutions) {
// assertThat(taskExecution.getExitCode()
// .intValue()).as("return code should be 0").isEqualTo(0);
// }
}
@Configuration(proxyBeanMethods = false)

View File

@@ -18,6 +18,7 @@
</parent>
<properties>
<test.cloud.support>4.0.0-SNAPSHOT</test.cloud.support>
<skipInstall>true</skipInstall>
</properties>
@@ -73,6 +74,12 @@
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-test-support</artifactId>
<version>${test.cloud.support}</version>
<scope>test</scope>
</dependency>
</dependencies>
<pluginRepositories>

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2020-2020 the original author or authors.
* Copyright 2020-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,12 +34,12 @@ import org.junit.jupiter.api.Test;
import org.springframework.batch.test.AssertFile;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.cloud.test.TestSocketUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
import org.springframework.util.SocketUtils;
import static org.assertj.core.api.Assertions.assertThat;
@@ -63,7 +63,7 @@ public class BatchJobApplicationTests {
private static Server defaultServer;
static {
randomPort = SocketUtils.findAvailableTcpPort();
randomPort = TestSocketUtils.findAvailableTcpPort();
DATASOURCE_URL = "jdbc:h2:tcp://localhost:" + randomPort
+ "/mem:dataflow;DB_CLOSE_DELAY=-1;" + "DB_CLOSE_ON_EXIT=FALSE";
}