use of org.folio.okapi.bean.AnyDescriptor in project okapi by folio-org.
the class DockerModuleHandleTest method testGetCreateContainerDoc.
@Test
public void testGetCreateContainerDoc() {
LaunchDescriptor launchDescriptor = new LaunchDescriptor();
launchDescriptor.setEnv(new EnvEntry[] { new EnvEntry("username", "foobar"), new EnvEntry("password", "uvwxyz%p%c") });
launchDescriptor.setDockerArgs(new AnyDescriptor().set("%p", "%p"));
Logger logger = mock(Logger.class);
StringBuilder logMessage = new StringBuilder();
when(logger.isInfoEnabled()).thenReturn(true);
doAnswer(AdditionalAnswers.answerVoid((String msg, Object param) -> logMessage.append(msg).append(param.toString()))).when(logger).info(anyString(), any(Object.class));
DockerModuleHandle dockerModuleHandle = new DockerModuleHandle(Vertx.vertx(), launchDescriptor, "mod-users-5.0.0-SNAPSHOT", new Ports(9232, 9233), "localhost", 9232, new JsonObject(), logger);
assertThat(dockerModuleHandle.getCreateContainerDoc(8000)).contains("8000/tcp").contains(// dockerArgs variable expansion in values, not in keys
"\"%p\" : \"9232\"").contains("foobar").contains(// no %p or %c variable expansion in Env values
"uvwxyz%p%c");
assertThat(logMessage.toString()).contains("8000/tcp").contains("\"%p\" : \"9232\"").doesNotContain(// no env values in the log because they may contain credentials
"foobar").doesNotContain("uvwxyz");
Assert.assertEquals(launchDescriptor.getDockerArgs().properties().get("%p"), "%p");
}
Aggregations