Skip to content

Commit 2350d9c

Browse files
committed
Adapt to Data changes missed due to predictive test selection
See gh-36190
1 parent 9985c84 commit 2350d9c

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfigurationTests.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,13 @@
1616

1717
package org.springframework.boot.autoconfigure.data.mongo;
1818

19+
import java.time.Duration;
20+
1921
import com.mongodb.ConnectionString;
22+
import com.mongodb.reactivestreams.client.MongoCollection;
23+
import com.mongodb.reactivestreams.client.gridfs.GridFSBucket;
2024
import org.junit.jupiter.api.Test;
25+
import reactor.core.publisher.Mono;
2126

2227
import org.springframework.boot.autoconfigure.AutoConfigurations;
2328
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
@@ -68,20 +73,26 @@ void whenGridFsDatabaseIsConfiguredThenGridFsTemplateUsesIt() {
6873
}
6974

7075
@Test
76+
@SuppressWarnings("unchecked")
7177
void usesMongoConnectionDetailsIfAvailable() {
7278
this.contextRunner.withUserConfiguration(ConnectionDetailsConfiguration.class).run((context) -> {
7379
assertThat(grisFsTemplateDatabaseName(context)).isEqualTo("grid-database-1");
7480
ReactiveGridFsTemplate template = context.getBean(ReactiveGridFsTemplate.class);
75-
assertThat(template).hasFieldOrPropertyWithValue("bucket", "connection-details-bucket");
81+
GridFSBucket bucket = ((Mono<GridFSBucket>) ReflectionTestUtils.getField(template, "bucketSupplier"))
82+
.block(Duration.ofSeconds(30));
83+
assertThat(bucket.getBucketName()).isEqualTo("connection-details-bucket");
7684
});
7785
}
7886

7987
@Test
88+
@SuppressWarnings("unchecked")
8089
void whenGridFsBucketIsConfiguredThenGridFsTemplateUsesIt() {
8190
this.contextRunner.withPropertyValues("spring.data.mongodb.gridfs.bucket:test-bucket").run((context) -> {
8291
assertThat(context).hasSingleBean(ReactiveGridFsTemplate.class);
8392
ReactiveGridFsTemplate template = context.getBean(ReactiveGridFsTemplate.class);
84-
assertThat(template).hasFieldOrPropertyWithValue("bucket", "test-bucket");
93+
GridFSBucket bucket = ((Mono<GridFSBucket>) ReflectionTestUtils.getField(template, "bucketSupplier"))
94+
.block(Duration.ofSeconds(30));
95+
assertThat(bucket.getBucketName()).isEqualTo("test-bucket");
8596
});
8697
}
8798

@@ -150,12 +161,14 @@ void contextFailsWhenDatabaseNotSet() {
150161
.run((context) -> assertThat(context).getFailure().hasMessageContaining("Database name must not be empty"));
151162
}
152163

164+
@SuppressWarnings("unchecked")
153165
private String grisFsTemplateDatabaseName(AssertableApplicationContext context) {
154166
assertThat(context).hasSingleBean(ReactiveGridFsTemplate.class);
155167
ReactiveGridFsTemplate template = context.getBean(ReactiveGridFsTemplate.class);
156-
ReactiveMongoDatabaseFactory factory = (ReactiveMongoDatabaseFactory) ReflectionTestUtils.getField(template,
157-
"dbFactory");
158-
return factory.getMongoDatabase().block().getName();
168+
GridFSBucket bucket = ((Mono<GridFSBucket>) ReflectionTestUtils.getField(template, "bucketSupplier"))
169+
.block(Duration.ofSeconds(30));
170+
MongoCollection<?> collection = (MongoCollection<?>) ReflectionTestUtils.getField(bucket, "filesCollection");
171+
return collection.getNamespace().getDatabaseName();
159172
}
160173

161174
@Configuration(proxyBeanMethods = false)

0 commit comments

Comments
 (0)