package com.github.dockerjava.assertions;
import com.github.dockerjava.CubeOutput;
import java.util.Arrays;
import java.util.List;
import org.assertj.core.api.AbstractAssert;
import org.assertj.core.api.SoftAssertions;
public class CubeOutputAssert extends AbstractAssert<CubeOutputAssert, CubeOutput> {
public CubeOutputAssert(CubeOutput actual) {
super(actual, CubeOutputAssert.class);
}
public CubeOutputAssert hasProcessRunning(String processName) {
isNotNull();
List<String> processes = getProcesses(this.actual.getOutput());
SoftAssertions softAssertions = new SoftAssertions();
softAssertions.assertThat(this.actual.getError()).isEmpty();
softAssertions.assertThat(processes)
.overridingErrorMessage("Expected container's running process to contain <%s> but was %n <%s>", processName,
processes)
.contains(processName);
softAssertions.assertAll();
return this;
}
public CubeOutputAssert hasProcessesRunning(String... processes) {
isNotNull();
List<String> actualProcesses = getProcesses(this.actual.getOutput());
SoftAssertions softAssertions = new SoftAssertions();
softAssertions.assertThat(this.actual.getError()).isEmpty();
softAssertions.assertThat(actualProcesses)
.overridingErrorMessage("Expected container's running processes to contain %n <%s> but was %n <%s>",
Arrays.asList(processes), actualProcesses)
.contains(processes);
softAssertions.assertAll();
return this;
}
private List<String> getProcesses(String processes) {
return Arrays.asList(processes.split("\n"));
}
}