package io.delphi.qa.auto.awsmfrw.tests;

import io.delphi.qa.auto.awsmfrw.common_baby.IsaCommonMethods;
import io.delphi.qa.auto.awsmfrw.common_baby.IsaLogging;
import io.delphi.qa.auto.awsmfrw.common_baby.listeners.IsaTestListener;
import io.delphi.qa.auto.awsmfrw.managers.MgDelphi;
import io.delphi.qa.auto.awsmfrw.suppliers.DelphiDataContainer;
import org.testng.ITestContext;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Listeners;

@Listeners({IsaTestListener.class})
public abstract class BsTest implements IsaCommonMethods{
  protected static final MgDelphi delphi = new MgDelphi();

  protected void envDescriptionDefault() {
    DelphiDataContainer.saveResource("env_description", envConfig.env());
  }

  @BeforeSuite(alwaysRun = true)
  public void preS_initDelphiFramework(ITestContext context) {
    IsaLogging.log(this.getClass(), "\n- test run env: " + envConfig.env());
    context.setAttribute("delphi", delphi);
  }

  @AfterMethod(alwaysRun = true)
  public void cleanThreadLocal() {
    DelphiDataContainer.resetThreadLocal();
  }
}
