package cz.moneta.test.dsl; import cz.moneta.test.dsl.aresapi.AresApiBuilder; import cz.moneta.test.dsl.auto.autoapi.AutoApiBuilder; import cz.moneta.test.dsl.auto.smartauto.SmartAuto; import cz.moneta.test.dsl.auto.smartauto.setman.SmartAutoSetman; import cz.moneta.test.dsl.broadcom.Broadcom; import cz.moneta.test.dsl.brokerportal.BrokerPortal; import cz.moneta.test.dsl.caapi.CaApiBuilder; import cz.moneta.test.dsl.cagw.CaGw; import cz.moneta.test.dsl.cashman.Cashman; import cz.moneta.test.dsl.cebia.Cebia; import cz.moneta.test.dsl.demo.Spirits; import cz.moneta.test.dsl.demo.web.DemoWebChrome; import cz.moneta.test.dsl.demo.web.DemoWebEdge; import cz.moneta.test.dsl.dmbsib.DmbsIb; import cz.moneta.test.dsl.elastic.ElasticApiBuilder; import cz.moneta.test.dsl.exevido.Exevido; import cz.moneta.test.dsl.finanso.Finanso; import cz.moneta.test.dsl.forte.Forte; import cz.moneta.test.dsl.fortelight.ForteLight; import cz.moneta.test.dsl.greenscreen.GreenScreen; import cz.moneta.test.dsl.hypos.Hypos; import cz.moneta.test.dsl.ib.Ib; import cz.moneta.test.dsl.ilods.Ilods; import cz.moneta.test.dsl.kasanova.Kasanova; import cz.moneta.test.dsl.mobile.smartbanking.home.Sb; import cz.moneta.test.dsl.monetaapiportal.MonetaApiPortal; import cz.moneta.test.dsl.monetaportal.MonetaPortal; import cz.moneta.test.dsl.mwf.IHub; import cz.moneta.test.dsl.newib.NewIb; import cz.moneta.test.dsl.oauth2.web.Oauth2Web; import cz.moneta.test.dsl.openapi.OpenApiBuilder; import cz.moneta.test.dsl.payment_engine.PaymentEngine; import cz.moneta.test.dsl.refinanso.Refinanso; import cz.moneta.test.dsl.salesforce.SalesForce; import cz.moneta.test.dsl.salesforceapi.SalesForceApiBuilder; import cz.moneta.test.dsl.szrmock.SzrMockBuilder; import cz.moneta.test.dsl.testautomationpage.TestAutomationPage; import cz.moneta.test.dsl.udebs.Udebs; import cz.moneta.test.dsl.ufo.Ufo; import cz.moneta.test.dsl.util.data.*; import cz.moneta.test.dsl.util.data.generators.*; import cz.moneta.test.dsl.util.task.Tasks; import cz.moneta.test.dsl.util.task.dataprepare.DataPrepareTasks; import cz.moneta.test.dsl.wso2.MockServer; import cz.moneta.test.dsl.wso2.Wso2; import cz.moneta.test.harness.annotations.TestContext; import cz.moneta.test.harness.context.BaseStoreAccessor; import cz.moneta.test.harness.support.data.GeneratorType; import org.junit.jupiter.api.extension.ExtensionContext.Store; import static cz.moneta.test.harness.support.data.GeneratorType.*; /** * {@link Harness} is considered the central entry and interaction point of the Harness framework. It utilizes the * builder pattern and provides a comprehensive fluent API. *
* It serves as an entry point to individual systems' and applications' DSL via Harness#with<system> methods * (e.g. {@link Harness#withUdebs()}) * * Additionally, it sports a number of utility methods. These include (for details see the individual method documentation): ** Harness can be (and usually is) injected into test methods as a parameter. *
{@code
* @literal @TestCase
* public void tc_check_config(Harness harness) {
* SpiritRef countDooku = harness.withDemo()
* .summonSpirit("Count Dooku");
* ...
* }
* }
*/
@TestContext
public class Harness extends BaseStoreAccessor {
private static final String SECOND_BANKER_TOKEN = "Second UFO";
public Harness(Store rootStore, Store globalStore, Store endpointStore, Store configStore, Store generatorsStore) {
super(rootStore, globalStore, endpointStore, configStore, generatorsStore);
initGenerators();
}
public static String getSecondBankerToken() {
return SECOND_BANKER_TOKEN;
}
public Udebs withUdebs() {
return new Udebs(this);
}
public OpenApiBuilder withOpenApi() {
return new OpenApiBuilder(this);
}
public CaApiBuilder withCaOpenApi() {
return new CaApiBuilder(this);
}
public CaGw withCaGw() {
return new CaGw(this);
}
@Deprecated
public Ib withIB() {
return new Ib(this);
}
public NewIb withNewIb() {
return new NewIb(this);
}
@Deprecated
public IHub withIHub() {
return new IHub(this);
}
public Wso2 withWso2() {
return new Wso2(this);
}
public Ufo withUfo() {
return new Ufo(this);
}
public Ufo withUfoSecondInstance() {
return new Ufo(this, SECOND_BANKER_TOKEN);
}
@Deprecated
public Oauth2Web withOauth2Web() {
return new Oauth2Web(this);
}
public DmbsIb withDmbsIb() {
return new DmbsIb(this);
}
public Spirits withDemo() {
return new Spirits(this);
}
public DemoWebChrome withDemoChromeTestPage() {
return new DemoWebChrome(this);
}
public DemoWebEdge withDemoEdgeTestPage() {
return new DemoWebEdge(this);
}
public MonetaPortal withMonetaPortal() {
return new MonetaPortal(this);
}
public BrokerPortal withBrokerPortal() {
return new BrokerPortal(this);
}
public Hypos withHypos() {
return new Hypos(this);
}
public SmartAuto withSmartAuto() {
return new SmartAuto(this);
}
public SmartAutoSetman withSmartAutoSetman() {
return new SmartAutoSetman(this);
}
public AutoApiBuilder withAutoApi() {
return new AutoApiBuilder(this);
}
public AresApiBuilder withAresApi() {
return new AresApiBuilder(this);
}
public Sb withSB() {
return new Sb(this);
}
public Kasanova withKasanova() {
return new Kasanova(this);
}
@Deprecated(since = "unmaintained since update to Java 17")
public Cebia withCebia() {
return new Cebia(this);
}
public GreenScreen withGreenScreen() {
return new GreenScreen(this);
}
public Data data() {
return new Data(this);
}
public Tasks tasks() {
return new Tasks(this);
}
public MonetaApiPortal withMonetaApiPortal() {
return new MonetaApiPortal(this);
}
public PaymentEngine withPaymentEngine() {
return new PaymentEngine(this);
}
public Ilods withIlods() {
return new Ilods(this);
}
public DataPrepareTasks dataPrepare() {
return new DataPrepareTasks(this);
}
public Refinanso withRefinanso() {
return new Refinanso(this);
}
public Finanso withFinanso() {
return new Finanso(this);
}
public TestAutomationPage withTestAutomationPage() {
return new TestAutomationPage(this);
}
public SalesForce withSalesForce() {
return new SalesForce(this);
}
public SalesForceApiBuilder withSalesForceApi() {
return new SalesForceApiBuilder(this);
}
public ElasticApiBuilder withElasticApi() {
return new ElasticApiBuilder(this);
}
public ForteLight withForteLight() {
return new ForteLight(this);
}
public Forte withForte() {
return new Forte(this);
}
public Broadcom withBroadcom() {
return new Broadcom(this);
}
public SzrMockBuilder withSzrMock() {
return new SzrMockBuilder(this);
}
public MockServer withMockServer() {
return new MockServer(this);
}
public Exevido withExevido() {
return new Exevido(this);
}
public Cashman withCashman() {
return new Cashman(this);
}
private void initGenerators() {
addGenerator(RC, new RcGenerator());
addGenerator(FIRST_NAME, new FirstNameGenerator());
addGenerator(LAST_NAME, new LastNameGenerator());
addGenerator(ID_CARD, new IdCardGenerator());
addGenerator(ID_CARD_CHECK_DIGIT, new IdCardCheckDigitGenerator());
addGenerator(PASSPORT_NUMBER, new PassportGenerator());
addGenerator(MOBILE_PHONE_NUMBER, new MobilePhoneNumberGenerator());
addGenerator(FIX_LINE_PHONE_NUMBER, new FixLinePhoneNumberGenerator());
addGenerator(ICO, new IcoGenerator());
addGenerator(SIPO, new SipoGenerator());
addGenerator(ACCOUNT_NUMBER, new AccountNumberGenerator());
addGenerator(RESIDENCY_ADDRESS, new ResidencyAddressGenerator());
addGenerator(EMPLOYER, new EmployerGenerator());
}
}