Skip to content

Commit 7ced330

Browse files
authored
Migrate azure-spring-data-cosmos tests from JUnit 4 to JUnit 5 (#47346)
- Removed JUnit 4 and junit-vintage-engine dependencies from pom.xml - Updated imports from org.junit to org.junit.jupiter.api - Replaced @Before/@after with @BeforeEach/@AfterEach - Replaced @BeforeClass/@afterclass with @BeforeAll/@afterall - Replaced @RunWith with @ExtendWith for Mockito and Spring - Replaced Assert with Assertions - Removed TestRule interface from AbstractIntegrationTestCollectionManager - Fixed static imports for AssertJ and JUnit Jupiter - Migrate @test(expected=...) to assertThrows
1 parent fe24c10 commit 7ced330

File tree

92 files changed

+1169
-1229
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+1169
-1229
lines changed

eng/versioning/external_dependencies.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,6 @@ springboot3_io.projectreactor:reactor-test;3.7.9
325325
springboot3_jakarta.servlet:jakarta.servlet-api;6.0.0
326326
springboot3_jakarta.validation:jakarta.validation-api;3.0.2
327327
springboot3_javax.annotation:javax.annotation-api;1.3.2
328-
springboot3_junit:junit;4.13.2
329328
springboot3_net.bytebuddy:byte-buddy-agent;1.17.7
330329
springboot3_net.bytebuddy:byte-buddy;1.17.7
331330
springboot3_org.apache.commons:commons-lang3;3.17.0
@@ -341,7 +340,6 @@ springboot3_org.assertj:assertj-core;3.27.4
341340
springboot3_org.hibernate.validator:hibernate-validator;8.0.3.Final
342341
springboot3_org.javatuples:javatuples;1.2
343342
springboot3_org.junit.jupiter:junit-jupiter;5.12.2
344-
springboot3_org.junit.vintage:junit-vintage-engine;5.12.2
345343
springboot3_org.messaginghub:pooled-jms;3.1.7
346344
springboot3_org.mockito:mockito-core;5.17.0
347345
springboot3_org.postgresql:postgresql;42.7.7

sdk/spring/azure-spring-data-cosmos/pom.xml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,6 @@
154154
<version>1.17.7</version> <!-- {x-version-update;springboot3_net.bytebuddy:byte-buddy-agent;external_dependency} -->
155155
<scope>test</scope>
156156
</dependency>
157-
<dependency>
158-
<groupId>junit</groupId>
159-
<artifactId>junit</artifactId>
160-
<version>4.13.2</version> <!-- {x-version-update;springboot3_junit:junit;external_dependency} -->
161-
<scope>test</scope>
162-
</dependency>
163157
<dependency>
164158
<groupId>org.springframework.boot</groupId>
165159
<artifactId>spring-boot-starter-test</artifactId>
@@ -202,18 +196,6 @@
202196
<artifactId>slf4j-api</artifactId>
203197
<version>2.0.17</version> <!-- {x-version-update;springboot3_org.slf4j:slf4j-api;external_dependency} -->
204198
</dependency>
205-
<dependency>
206-
<groupId>org.junit.vintage</groupId>
207-
<artifactId>junit-vintage-engine</artifactId>
208-
<version>5.12.2</version> <!-- {x-version-update;springboot3_org.junit.vintage:junit-vintage-engine;external_dependency} -->
209-
<scope>test</scope>
210-
<exclusions>
211-
<exclusion>
212-
<groupId>org.hamcrest</groupId>
213-
<artifactId>hamcrest-core</artifactId>
214-
</exclusion>
215-
</exclusions>
216-
</dependency>
217199
</dependencies>
218200

219201
<build>

sdk/spring/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/AbstractIntegrationTestCollectionManager.java

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
import com.azure.spring.data.cosmos.core.CosmosTemplate;
77
import com.azure.spring.data.cosmos.core.ReactiveCosmosTemplate;
88
import com.azure.spring.data.cosmos.repository.support.CosmosEntityInformation;
9-
import org.junit.rules.TestRule;
10-
import org.junit.runner.Description;
11-
import org.junit.runners.model.Statement;
129
import org.slf4j.Logger;
1310
import org.slf4j.LoggerFactory;
1411

@@ -19,7 +16,7 @@
1916
import java.util.concurrent.ConcurrentMap;
2017

2118
@SuppressWarnings({"rawtypes", "unchecked"})
22-
public abstract class AbstractIntegrationTestCollectionManager<T> implements TestRule {
19+
public abstract class AbstractIntegrationTestCollectionManager<T> {
2320

2421
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractIntegrationTestCollectionManager.class);
2522
private static final Duration LEASE_DURATION = Duration.ofSeconds(5 * 60);
@@ -115,19 +112,6 @@ private void releaseLocks() {
115112
}
116113
}
117114

118-
@Override
119-
public Statement apply(Statement base, Description description) {
120-
return new Statement() {
121-
public void evaluate() throws Throwable {
122-
try {
123-
base.evaluate();
124-
} finally {
125-
releaseLocks();
126-
}
127-
}
128-
};
129-
}
130-
131115
private static class ContainerRefs {
132116

133117
CosmosEntityInformation cosmosEntityInformation;

sdk/spring/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/ContainerLockIT.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@
66
import com.azure.spring.data.cosmos.domain.Address;
77
import com.azure.spring.data.cosmos.repository.TestRepositoryConfig;
88
import com.azure.spring.data.cosmos.repository.support.CosmosEntityInformation;
9-
import org.junit.After;
10-
import org.junit.Assert;
11-
import org.junit.Before;
12-
import org.junit.Test;
13-
import org.junit.runner.RunWith;
9+
import org.junit.jupiter.api.AfterEach;
10+
import org.junit.jupiter.api.Assertions;
11+
import org.junit.jupiter.api.BeforeEach;
12+
import org.junit.jupiter.api.Test;
13+
import org.junit.jupiter.api.extension.ExtendWith;
14+
import org.springframework.test.context.junit.jupiter.SpringExtension;
1415
import org.springframework.beans.factory.annotation.Autowired;
1516
import org.springframework.test.context.ContextConfiguration;
16-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
1717

1818
import java.time.Duration;
1919
import java.time.OffsetDateTime;
2020

21-
import static org.junit.Assert.assertTrue;
21+
import static org.junit.jupiter.api.Assertions.assertTrue;
2222

23-
@RunWith(SpringJUnit4ClassRunner.class)
23+
@ExtendWith(SpringExtension.class)
2424
@ContextConfiguration(classes = TestRepositoryConfig.class)
2525
@SuppressWarnings({"rawtypes", "unchecked"})
2626
public class ContainerLockIT {
@@ -36,7 +36,7 @@ public class ContainerLockIT {
3636
private ContainerLock lock;
3737
private ContainerLock otherLock;
3838

39-
@Before
39+
@BeforeEach
4040
public void setup() {
4141
staticTemplate = template;
4242
CosmosEntityInformation entityInfo = new CosmosEntityInformation(Address.class);
@@ -46,7 +46,7 @@ public void setup() {
4646
otherLock = new ContainerLock(reactiveTemplate, entityInfo.getContainerName(), SHORT_LEASE_DURATION);
4747
}
4848

49-
@After
49+
@AfterEach
5050
public void cleanup() {
5151
releaseLockIgnoreException(lock);
5252
releaseLockIgnoreException(otherLock);
@@ -81,7 +81,7 @@ public void acquireShouldThrowExceptionIfWaitForIsLessThanLeaseDuration() {
8181

8282
try {
8383
otherLock.acquire(SHORT_LEASE_DURATION.minusSeconds(1));
84-
Assert.fail();
84+
Assertions.fail();
8585
} catch (ContainerLock.LockAcquisitionFailedException ex) {
8686
}
8787
}

sdk/spring/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/CosmosFactoryTestIT.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
import com.azure.cosmos.CosmosAsyncClient;
66
import com.azure.cosmos.CosmosClientBuilder;
77
import com.azure.spring.data.cosmos.repository.TestRepositoryConfig;
8-
import org.junit.Test;
9-
import org.junit.runner.RunWith;
8+
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.extension.ExtendWith;
10+
import org.springframework.test.context.junit.jupiter.SpringExtension;
1011
import org.springframework.beans.factory.annotation.Value;
1112
import org.springframework.test.context.ContextConfiguration;
12-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
1313

1414
import java.lang.reflect.Field;
1515

1616
import static org.assertj.core.api.Assertions.assertThat;
1717

18-
@RunWith(SpringJUnit4ClassRunner.class)
18+
@ExtendWith(SpringExtension.class)
1919
@ContextConfiguration(classes = TestRepositoryConfig.class)
2020
public class CosmosFactoryTestIT {
2121

sdk/spring/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/common/ExpressionResolverUnitTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
// Licensed under the MIT License.
33
package com.azure.spring.data.cosmos.common;
44

5-
import org.junit.Test;
5+
import org.junit.jupiter.api.Test;
66
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
77
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
88
import org.springframework.context.annotation.Bean;
99
import org.springframework.context.annotation.Configuration;
1010
import org.springframework.context.annotation.PropertySource;
1111

12-
import static org.junit.Assert.assertEquals;
13-
import static org.junit.Assert.assertNotNull;
12+
import static org.junit.jupiter.api.Assertions.assertEquals;
13+
import static org.junit.jupiter.api.Assertions.assertNotNull;
1414

1515
public class ExpressionResolverUnitTest {
1616
private static final String LITERAL_EXPRESSION = "literal expression";

sdk/spring/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/common/MemoizerUnitTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
// Licensed under the MIT License.
33
package com.azure.spring.data.cosmos.common;
44

5-
import org.junit.Before;
6-
import org.junit.Test;
5+
import org.junit.jupiter.api.BeforeEach;
6+
import org.junit.jupiter.api.Test;
77

88
import java.util.HashMap;
99
import java.util.Map;
1010
import java.util.concurrent.atomic.AtomicInteger;
1111
import java.util.function.Function;
1212
import java.util.stream.IntStream;
1313

14-
import static org.junit.Assert.assertEquals;
14+
import static org.junit.jupiter.api.Assertions.assertEquals;
1515

1616
public class MemoizerUnitTest {
1717

@@ -20,7 +20,7 @@ public class MemoizerUnitTest {
2020
private static final Function<String, Integer> MEMOIZED_FUNCTION =
2121
Memoizer.memoize(MemoizerUnitTest::incrCount);
2222

23-
@Before
23+
@BeforeEach
2424
public void setUp() {
2525
COUNT_MAP.put(KEY, new AtomicInteger(0));
2626
}

sdk/spring/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/common/PageTestUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import org.springframework.data.domain.Pageable;
1212

1313
import static org.assertj.core.api.Assertions.assertThat;
14-
import static org.junit.Assert.assertTrue;
14+
import static org.junit.jupiter.api.Assertions.assertTrue;
1515

1616
public class PageTestUtils {
1717

sdk/spring/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/common/PropertyLoaderUnitTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22
// Licensed under the MIT License.
33
package com.azure.spring.data.cosmos.common;
44

5-
import org.junit.Assert;
6-
import org.junit.Test;
5+
import org.junit.jupiter.api.Assertions;
6+
import org.junit.jupiter.api.Test;
77

88
public class PropertyLoaderUnitTest {
99

1010
@Test
1111
public void testGetProjectVersion() {
1212
final String version = PropertyLoader.getProjectVersion();
1313

14-
Assert.assertNotNull(version);
15-
Assert.assertNotEquals(version, "");
16-
Assert.assertNotEquals(version, "@project.version@");
14+
Assertions.assertNotNull(version);
15+
Assertions.assertNotEquals(version, "");
16+
Assertions.assertNotEquals(version, "@project.version@");
1717
}
1818
}

sdk/spring/azure-spring-data-cosmos/src/test/java/com/azure/spring/data/cosmos/config/AbstractCosmosConfigurationIT.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,7 @@
1111
import com.azure.spring.data.cosmos.common.ExpressionResolver;
1212
import com.azure.spring.data.cosmos.common.TestConstants;
1313
import com.fasterxml.jackson.databind.ObjectMapper;
14-
import org.assertj.core.api.Assertions;
15-
import org.junit.Rule;
16-
import org.junit.Test;
17-
import org.junit.rules.ExpectedException;
14+
import org.junit.jupiter.api.Test;
1815
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
1916
import org.springframework.beans.factory.annotation.Value;
2017
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@@ -26,13 +23,13 @@
2623

2724
import java.lang.reflect.Field;
2825

29-
import static org.junit.Assert.assertNotNull;
26+
import static org.junit.jupiter.api.Assertions.assertNotNull;
27+
import static org.assertj.core.api.Assertions.assertThat;
28+
import static org.junit.jupiter.api.Assertions.assertThrows;
3029

3130
public class AbstractCosmosConfigurationIT {
3231

33-
@SuppressWarnings("deprecation")
34-
@Rule
35-
public ExpectedException exception = ExpectedException.none();
32+
3633

3734
@Test
3835
public void containsExpressionResolver() {
@@ -47,24 +44,26 @@ public void containsCosmosFactory() {
4744
final AbstractApplicationContext context = new AnnotationConfigApplicationContext(
4845
TestCosmosConfiguration.class);
4946

50-
Assertions.assertThat(context.getBean(CosmosFactory.class)).isNotNull();
47+
assertThat(context.getBean(CosmosFactory.class)).isNotNull();
5148
}
5249

53-
@Test(expected = NoSuchBeanDefinitionException.class)
50+
@Test
5451
public void defaultObjectMapperBeanNotExists() {
55-
final AbstractApplicationContext context = new AnnotationConfigApplicationContext(
56-
TestCosmosConfiguration.class);
52+
assertThrows(NoSuchBeanDefinitionException.class, () -> {
53+
final AbstractApplicationContext context = new AnnotationConfigApplicationContext(
54+
TestCosmosConfiguration.class);
5755

58-
context.getBean(ObjectMapper.class);
56+
context.getBean(ObjectMapper.class);
57+
});
5958
}
6059

6160
@Test
6261
public void objectMapperIsConfigurable() {
6362
final AbstractApplicationContext context = new AnnotationConfigApplicationContext(
6463
ObjectMapperConfiguration.class);
6564

66-
Assertions.assertThat(context.getBean(ObjectMapper.class)).isNotNull();
67-
Assertions.assertThat(context.getBean(Constants.OBJECT_MAPPER_BEAN_NAME)).isNotNull();
65+
assertThat(context.getBean(ObjectMapper.class)).isNotNull();
66+
assertThat(context.getBean(Constants.OBJECT_MAPPER_BEAN_NAME)).isNotNull();
6867
}
6968

7069
@Test
@@ -73,16 +72,16 @@ public void testCosmosClientBuilderConfigurable() throws IllegalAccessException,
7372
RequestOptionsConfiguration.class);
7473
final CosmosFactory factory = context.getBean(CosmosFactory.class);
7574

76-
Assertions.assertThat(factory).isNotNull();
75+
assertThat(factory).isNotNull();
7776

7877
final CosmosAsyncClient cosmosAsyncClient = factory.getCosmosAsyncClient();
7978

80-
Assertions.assertThat(cosmosAsyncClient).isNotNull();
79+
assertThat(cosmosAsyncClient).isNotNull();
8180
Field desiredConsistencyLevel = cosmosAsyncClient.getClass().getDeclaredField("desiredConsistencyLevel");
8281
desiredConsistencyLevel.setAccessible(true);
8382
ConsistencyLevel consistencyLevel =
8483
(ConsistencyLevel) desiredConsistencyLevel.get(cosmosAsyncClient);
85-
Assertions.assertThat(consistencyLevel).isEqualTo(ConsistencyLevel.CONSISTENT_PREFIX);
84+
assertThat(consistencyLevel).isEqualTo(ConsistencyLevel.CONSISTENT_PREFIX);
8685
}
8786

8887
@Configuration

0 commit comments

Comments
 (0)