package cz.moneta.test.sandbox.connectiontests.seleniumnodes;

import cz.moneta.test.dsl.Harness;
import cz.moneta.test.harness.annotations.Environment;
import cz.moneta.test.harness.annotations.TestCase;
import cz.moneta.test.harness.annotations.TestScenario;
import org.junit.jupiter.api.Disabled;

@TestScenario(name = "Check Environment Web Connections")
public class WebConnectionTest {

    @TestCase(name = "Check Web TestAutomation Connection")
    public void testTestAutomationPageConnection(Harness harness) {
        harness.withTestAutomationPage()
                .openHomePage();
    }

    @Disabled(value = "Endpoint is not used anywhere")
    @TestCase(name = "Check Cashman Connection", environments = {Environment.TST1, Environment.DEV})
    public void testCashmanConnection(Harness harness) {
        harness.withCashman()
                .openCashmanHomePage();
    }

    @TestCase(name = "Check NewIB Connection", environments = {Environment.TST1, Environment.PPE, Environment.DEV, Environment.FVE})
    public void testNewIBConnection(Harness harness) {
        harness.withNewIb()
                .openLoginPage();
    }

    @Disabled(value = "Actually endpoint is not used from Jenkins")
    @TestCase(name = "Check Exevido Connection", environments = {Environment.TST1, Environment.PPE})
    public void testExevidoConnection(Harness harness) {
        harness.withExevido()
                .openLoginPage();
    }

    @TestCase(name = "Check Forge Connection", environments = {Environment.TST1, Environment.DEV})
    public void testForgeConnection(Harness harness) {
        harness.withForteLight()
                .openForteLightHomePage();
    }

    @TestCase(name = "Check Forte Connection", environments = {Environment.TST1, Environment.PPE, Environment.DEV})
    public void testForteConnection(Harness harness) {
        harness.withForte()
                .openForteHomePage();
    }

    @TestCase(name = "Check UFO Connection", environments = {Environment.TST1, Environment.PPE, Environment.DEV})
    public void testUfoConnection(Harness harness) {
        harness.withUfo()
                .openLoginPage();
    }

    @TestCase(name = "Check Hypos Connection", environments = {Environment.TST1, Environment.PPE})
    public void testHyposConnection(Harness harness) {
        harness.withHypos()
                .openLoginPage();
    }

    @TestCase(name = "Check Kasanova Connection", environments = {Environment.TST1})
    public void testKasanovaConnection(Harness harness) {
        harness.withKasanova()
                .openLoginPage();
    }

    @TestCase(name = "Check SalesForce Connection", environments = {Environment.TST1, Environment.PPE})
    public void testSalesForceConnection(Harness harness) {
        harness.withSalesForce()
                .openLoginPage();
    }

    @TestCase(name = "Check PayHub Connection", environments = {Environment.TST1, Environment.PPE})
    public void testPayHubConnection(Harness harness) {
        harness.withPaymentEngine()
                .openLoginPage();
    }
    
    @TestCase(name = "Check Moneta Portal Connection", environments = {Environment.TST1, Environment.PPE})
    public void testMonetaPortalConnection(Harness harness) {
        harness.withMonetaPortal()
                .openHomePage();
    }

    @TestCase(name = "Check Refinanso Connection", environments = {Environment.TST1, Environment.PPE})
    public void testRefinansoConnection(Harness harness) {
        harness.withRefinanso()
                .openHomePage();
    }

    @TestCase(name = "Check Broker Portal Connection", environments = {Environment.TST1, Environment.PPE})
    public void testBrokerPortalConnection(Harness harness) {
        harness.withBrokerPortal()
                .openLoginPage();
    }

    @TestCase(name = "Check Smart Auto Connection", environments = {Environment.TST1, Environment.PPE})
    public void testSmartAutoConnection(Harness harness) {
        harness.withSmartAuto()
                .openLoginPage();
    }

}