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());
}
Макет сервера должен работать правильно, не должно выдавать исключение.