testcontainers-java

Форк
0
66 строк · 2.1 Кб
1
package org.testcontainers.containers;
2

3
import com.mongodb.client.MongoClient;
4
import com.mongodb.client.MongoClients;
5
import org.bson.Document;
6
import org.junit.Test;
7
import org.junit.runner.RunWith;
8
import org.junit.runners.Parameterized;
9

10
import static org.assertj.core.api.Assertions.assertThat;
11

12
@RunWith(Parameterized.class)
13
public class CompatibleImageTest extends AbstractMongo {
14

15
    private final String image;
16

17
    public CompatibleImageTest(String image) {
18
        this.image = image;
19
    }
20

21
    @Parameterized.Parameters(name = "{0}")
22
    public static String[] image() {
23
        return new String[] {
24
            "mongo:7",
25
            "mongodb/mongodb-community-server:7.0.2-ubi8",
26
            "mongodb/mongodb-enterprise-server:7.0.0-ubi8",
27
        };
28
    }
29

30
    @Test
31
    public void shouldExecuteTransactions() {
32
        try (
33
            // creatingMongoDBContainer {
34
            final MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:4.0.10")
35
            // }
36
        ) {
37
            // startingMongoDBContainer {
38
            mongoDBContainer.start();
39
            // }
40
            executeTx(mongoDBContainer);
41
        }
42
    }
43

44
    @Test
45
    public void shouldSupportSharding() {
46
        try (final MongoDBContainer mongoDBContainer = new MongoDBContainer(this.image).withSharding()) {
47
            mongoDBContainer.start();
48
            final MongoClient mongoClient = MongoClients.create(mongoDBContainer.getReplicaSetUrl());
49

50
            mongoClient.getDatabase("mydb1").getCollection("foo").insertOne(new Document("abc", 0));
51

52
            Document shards = mongoClient.getDatabase("config").getCollection("shards").find().first();
53
            assertThat(shards).isNotNull();
54
            assertThat(shards).isNotEmpty();
55
            assertThat(isReplicaSet(mongoClient)).isFalse();
56
        }
57
    }
58

59
    private boolean isReplicaSet(MongoClient mongoClient) {
60
        return runIsMaster(mongoClient).get("setName") != null;
61
    }
62

63
    private Document runIsMaster(MongoClient mongoClient) {
64
        return mongoClient.getDatabase("admin").runCommand(new Document("ismaster", 1));
65
    }
66
}
67

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.