AthenaContext.java
- /*
- * @copyright defined in LICENSE.txt
- */
- package ship.test;
- import static org.slf4j.LoggerFactory.getLogger;
- import lombok.Getter;
- import lombok.Setter;
- import org.luaj.vm2.LuaValue;
- import org.luaj.vm2.lib.OneArgFunction;
- import org.luaj.vm2.lib.TwoArgFunction;
- import org.slf4j.Logger;
- public class AthenaContext {
- protected static final ThreadLocal<AthenaContext> cabinet =
- new InheritableThreadLocal<AthenaContext>() {
- @Override
- protected AthenaContext initialValue() {
- return new AthenaContext();
- }
- };
- public static AthenaContext getContext() {
- return cabinet.get();
- }
- protected final transient Logger logger = getLogger(getClass());
- @Getter
- @Setter
- protected TestResultCollector testReporter = new TestResultCollector();
- public OneArgFunction startSuite = new OneArgFunction() {
- @Override
- public LuaValue call(final LuaValue name) {
- testReporter.startSuite(name.tojstring());
- return null;
- }
- };
- public OneArgFunction endSuite = new OneArgFunction() {
- @Override
- public LuaValue call(final LuaValue name) {
- testReporter.endSuite(name.tojstring());
- return null;
- }
- };
- public OneArgFunction startTest = new OneArgFunction() {
- @Override
- public LuaValue call(final LuaValue name) {
- logger.trace("Starting {}...", name);
- testReporter.startCase(name.tojstring());
- return null;
- }
- };
- public OneArgFunction endTest = new OneArgFunction() {
- @Override
- public LuaValue call(final LuaValue name) {
- logger.trace("{} end", name);
- testReporter.endCase(name.tojstring());
- return null;
- }
- };
- public TwoArgFunction recordError = new TwoArgFunction() {
- @Override
- public LuaValue call(LuaValue name, LuaValue error) {
- logger.info("{} throw {}", name, error);
- testReporter.error(name.tojstring(), error.tojstring());
- return null;
- }
- };
- public static void clear() {
- cabinet.remove();
- }
- }