Search in sources :

Example 6 with Given

use of io.cucumber.java.en.Given in project syndesis-qe by syndesisio.

the class MongoDBValidationSteps method createCappedCollection.

@Given("create mongodb capped collection {string} with size {int} and max {int}")
public void createCappedCollection(String collectionName, int size, int max) {
    database.getCollection(collectionName).drop();
    CreateCollectionOptions options = new CreateCollectionOptions().capped(true).sizeInBytes(size).maxDocuments(max);
    database.createCollection(collectionName, options);
}
Also used : CreateCollectionOptions(com.mongodb.client.model.CreateCollectionOptions) Given(io.cucumber.java.en.Given)

Example 7 with Given

use of io.cucumber.java.en.Given in project syndesis-qe by syndesisio.

the class CommonSteps method createConnections.

@Given("^created connections$")
public void createConnections(DataTable connectionsData) {
    Connections connectionsPage = new Connections();
    ConfigureConnectionSteps configureConnectionSteps = new ConfigureConnectionSteps();
    NameConnectionSteps nameConnectionSteps = new NameConnectionSteps();
    List<List<String>> dataTable = connectionsData.cells();
    for (List<String> dataRow : dataTable) {
        String connectionType = validateConnectorName(dataRow.get(0));
        String connectionCredentialsName = dataRow.get(1);
        String connectionName = dataRow.get(2);
        String connectionDescription = dataRow.get(3);
        if ("Gmail".equalsIgnoreCase(connectionType) || "Google Calendar".equalsIgnoreCase(connectionType)) {
            Account a = AccountsDirectory.getInstance().get(connectionCredentialsName);
            GoogleAccount googleAccount = googleAccounts.getGoogleAccountForTestAccount(connectionCredentialsName);
            a.getProperties().put("accessToken", googleAccount.getCredential().getAccessToken());
        }
        navigateTo("Connections");
        validatePage("Connections");
        ElementsCollection connections = connectionsPage.getAllConnections();
        connections = connections.filter(exactText(connectionName));
        try {
            if (connections.size() != 0) {
                log.warn("Connection {} already exists!", connectionName);
                continue;
            }
        } catch (org.openqa.selenium.StaleElementReferenceException e) {
            // this may happen if page was "reloaded" before connections.size was processed, give it second try
            connections = connectionsPage.getAllConnections();
            connections = connections.filter(exactText(connectionName));
            if (connections.size() != 0) {
                log.warn("Connection {} already exists!", connectionName);
                continue;
            }
        }
        clickOnLink("Create Connection");
        log.info("Sleeping so jenkins has more time to load all connectors");
        TestUtils.sleepIgnoreInterrupt(TestConfiguration.getJenkinsDelay() * 1000);
        selectConnectionTypeSteps.selectConnectionType(connectionType);
        configureConnectionSteps.fillConnectionDetails(connectionCredentialsName);
        // do nothing if connection does not require any credentials
        if (!("no credentials".equalsIgnoreCase(connectionCredentialsName) || "no validation".equalsIgnoreCase(connectionDescription))) {
            clickOnButton("Validate");
            TestUtils.waitFor(() -> $$(Alert.ALL.getBy()).size() > 0, 2, 20, "Any notification appears!");
            if (getAllAlerts(connectionType + " does not support validation", "info").size() > 0) {
                log.warn("Connection type " + connectionType + " doesn't support validation. The test suite assumes that set credentials are correct.");
            } else {
                successNotificationIsPresentWithError(connectionType + " has been successfully validated", "success");
            }
            scrollTo("top", "right");
            clickOnButton("Next");
        } else if ("no validation".equalsIgnoreCase(connectionDescription)) {
            scrollTo("top", "right");
            clickOnButton("Next");
        }
        nameConnectionSteps.setConnectionName(connectionName);
        nameConnectionSteps.setConnectionDescription(connectionDescription);
        clickOnButton("Save");
        try {
            TestUtils.sleepForJenkinsDelayIfHigher(2);
            OpenShiftWaitUtils.waitFor(() -> !syndesisRootPage.getCurrentUrl().contains("connections/create"), 2, 20);
        } catch (TimeoutException | InterruptedException e) {
            clickOnButton("Save");
            TestUtils.waitFor(() -> !syndesisRootPage.getCurrentUrl().contains("connections/create"), 2, 20, "Unable to create a connection - create button does nothing.");
        }
    }
}
Also used : Connections(io.syndesis.qe.pages.connections.Connections) GoogleAccount(io.syndesis.qe.utils.google.GoogleAccount) Account(io.syndesis.qe.account.Account) GoogleAccount(io.syndesis.qe.utils.google.GoogleAccount) ConfigureConnectionSteps(io.syndesis.qe.steps.connections.wizard.phases.ConfigureConnectionSteps) NameConnectionSteps(io.syndesis.qe.steps.connections.wizard.phases.NameConnectionSteps) ElementsCollection(com.codeborne.selenide.ElementsCollection) List(java.util.List) ArrayList(java.util.ArrayList) TimeoutException(java.util.concurrent.TimeoutException) Given(io.cucumber.java.en.Given)

Example 8 with Given

use of io.cucumber.java.en.Given in project syndesis-qe by syndesisio.

the class ConnectionSteps method createConnectionsWithoutValidation.

/**
 * TODO: This is temporary solution. Unify with createConnections in CommonSteps
 */
@Given("^creates connections without validation$")
public void createConnectionsWithoutValidation(DataTable connectionsData) {
    Connections connectionsLayout = new Connections();
    CommonSteps cs = new CommonSteps();
    ConfigureConnectionSteps configureConnectionSteps = new ConfigureConnectionSteps();
    NameConnectionSteps nameConnectionSteps = new NameConnectionSteps();
    List<List<String>> dataTable = connectionsData.cells();
    for (List<String> dataRow : dataTable) {
        String connectionType = dataRow.get(0);
        String connectionCredentialsName = dataRow.get(1);
        String connectionName = dataRow.get(2);
        String connectionDescription = dataRow.get(3);
        cs.navigateTo("Connections");
        cs.validatePage("Connections");
        ElementsCollection connections = connectionsLayout.getAllConnections();
        connections = connections.filter(exactText(connectionName));
        if (connections.size() != 0) {
            log.warn("Connection {} already exists!", connectionName);
        } else {
            cs.clickOnButton("Create Connection");
            selectConnectionTypeSteps.selectConnectionType(connectionType);
            configureConnectionSteps.fillConnectionDetails(connectionCredentialsName);
            cs.scrollTo("top", "right");
            cs.clickOnButton("Next");
            nameConnectionSteps.setConnectionName(connectionName);
            nameConnectionSteps.setConnectionDescription(connectionDescription);
            cs.clickOnButton("Create");
        }
    }
}
Also used : Connections(io.syndesis.qe.pages.connections.Connections) ElementsCollection(com.codeborne.selenide.ElementsCollection) ConfigureConnectionSteps(io.syndesis.qe.steps.connections.wizard.phases.ConfigureConnectionSteps) NameConnectionSteps(io.syndesis.qe.steps.connections.wizard.phases.NameConnectionSteps) CommonSteps(io.syndesis.qe.steps.CommonSteps) ArrayList(java.util.ArrayList) List(java.util.List) Given(io.cucumber.java.en.Given)

Example 9 with Given

use of io.cucumber.java.en.Given in project syndesis-qe by syndesisio.

the class ExtensionSteps method uploadExtensionFromSyndesisExtensionsDirUsingDragAndDrop.

@Given("^upload extension \"([^\"]*)\" from syndesis-extensions dir using drag and drop$")
public void uploadExtensionFromSyndesisExtensionsDirUsingDragAndDrop(String extensionFolderName) throws Throwable {
    String defaultPath = "../syndesis-extensions/" + extensionFolderName + "/target/";
    File[] files = new File(defaultPath).listFiles((dir, name) -> !name.contains("original") && name.endsWith(".jar"));
    assertThat(files).hasSize(1).doesNotContainNull();
    String techExtensionUrl = defaultPath + files[0].getName();
    Path techExtensionJar = Paths.get(techExtensionUrl).toAbsolutePath();
    assertThat(techExtensionJar.toFile()).exists();
    DragAndDropFile.dragAndDropFile(new File(techExtensionJar.toUri()), $(By.className("dnd-file-chooser")).shouldBe(visible), By.className("extension-import-review__title"));
    TestUtils.sleepForJenkinsDelayIfHigher(20);
}
Also used : Path(java.nio.file.Path) UploadFile(io.syndesis.qe.utils.UploadFile) File(java.io.File) DragAndDropFile(io.syndesis.qe.utils.DragAndDropFile) Given(io.cucumber.java.en.Given)

Example 10 with Given

use of io.cucumber.java.en.Given in project syndesis-qe by syndesisio.

the class GMailSteps method deleteMailsFromCreds.

@Given("^delete emails from credentials \"([^\"]*)\" with subject \"([^\"]*)\"$")
public void deleteMailsFromCreds(String creds, String subject) {
    Account account = AccountsDirectory.getInstance().get(creds);
    gmu.deleteMessages(account.getProperty("username"), subject);
}
Also used : Account(io.syndesis.qe.account.Account) GoogleAccount(io.syndesis.qe.utils.google.GoogleAccount) Given(io.cucumber.java.en.Given)

Aggregations

Given (io.cucumber.java.en.Given)125 ReadSettingsHelper.getString (org.opensmartgridplatform.cucumber.core.ReadSettingsHelper.getString)27 ArrayList (java.util.ArrayList)11 Transactional (org.springframework.transaction.annotation.Transactional)11 Ssld (org.opensmartgridplatform.domain.core.entities.Ssld)8 Date (java.util.Date)7 DeviceOutputSetting (org.opensmartgridplatform.domain.core.entities.DeviceOutputSetting)6 ActivityCalendar (org.opensmartgridplatform.cucumber.platform.smartmetering.support.ws.smartmetering.bundle.activitycalendar.ActivityCalendar)5 Device (org.opensmartgridplatform.domain.core.entities.Device)5 RelayType (org.opensmartgridplatform.domain.core.valueobjects.RelayType)5 ByteString (com.google.protobuf.ByteString)4 Account (io.syndesis.qe.account.Account)4 File (java.io.File)4 List (java.util.List)4 ElementsCollection (com.codeborne.selenide.ElementsCollection)3 Field (java.lang.reflect.Field)3 HashMap (java.util.HashMap)3 ResponseData (org.opensmartgridplatform.adapter.ws.domain.entities.ResponseData)3 ResponseDataBuilder (org.opensmartgridplatform.cucumber.platform.glue.steps.database.ws.ResponseDataBuilder)3 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)2