(OracleContainer + MockServer) java.net.ConnectException: соединение отклонено: нет дополнительной информации: localhost / 0: 0: 0: 0: 0: 0: 0: 1: 49561 - PullRequest
0 голосов
/ 28 января 2019

Framework: Play 2.6.x
TestContianer: "org.testcontainers" % "oracle-xe" % "1.10.5"
Попытка написания тестовых случаев для oracle-контейнера путем насмешки WSClient
Причина: при вызове внутренней службы с использованием mockserver выдает упомянутое исключение.

Я попытался создать один универсальный контейнер, но проблема существует.

@ ClassRule общедоступная статическая OracleContainer oracleContainer = new OracleContainer ("niteshsharma / oracle-xe: 11");

@BeforeClass
public static void setUp() {
    oracleContainer.withExtraHost("localhost","1522");
    oracleContainer.addExposedPort(1522);
    oracleContainer.setPortBindings(Collections.singletonList(1521));
    oracleContainer.start();

    app = new GuiceApplicationBuilder()
            .overrides(bind(WSClient.class).to(WSClientMock.class))
            .configure("db.default", ImmutableMap.of(
                    "driver",oracleContainer.getDriverClassName(),
                    "url", oracleContainer.getJdbcUrl(),
                    "username", oracleContainer.getUsername(),
                    "password", oracleContainer.getPassword()
            ))
            .configure("aws.sqs",ImmutableMap.of(
                    "url",sqsQueueUrl
            ))
            .configure("aws",ImmutableMap.of(
                    "accessKeyId","foo",
                    "secretKey","foo"
            ))
            .in(Mode.TEST).build();
    Helpers.start(app);
}

MockServerКод:

public WSClientMock() {
    server = Server.forRouter((components) -> RoutingDsl.fromComponents(components)
            .GET("/Auth/v1/rules")
            .routeTo(() -> ok().sendResource("mock-responses/apiAuthRule.json"))
            .build());
    ws = WSTestClient.newClient(server.httpPort());
}

Макет сервера должен работать правильно, не должно выдавать исключение.

...