Browse Source

TestUnit verbose mode

JNI-96
heck 5 years ago
parent
commit
a14ba8b499
  1. 77
      test/java/foundation/pEp/jniadapter/test/framework/TestUnit.java

77
test/java/foundation/pEp/jniadapter/test/framework/TestUnit.java

@ -5,50 +5,85 @@ import static foundation.pEp.jniadapter.test.framework.TestLogger.*;
import java.util.function.Consumer;
public class TestUnit<T extends TestContextInterface> implements Runnable {
String testUnitName = "default test unit";
T ctx;
Consumer<T> lambda;
private String testUnitName = "default test unit";
private T ctx;
private Consumer<T> lambda;
private boolean verboseMode = true;
// Defaults (line width 80)
private int logFmtTestNameLen = 35;
private int logFmtCtxNameLen = 24;
private int logFmtMsgLen = 8;
private String logFormat = "";
public boolean isVerboseMode() {
return verboseMode;
}
public void setVerboseMode(boolean verboseMode) {
this.verboseMode = verboseMode;
}
public TestUnit(String name, T context, Consumer<T> lambda) {
this.testUnitName = name;
this.lambda = lambda;
this.ctx = context;
logFmtTestNameLen = (int) Math.floor(TestLogger.getLineWidth() * 0.45);
logFmtCtxNameLen = (int) Math.floor(TestLogger.getLineWidth() * 0.3);
logFmtMsgLen = (int) Math.floor(TestLogger.getLineWidth() * 0.2);
}
public void run() {
if (ctx.isUninitializable()) {
// Context uninitializable
log("Context has been uninitializable");
logH1("Skipping, context has been uninitializable");
} else {
// Init the Context
try {
if (!ctx.isInitialized()) {
logH1("TEST: '" + testUnitName + "' ==== CTX: '" + ctx.getTestContextName() + "' ===== CTX INIT");
// Init the Context if not already done
if (!ctx.isInitialized()) {
try {
if (!verboseMode) TestUtils.standardOutErrDisable(true);
logH1(logString("CTX INIT"));
ctx.init();
ctx.setInitialized(true);
if (!verboseMode) TestUtils.standardOutErrDisable(false);
} catch (Throwable t) {
//Context init problems need to throw to fail
if (!verboseMode) TestUtils.standardOutErrDisable(false);
ctx.setUninitializable(true);
logH1(logString("CTX FAIL"));
log(t.toString());
logRaw("\n");
return;
}
} catch (Throwable t) {
//Context Init problems need to throw for fail
logH1("TEST: '" + testUnitName + "' ==== CTX: '" + ctx.getTestContextName() + "' ===== CTX FAIL");
log(t.toString());
spacer();
ctx.setUninitializable(true);
return;
}
// Run the test
logH1("TEST: '" + testUnitName + "' ==== CTX: '" + ctx.getTestContextName() + "' ===== STARTING");
try {
if (!verboseMode) TestUtils.standardOutErrDisable(true);
logH1(logString("STARTING"));
lambda.accept(ctx);
if (!verboseMode) TestUtils.standardOutErrDisable(false);
logH1(logString("SUCCESS"));
if (verboseMode) logRaw("\n\n");
} catch (Throwable t) {
//Test fails, upon cought exception, otherwise succeeds
logH1("TEST: '" + testUnitName + "' ==== CTX: '" + ctx.getTestContextName() + "' ===== FAILED");
if (!verboseMode) TestUtils.standardOutErrDisable(false);
logH1(logString("FAILED"));
log(t.toString());
spacer();
if (verboseMode) logRaw("\n\n");
return;
}
logH1("TEST: '" + testUnitName + "' ==== CTX: '" + ctx.getTestContextName() + "' ===== SUCCESS");
spacer();
}
}
private String logString(String str) {
String testUnitNameFmtd = TestUtils.fixedWidthPaddedString(" TEST: '" + testUnitName + "' ", "=", logFmtTestNameLen, TestUtils.Alignment.Left, ".. ");
String testCtxNameFmtd = TestUtils.fixedWidthPaddedString(" CTX: '" + ctx.getTestContextName() + "' ", "=", logFmtCtxNameLen, TestUtils.Alignment.Center, ".. ");
String strFmtd = TestUtils.fixedWidthPaddedString(" " + str + " ", "=", logFmtMsgLen, TestUtils.Alignment.Right, ".. ");
return testUnitNameFmtd + testCtxNameFmtd + strFmtd;
}
}

Loading…
Cancel
Save