Search in sources :

Example 1 with AnyDescriptor

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");
}
Also used : AnyDescriptor(org.folio.okapi.bean.AnyDescriptor) Ports(org.folio.okapi.bean.Ports) JsonObject(io.vertx.core.json.JsonObject) JsonObject(io.vertx.core.json.JsonObject) OkapiLogger(org.folio.okapi.common.OkapiLogger) Logger(org.apache.logging.log4j.Logger) LaunchDescriptor(org.folio.okapi.bean.LaunchDescriptor) EnvEntry(org.folio.okapi.bean.EnvEntry) Test(org.junit.Test)

Aggregations

JsonObject (io.vertx.core.json.JsonObject)1 Logger (org.apache.logging.log4j.Logger)1 AnyDescriptor (org.folio.okapi.bean.AnyDescriptor)1 EnvEntry (org.folio.okapi.bean.EnvEntry)1 LaunchDescriptor (org.folio.okapi.bean.LaunchDescriptor)1 Ports (org.folio.okapi.bean.Ports)1 OkapiLogger (org.folio.okapi.common.OkapiLogger)1 Test (org.junit.Test)1