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()); } }