Skip to content

Commit c46a6f4

Browse files
authored
DATAES-675 - Migrate tests to JUnit5.
Original PR: #338
1 parent c50af32 commit c46a6f4

20 files changed

+178
-320
lines changed

pom.xml

+8
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,14 @@
264264
<scope>test</scope>
265265
</dependency>
266266

267+
<dependency>
268+
<groupId>org.mockito</groupId>
269+
<artifactId>mockito-junit-jupiter</artifactId>
270+
<version>${mockito}</version>
271+
<scope>test</scope>
272+
</dependency>
273+
274+
267275
</dependencies>
268276

269277
<build>

src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientTests.java

+10-18
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
import static org.assertj.core.api.Assertions.*;
1919

2020
import lombok.SneakyThrows;
21-
import org.junit.ClassRule;
22-
import org.springframework.data.elasticsearch.junit.junit4.TestNodeResource;
2321
import reactor.test.StepVerifier;
2422

2523
import java.io.IOException;
@@ -50,33 +48,27 @@
5048
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
5149
import org.elasticsearch.rest.RestStatus;
5250
import org.elasticsearch.search.builder.SearchSourceBuilder;
53-
import org.junit.After;
54-
import org.junit.Before;
55-
import org.junit.Rule;
56-
import org.junit.Test;
57-
import org.junit.runner.RunWith;
58-
import org.springframework.data.elasticsearch.junit.junit4.ElasticsearchVersion;
59-
import org.springframework.data.elasticsearch.junit.junit4.ElasticsearchVersionRule;
51+
import org.junit.jupiter.api.AfterEach;
52+
import org.junit.jupiter.api.BeforeEach;
53+
import org.junit.jupiter.api.Test;
6054
import org.springframework.data.elasticsearch.TestUtils;
6155
import org.springframework.data.elasticsearch.client.ClientConfiguration;
56+
import org.springframework.data.elasticsearch.junit.junit4.ElasticsearchVersion;
57+
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
58+
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
6259
import org.springframework.http.HttpHeaders;
6360
import org.springframework.lang.Nullable;
6461
import org.springframework.test.context.ContextConfiguration;
65-
import org.springframework.test.context.junit4.SpringRunner;
6662

6763
/**
6864
* @author Christoph Strobl
6965
* @author Mark Paluch
7066
* @author Peter-Josef Meisch
7167
*/
72-
@RunWith(SpringRunner.class)
68+
@SpringIntegrationTest
69+
@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
7370
public class ReactiveElasticsearchClientTests {
7471

75-
@ClassRule
76-
public static TestNodeResource testNodeResource = new TestNodeResource();
77-
78-
public @Rule ElasticsearchVersionRule elasticsearchVersion = ElasticsearchVersionRule.any();
79-
8072
static final String INDEX_I = "idx-1-reactive-client-tests";
8173
static final String INDEX_II = "idx-2-reactive-client-tests";
8274

@@ -99,7 +91,7 @@ public class ReactiveElasticsearchClientTests {
9991
DOC_SOURCE = Collections.unmodifiableMap(source);
10092
}
10193

102-
@Before
94+
@BeforeEach
10395
public void setUp() {
10496

10597
syncClient = TestUtils.restHighLevelClient();
@@ -108,7 +100,7 @@ public void setUp() {
108100
TestUtils.deleteIndex(INDEX_I, INDEX_II);
109101
}
110102

111-
@After
103+
@AfterEach
112104
public void after() throws IOException {
113105

114106
TestUtils.deleteIndex(INDEX_I, INDEX_II);

src/test/java/org/springframework/data/elasticsearch/config/ElasticsearchConfigurationSupportUnitTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
import org.apache.commons.lang.ClassUtils;
2525
import org.elasticsearch.client.RestHighLevelClient;
26-
import org.junit.Test;
26+
import org.junit.jupiter.api.Test;
2727
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
2828
import org.springframework.context.annotation.Configuration;
2929
import org.springframework.context.support.AbstractApplicationContext;

src/test/java/org/springframework/data/elasticsearch/config/abstractelasticsearchconfiguration/ElasticsearchConfigurationTests.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import static org.mockito.Mockito.*;
2020

2121
import org.elasticsearch.client.RestHighLevelClient;
22-
import org.junit.Test;
23-
import org.junit.runner.RunWith;
22+
import org.junit.jupiter.api.Test;
23+
import org.junit.jupiter.api.extension.ExtendWith;
2424
import org.springframework.beans.factory.annotation.Autowired;
2525
import org.springframework.context.annotation.Configuration;
2626
import org.springframework.data.annotation.Id;
@@ -29,14 +29,14 @@
2929
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
3030
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
3131
import org.springframework.test.context.ContextConfiguration;
32-
import org.springframework.test.context.junit4.SpringRunner;
32+
import org.springframework.test.context.junit.jupiter.SpringExtension;
3333

3434
/**
3535
* Tests for {@link AbstractElasticsearchConfiguration}.
3636
*
3737
* @author Peter-Josef Meisch
3838
*/
39-
@RunWith(SpringRunner.class)
39+
@ExtendWith(SpringExtension.class)
4040
@ContextConfiguration
4141
public class ElasticsearchConfigurationTests {
4242

src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTests.java

+8-19
Original file line numberDiff line numberDiff line change
@@ -24,47 +24,36 @@
2424
import java.lang.Double;
2525
import java.lang.Long;
2626

27-
import org.elasticsearch.node.NodeValidationException;
28-
import org.junit.Test;
29-
import org.junit.runner.RunWith;
30-
27+
import org.junit.jupiter.api.Test;
3128
import org.springframework.beans.factory.annotation.Autowired;
32-
import org.springframework.context.annotation.Bean;
3329
import org.springframework.context.annotation.Configuration;
30+
import org.springframework.context.annotation.Import;
3431
import org.springframework.data.annotation.Id;
3532
import org.springframework.data.annotation.Version;
36-
import org.springframework.data.elasticsearch.Utils;
3733
import org.springframework.data.elasticsearch.annotations.Document;
3834
import org.springframework.data.elasticsearch.annotations.Field;
3935
import org.springframework.data.elasticsearch.annotations.Score;
4036
import org.springframework.data.elasticsearch.annotations.ScriptedField;
41-
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
42-
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
4337
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
38+
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
39+
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
4440
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
4541
import org.springframework.data.repository.Repository;
4642
import org.springframework.test.context.ContextConfiguration;
47-
import org.springframework.test.context.junit4.SpringRunner;
4843

4944
/**
5045
* @author Kevin Leturc
5146
* @author Peter-Josef Meisch
5247
*/
53-
@RunWith(SpringRunner.class)
54-
@ContextConfiguration
48+
@SpringIntegrationTest
49+
@ContextConfiguration(classes = { EnableNestedElasticsearchRepositoriesTests.Config.class })
5550
public class EnableNestedElasticsearchRepositoriesTests {
5651

5752
@Configuration
53+
@Import({ ElasticsearchTemplateConfiguration.class })
5854
@EnableElasticsearchRepositories(basePackages = { "org.springframework.data.elasticsearch.config.nested" },
5955
considerNestedRepositories = true)
60-
static class Config {
61-
62-
@Bean
63-
public ElasticsearchOperations elasticsearchTemplate() throws NodeValidationException {
64-
return new ElasticsearchTemplate(Utils.getNodeClient());
65-
}
66-
67-
}
56+
static class Config {}
6857

6958
@Autowired(required = false) private SampleRepository nestedRepository;
7059

src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesTests.java

+10-20
Original file line numberDiff line numberDiff line change
@@ -24,34 +24,30 @@
2424
import java.lang.Long;
2525
import java.util.UUID;
2626

27-
import org.elasticsearch.node.NodeValidationException;
28-
import org.junit.Before;
29-
import org.junit.Test;
30-
import org.junit.runner.RunWith;
31-
27+
import org.junit.jupiter.api.BeforeEach;
28+
import org.junit.jupiter.api.Test;
3229
import org.springframework.beans.BeansException;
3330
import org.springframework.beans.factory.annotation.Autowired;
3431
import org.springframework.context.ApplicationContext;
3532
import org.springframework.context.ApplicationContextAware;
36-
import org.springframework.context.annotation.Bean;
3733
import org.springframework.context.annotation.Configuration;
34+
import org.springframework.context.annotation.Import;
3835
import org.springframework.data.annotation.Id;
3936
import org.springframework.data.annotation.Version;
40-
import org.springframework.data.elasticsearch.Utils;
4137
import org.springframework.data.elasticsearch.annotations.Document;
4238
import org.springframework.data.elasticsearch.annotations.Field;
4339
import org.springframework.data.elasticsearch.annotations.FieldType;
4440
import org.springframework.data.elasticsearch.annotations.Score;
4541
import org.springframework.data.elasticsearch.annotations.ScriptedField;
46-
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
4742
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
4843
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
44+
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
45+
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
4946
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
5047
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
5148
import org.springframework.data.elasticsearch.utils.IndexInitializer;
5249
import org.springframework.data.repository.Repository;
5350
import org.springframework.test.context.ContextConfiguration;
54-
import org.springframework.test.context.junit4.SpringRunner;
5551

5652
/**
5753
* @author Rizwan Idrees
@@ -60,8 +56,8 @@
6056
* @author Gad Akuka
6157
* @author Peter-Josef Meisch
6258
*/
63-
@RunWith(SpringRunner.class)
64-
@ContextConfiguration
59+
@SpringIntegrationTest
60+
@ContextConfiguration(classes = { EnableElasticsearchRepositoriesTests.Config.class })
6561
public class EnableElasticsearchRepositoriesTests implements ApplicationContextAware {
6662

6763
ApplicationContext context;
@@ -73,15 +69,9 @@ public void setApplicationContext(ApplicationContext applicationContext) throws
7369
}
7470

7571
@Configuration
72+
@Import({ ElasticsearchTemplateConfiguration.class })
7673
@EnableElasticsearchRepositories(basePackages = { "org.springframework.data.elasticsearch.config.notnested" })
77-
static class Config {
78-
79-
@Bean
80-
public ElasticsearchOperations elasticsearchTemplate() throws NodeValidationException {
81-
82-
return new ElasticsearchTemplate(Utils.getNodeClient());
83-
}
84-
}
74+
static class Config {}
8575

8676
@Autowired ElasticsearchTemplate elasticsearchTemplate;
8777

@@ -91,7 +81,7 @@ public ElasticsearchOperations elasticsearchTemplate() throws NodeValidationExce
9181

9282
interface SampleRepository extends Repository<EnableElasticsearchRepositoriesTests.SampleEntity, Long> {}
9383

94-
@Before
84+
@BeforeEach
9585
public void before() {
9686
IndexInitializer.init(elasticsearchTemplate, SampleEntity.class);
9787
}

src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateTests.java

+14-18
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,9 @@
4040
import java.util.stream.IntStream;
4141

4242
import org.elasticsearch.ElasticsearchStatusException;
43-
import org.junit.After;
44-
import org.junit.Before;
45-
import org.junit.Rule;
46-
import org.junit.Test;
47-
import org.junit.runner.RunWith;
43+
import org.junit.jupiter.api.AfterEach;
44+
import org.junit.jupiter.api.BeforeEach;
45+
import org.junit.jupiter.api.Test;
4846
import org.springframework.dao.DataAccessResourceFailureException;
4947
import org.springframework.data.annotation.Id;
5048
import org.springframework.data.annotation.Version;
@@ -63,9 +61,9 @@
6361
import org.springframework.data.elasticsearch.core.query.SearchQuery;
6462
import org.springframework.data.elasticsearch.core.query.StringQuery;
6563
import org.springframework.data.elasticsearch.junit.junit4.ElasticsearchVersion;
66-
import org.springframework.data.elasticsearch.junit.junit4.ElasticsearchVersionRule;
64+
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
65+
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
6766
import org.springframework.test.context.ContextConfiguration;
68-
import org.springframework.test.context.junit4.SpringRunner;
6967
import org.springframework.util.StringUtils;
7068

7169
/**
@@ -76,21 +74,18 @@
7674
* @author Peter-Josef Meisch
7775
* @author Farid Azaza
7876
* @author Martin Choraine
79-
* @currentRead Golden Fool - Robin Hobb
8077
*/
81-
@RunWith(SpringRunner.class)
82-
@ContextConfiguration("classpath:infrastructure.xml")
78+
@SpringIntegrationTest
79+
@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
8380
public class ReactiveElasticsearchTemplateTests {
8481

85-
public @Rule ElasticsearchVersionRule elasticsearchVersion = ElasticsearchVersionRule.any();
86-
8782
static final String DEFAULT_INDEX = "reactive-template-test-index";
8883
static final String ALTERNATE_INDEX = "reactive-template-tests-alternate-index";
8984

9085
private ElasticsearchRestTemplate restTemplate;
9186
private ReactiveElasticsearchTemplate template;
9287

93-
@Before
88+
@BeforeEach
9489
public void setUp() {
9590

9691
deleteIndices();
@@ -103,7 +98,7 @@ public void setUp() {
10398
template = new ReactiveElasticsearchTemplate(TestUtils.reactiveClient(), restTemplate.getElasticsearchConverter());
10499
}
105100

106-
@After
101+
@AfterEach
107102
public void tearDown() {
108103
deleteIndices();
109104
}
@@ -195,9 +190,10 @@ public void insertShouldAcceptPlainMapStructureAsSource() {
195190
}).verifyComplete();
196191
}
197192

198-
@Test(expected = IllegalArgumentException.class) // DATAES-504
193+
@Test // DATAES-504
199194
public void insertShouldErrorOnNullEntity() {
200-
template.save(null);
195+
assertThatThrownBy(() -> template.save(null)).isInstanceOf(IllegalArgumentException.class);
196+
201197
}
202198

203199
@Test // DATAES-519
@@ -247,9 +243,9 @@ public void findByIdShouldCompleteWhenNotingFound() {
247243
.verifyComplete();
248244
}
249245

250-
@Test(expected = IllegalArgumentException.class) // DATAES-504
246+
@Test // DATAES-504
251247
public void findByIdShouldErrorForNullId() {
252-
template.findById(null, SampleEntity.class);
248+
assertThatThrownBy(() -> template.findById(null, SampleEntity.class)).isInstanceOf(IllegalArgumentException.class);
253249
}
254250

255251
@Test // DATAES-504

src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateUnitTests.java

+6-11
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,12 @@
4040
import org.elasticsearch.action.support.WriteRequest.RefreshPolicy;
4141
import org.elasticsearch.index.query.QueryBuilders;
4242
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
43-
import org.junit.Before;
44-
import org.junit.Rule;
45-
import org.junit.Test;
43+
import org.junit.jupiter.api.BeforeEach;
44+
import org.junit.jupiter.api.Test;
45+
import org.junit.jupiter.api.extension.ExtendWith;
4646
import org.mockito.ArgumentCaptor;
4747
import org.mockito.Mock;
48-
import org.mockito.junit.MockitoJUnit;
49-
import org.mockito.junit.MockitoRule;
50-
48+
import org.mockito.junit.jupiter.MockitoExtension;
5149
import org.springframework.data.annotation.Id;
5250
import org.springframework.data.annotation.Version;
5351
import org.springframework.data.domain.PageRequest;
@@ -63,18 +61,15 @@
6361

6462
/**
6563
* @author Christoph Strobl
66-
* @currentRead Fool's Fate - Robin Hobb
6764
* @author Peter-Josef Meisch
6865
*/
66+
@ExtendWith(MockitoExtension.class)
6967
public class ReactiveElasticsearchTemplateUnitTests {
7068

71-
@Rule //
72-
public MockitoRule rule = MockitoJUnit.rule();
73-
7469
@Mock ReactiveElasticsearchClient client;
7570
ReactiveElasticsearchTemplate template;
7671

77-
@Before
72+
@BeforeEach
7873
public void setUp() {
7974

8075
template = new ReactiveElasticsearchTemplate(client);

src/test/java/org/springframework/data/elasticsearch/core/aggregation/AggregatedPageImplTest.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919

2020
import java.util.Arrays;
2121

22-
import org.junit.Test;
23-
22+
import org.junit.jupiter.api.Test;
2423
import org.springframework.data.domain.Page;
2524
import org.springframework.data.domain.PageRequest;
2625
import org.springframework.data.elasticsearch.core.aggregation.impl.AggregatedPageImpl;

0 commit comments

Comments
 (0)