[e2e] Update module structure (#2641)

This commit is contained in:
Vlad Senyuta 2022-09-26 16:02:48 +03:00 committed by GitHub
parent bae5c39cf2
commit eb062359a9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 166 additions and 228 deletions

View file

@ -13,6 +13,7 @@ import com.provectus.kafka.ui.api.model.TopicCreation;
import com.provectus.kafka.ui.models.Connector; import com.provectus.kafka.ui.models.Connector;
import com.provectus.kafka.ui.models.Schema; import com.provectus.kafka.ui.models.Schema;
import com.provectus.kafka.ui.models.Topic; import com.provectus.kafka.ui.models.Topic;
import com.provectus.kafka.ui.settings.Source;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.reactive.function.client.WebClientResponseException; import org.springframework.web.reactive.function.client.WebClientResponseException;
@ -21,7 +22,7 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import static com.codeborne.selenide.Selenide.sleep; import static com.codeborne.selenide.Selenide.sleep;
import static com.provectus.kafka.ui.extensions.FileUtils.fileToString; import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
@Slf4j @Slf4j
@ -29,7 +30,7 @@ public class ApiHelper {
int partitions = 1; int partitions = 1;
int replicationFactor = 1; int replicationFactor = 1;
String baseURL = TestConfiguration.BASE_API_URL; String baseURL = Source.BASE_API_URL;
@SneakyThrows @SneakyThrows

View file

@ -1,21 +0,0 @@
package com.provectus.kafka.ui.helpers;
public class TestConfiguration {
public static boolean CLEAR_REPORTS_DIR =
Boolean.parseBoolean(System.getProperty("CLEAR_REPORTS_DIR", "true"));
public static String BASE_API_URL = System.getProperty("BASE_URL", "http://localhost:8080");
public static String BASE_WEB_URL = System.getProperty("BASE_DOCKER_URL", "http://host.testcontainers.internal:8080");
public static boolean USE_LOCAL_BROWSER =
Boolean.parseBoolean(System.getProperty("USE_LOCAL_BROWSER", "true"));
public static String REPORTS_FOLDER = System.getProperty("REPORTS_FOLDER", "allure-results");
public static Boolean SCREENSHOTS =
Boolean.parseBoolean(System.getProperty("SCREENSHOTS", "true"));
public static Boolean SAVE_PAGE_SOURCE =
Boolean.parseBoolean(System.getProperty("SAVE_PAGE_SOURCE", "false"));
public static Boolean REOPEN_BROWSER_ON_FAIL =
Boolean.parseBoolean(System.getProperty("REOPEN_BROWSER_ON_FAIL", "true"));
public static String BROWSER = System.getProperty("BROWSER", "chromium");
public static String BROWSER_SIZE = System.getProperty("BROWSER_SIZE", "1920x1080");
public static Boolean ENABLE_VNC = Boolean.parseBoolean(System.getProperty("ENABLE_VNC", "true"));
}

View file

@ -3,8 +3,8 @@ package com.provectus.kafka.ui.pages;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Selenide; import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.utilities.WaitUtils;
import com.provectus.kafka.ui.helpers.TestConfiguration; import com.provectus.kafka.ui.settings.Source;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
@ -19,7 +19,7 @@ public class MainPage {
@Step @Step
public MainPage goTo() { public MainPage goTo() {
Selenide.open(TestConfiguration.BASE_WEB_URL + path); Selenide.open(Source.BASE_WEB_URL + path);
return this; return this;
} }

View file

@ -2,15 +2,15 @@ package com.provectus.kafka.ui.pages.connector;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.utilities.WaitUtils;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.sleep; import static com.codeborne.selenide.Selenide.sleep;
import static com.provectus.kafka.ui.screenshots.Screenshooter.log; import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
import static com.provectus.kafka.ui.utilities.screenshots.Screenshooter.log;
@ExtensionMethod(WaitUtils.class) @ExtensionMethod(WaitUtils.class)
public class ConnectorCreateView { public class ConnectorCreateView {
@ -28,7 +28,7 @@ public class ConnectorCreateView {
contentTextArea.setValue(""); contentTextArea.setValue("");
contentTextArea.setValue(String.valueOf(configJson.toCharArray())); contentTextArea.setValue(String.valueOf(configJson.toCharArray()));
nameField.click(); nameField.click();
BrowserUtils.javaExecutorClick(submitButton); javaExecutorClick(submitButton);
sleep(4000); sleep(4000);
log.info("Connector config is submitted"); log.info("Connector config is submitted");
return new ConnectorsView(); return new ConnectorsView();

View file

@ -1,49 +0,0 @@
package com.provectus.kafka.ui.pages.connector;
import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import static com.codeborne.selenide.Selectors.byLinkText;
import static com.codeborne.selenide.Selenide.*;
import static com.provectus.kafka.ui.screenshots.Screenshooter.log;
public class ConnectorUpdateView {
SelenideElement submitButton = $(By.xpath("//button[@type='submit']"));
SelenideElement contentTextArea = $("[wrap]");
@Step("Update connector from new JSON")
public ConnectorUpdateView updateConnectorConfig(String configJson) {
BrowserUtils.javaExecutorClick($("#config"));
String str = configJson.replace("\r\n", "");
executeJavaScript(
"function clearAndNot(){" +
"var editor = ace.edit('config');" +
"editor.setValue(\"\");" +
"editor.setValue('" + str + "');}" +
"clearAndNot();");
$("#config").click();
submitButton.click();
$(byLinkText("Edit Config")).shouldBe(Condition.visible);
sleep(3000);
return this;
}
@Step("Set connector config JSON")
public ConnectorsView updConnectorConfig(String configJson) {
$("#config").click();
contentTextArea.sendKeys(Keys.LEFT_CONTROL+"a");
contentTextArea.setValue("");
contentTextArea.setValue(String.valueOf(configJson.toCharArray()));
$("#config").click();
submitButton.shouldBe(Condition.enabled);
BrowserUtils.javaExecutorClick(submitButton);
sleep(4000);
log.info("Connector config is submitted");
return new ConnectorsView();
}
}

View file

@ -2,16 +2,16 @@ package com.provectus.kafka.ui.pages.connector;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Selenide; import com.codeborne.selenide.Selenide;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.utilities.WaitUtils;
import com.provectus.kafka.ui.helpers.TestConfiguration; import com.provectus.kafka.ui.settings.Source;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.$x; import static com.codeborne.selenide.Selenide.$x;
import static com.provectus.kafka.ui.extensions.WebUtils.isVisible; import static com.provectus.kafka.ui.utilities.WebUtils.isVisible;
import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
@ExtensionMethod(WaitUtils.class) @ExtensionMethod(WaitUtils.class)
public class ConnectorsList { public class ConnectorsList {
@ -20,7 +20,7 @@ public class ConnectorsList {
@Step("Open URL to {cluster}") @Step("Open URL to {cluster}")
public ConnectorsList goTo(String cluster) { public ConnectorsList goTo(String cluster) {
Selenide.open(TestConfiguration.BASE_WEB_URL + String.format(path, cluster)); Selenide.open(Source.BASE_WEB_URL + String.format(path, cluster));
return this; return this;
} }
@ -32,7 +32,7 @@ public class ConnectorsList {
@Step("Click on button 'Create Connector'") @Step("Click on button 'Create Connector'")
public ConnectorCreateView clickCreateConnectorButton() { public ConnectorCreateView clickCreateConnectorButton() {
BrowserUtils.javaExecutorClick($x("//button[text()='Create Connector']")); javaExecutorClick($x("//button[text()='Create Connector']"));
return new ConnectorCreateView(); return new ConnectorCreateView();
} }

View file

@ -3,44 +3,62 @@ package com.provectus.kafka.ui.pages.connector;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Selenide; import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.helpers.TestConfiguration; import com.provectus.kafka.ui.settings.Source;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.utilities.WaitUtils;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.*;
import static com.codeborne.selenide.Selenide.$x; import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
import static com.provectus.kafka.ui.utilities.screenshots.Screenshooter.log;
@ExtensionMethod(WaitUtils.class) @ExtensionMethod(WaitUtils.class)
public class ConnectorsView { public class ConnectorsView {
private static final String path = "/ui/clusters/%s/connects/first/connectors/%s"; private static final String path = "/ui/clusters/%s/connects/first/connectors/%s";
protected SelenideElement submitButton = $(By.xpath("//button[@type='submit']"));
protected SelenideElement contentTextArea = $("[wrap]");
@Step @Step
public ConnectorsView goTo(String cluster, String connector) { public ConnectorsView goTo(String cluster, String connector) {
Selenide.open(String.format(TestConfiguration.BASE_WEB_URL + path, cluster, connector)); Selenide.open(String.format(Source.BASE_WEB_URL + path, cluster, connector));
return this; return this;
} }
@Step() @Step()
public ConnectorUpdateView openConfigTab() { public ConnectorsView openConfigTab() {
BrowserUtils.javaExecutorClick($(By.xpath("//a[text() ='Config']"))); javaExecutorClick($(By.xpath("//a[text() ='Config']")));
return new ConnectorUpdateView(); return new ConnectorsView();
}
@Step("Set connector config JSON")
public ConnectorsView setConfig(String configJson) {
$("#config").click();
contentTextArea.sendKeys(Keys.LEFT_CONTROL+"a");
contentTextArea.setValue("");
contentTextArea.setValue(String.valueOf(configJson.toCharArray()));
$("#config").click();
submitButton.shouldBe(Condition.enabled);
javaExecutorClick(submitButton);
sleep(4000);
log.info("Connector config is submitted");
return new ConnectorsView();
} }
@Step("Click 'Delete' button") @Step("Click 'Delete' button")
public void clickDeleteButton() { public void clickDeleteButton() {
BrowserUtils.javaExecutorClick($x("//button[text()='Delete']")); javaExecutorClick($x("//button[text()='Delete']"));
SelenideElement confirmButton = $x("//div[@role=\"dialog\"]//button[text()='Confirm']"); SelenideElement confirmButton = $x("//div[@role=\"dialog\"]//button[text()='Confirm']");
confirmButton.shouldBe(Condition.enabled).click(); confirmButton.shouldBe(Condition.enabled).click();
confirmButton.shouldBe(Condition.disappear); confirmButton.shouldBe(Condition.disappear);
} }
@Step @Step
public void connectorIsVisibleOnOverview() { public ConnectorsView waitUntilScreenReady() {
$(By.xpath("//a[text() ='Tasks']")).shouldBe(Condition.visible); $(By.xpath("//a[text() ='Tasks']")).shouldBe(Condition.visible);
$(By.xpath("//a[text() ='Config']")).shouldBe(Condition.visible); $(By.xpath("//a[text() ='Config']")).shouldBe(Condition.visible);
$(By.xpath("//a[text() ='Overview']")).shouldBe(Condition.visible); $(By.xpath("//a[text() ='Overview']")).shouldBe(Condition.visible);
return this;
} }
} }

View file

@ -2,12 +2,12 @@ package com.provectus.kafka.ui.pages.schema;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.api.model.SchemaType; import com.provectus.kafka.ui.api.model.SchemaType;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.$x; import static com.codeborne.selenide.Selenide.$x;
import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
public class SchemaCreateView { public class SchemaCreateView {
@ -22,7 +22,7 @@ public class SchemaCreateView {
} }
@Step @Step
public SchemaView clickSubmit() { public SchemaView clickSubmit() {
BrowserUtils.javaExecutorClick(submitSchemaButton); javaExecutorClick(submitSchemaButton);
return new SchemaView(); return new SchemaView();
} }
@Step @Step

View file

@ -5,13 +5,13 @@ import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.api.model.CompatibilityLevel; import com.provectus.kafka.ui.api.model.CompatibilityLevel;
import com.provectus.kafka.ui.api.model.SchemaType; import com.provectus.kafka.ui.api.model.SchemaType;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.Keys; import org.openqa.selenium.Keys;
import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.$x; import static com.codeborne.selenide.Selenide.$x;
import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
public class SchemaEditView { public class SchemaEditView {
@ -32,7 +32,7 @@ public class SchemaEditView {
} }
@Step @Step
public SchemaView clickSubmit() { public SchemaView clickSubmit() {
BrowserUtils.javaExecutorClick($(By.xpath("//button[@type='submit']"))); javaExecutorClick($(By.xpath("//button[@type='submit']")));
return new SchemaView(); return new SchemaView();
} }

View file

@ -2,12 +2,12 @@ package com.provectus.kafka.ui.pages.schema;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import static com.codeborne.selenide.Selenide.*; import static com.codeborne.selenide.Selenide.*;
import static com.provectus.kafka.ui.extensions.WebUtils.isVisible; import static com.provectus.kafka.ui.utilities.WebUtils.isVisible;
import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
public class SchemaRegistryList { public class SchemaRegistryList {
@ -15,7 +15,7 @@ public class SchemaRegistryList {
@Step @Step
public SchemaCreateView clickCreateSchema() { public SchemaCreateView clickCreateSchema() {
BrowserUtils.javaExecutorClick(schemaButton); javaExecutorClick(schemaButton);
return new SchemaCreateView(); return new SchemaCreateView();
} }

View file

@ -2,11 +2,12 @@ package com.provectus.kafka.ui.pages.schema;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import static com.codeborne.selenide.Selenide.*; import static com.codeborne.selenide.Selenide.*;
import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
public class SchemaView { public class SchemaView {
protected SelenideElement dotMenuBtn = $$x("//button[@aria-label='Dropdown Toggle']").first(); protected SelenideElement dotMenuBtn = $$x("//button[@aria-label='Dropdown Toggle']").first();
@ -29,7 +30,7 @@ public class SchemaView {
} }
@Step @Step
public SchemaRegistryList removeSchema() { public SchemaRegistryList removeSchema() {
BrowserUtils.javaExecutorClick(dotMenuBtn); javaExecutorClick(dotMenuBtn);
$(By.xpath("//*[contains(text(),'Remove')]")).click(); $(By.xpath("//*[contains(text(),'Remove')]")).click();
SelenideElement confirmButton = $x("//div[@role=\"dialog\"]//button[text()='Confirm']"); SelenideElement confirmButton = $x("//div[@role=\"dialog\"]//button[text()='Confirm']");
confirmButton.shouldBe(Condition.enabled).click(); confirmButton.shouldBe(Condition.enabled).click();

View file

@ -6,9 +6,9 @@ import com.codeborne.selenide.ElementsCollection;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import com.provectus.kafka.ui.utils.BrowserUtils;
import static com.codeborne.selenide.Selenide.*; import static com.codeborne.selenide.Selenide.*;
import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
public class TopicCreateEditSettingsView { public class TopicCreateEditSettingsView {
@ -83,7 +83,7 @@ public class TopicCreateEditSettingsView {
} }
@Step @Step
public TopicView sendData() { public TopicView sendData() {
BrowserUtils.javaExecutorClick($x("//button[@type='submit']")); javaExecutorClick($x("//button[@type='submit']"));
return new TopicView(); return new TopicView();
} }
@Step @Step

View file

@ -3,14 +3,14 @@ package com.provectus.kafka.ui.pages.topic;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Selenide; import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.utilities.WaitUtils;
import com.provectus.kafka.ui.helpers.TestConfiguration; import com.provectus.kafka.ui.settings.Source;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import static com.codeborne.selenide.Selenide.*; import static com.codeborne.selenide.Selenide.*;
import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
@ExtensionMethod({WaitUtils.class}) @ExtensionMethod({WaitUtils.class})
public class TopicView { public class TopicView {
@ -20,7 +20,7 @@ public class TopicView {
@Step @Step
public TopicView goTo(String cluster, String topic) { public TopicView goTo(String cluster, String topic) {
Selenide.open(TestConfiguration.BASE_WEB_URL + String.format(URL_PATH, cluster, topic)); Selenide.open(Source.BASE_WEB_URL + String.format(URL_PATH, cluster, topic));
return this; return this;
} }
@ -32,7 +32,7 @@ public class TopicView {
@Step @Step
public TopicCreateEditSettingsView openEditSettings() { public TopicCreateEditSettingsView openEditSettings() {
BrowserUtils.javaExecutorClick(dotMenuBtn); javaExecutorClick(dotMenuBtn);
$x("//li[@role][text()='Edit settings']").click(); $x("//li[@role][text()='Edit settings']").click();
return new TopicCreateEditSettingsView(); return new TopicCreateEditSettingsView();
} }
@ -45,7 +45,7 @@ public class TopicView {
@Step @Step
public TopicsList deleteTopic() { public TopicsList deleteTopic() {
BrowserUtils.javaExecutorClick(dotMenuBtn); javaExecutorClick(dotMenuBtn);
$x("//ul[@role='menu']//div[text()='Remove Topic']").click(); $x("//ul[@role='menu']//div[text()='Remove Topic']").click();
SelenideElement confirmButton = $x("//div[@role=\"dialog\"]//button[text()='Confirm']"); SelenideElement confirmButton = $x("//div[@role=\"dialog\"]//button[text()='Confirm']");
confirmButton.shouldBe(Condition.enabled).click(); confirmButton.shouldBe(Condition.enabled).click();
@ -55,7 +55,7 @@ public class TopicView {
@Step @Step
public ProduceMessagePanel clickOnButton(String buttonName) { public ProduceMessagePanel clickOnButton(String buttonName) {
BrowserUtils.javaExecutorClick($(By.xpath(String.format("//div//button[text()='%s']", buttonName)))); javaExecutorClick($(By.xpath(String.format("//div//button[text()='%s']", buttonName))));
return new ProduceMessagePanel(); return new ProduceMessagePanel();
} }

View file

@ -3,15 +3,15 @@ package com.provectus.kafka.ui.pages.topic;
import com.codeborne.selenide.CollectionCondition; import com.codeborne.selenide.CollectionCondition;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Selenide; import com.codeborne.selenide.Selenide;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.utilities.WaitUtils;
import com.provectus.kafka.ui.helpers.TestConfiguration; import com.provectus.kafka.ui.settings.Source;
import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import static com.codeborne.selenide.Selenide.*; import static com.codeborne.selenide.Selenide.*;
import static com.provectus.kafka.ui.extensions.WebUtils.isVisible; import static com.provectus.kafka.ui.utilities.WebUtils.isVisible;
import static com.provectus.kafka.ui.utilities.WebUtils.javaExecutorClick;
@ExtensionMethod(WaitUtils.class) @ExtensionMethod(WaitUtils.class)
public class TopicsList { public class TopicsList {
@ -20,7 +20,7 @@ public class TopicsList {
@Step @Step
public TopicsList goTo(String cluster) { public TopicsList goTo(String cluster) {
Selenide.open(TestConfiguration.BASE_WEB_URL + String.format(path, cluster)); Selenide.open(Source.BASE_WEB_URL + String.format(path, cluster));
return this; return this;
} }
@ -33,7 +33,7 @@ public class TopicsList {
@Step @Step
public TopicCreateEditSettingsView pressCreateNewTopic() { public TopicCreateEditSettingsView pressCreateNewTopic() {
BrowserUtils.javaExecutorClick($x("//button[normalize-space(text()) ='Add a Topic']")); javaExecutorClick($x("//button[normalize-space(text()) ='Add a Topic']"));
return new TopicCreateEditSettingsView(); return new TopicCreateEditSettingsView();
} }

View file

@ -0,0 +1,7 @@
package com.provectus.kafka.ui.settings;
public abstract class Source {
public static String BASE_API_URL = System.getProperty("BASE_URL", "http://localhost:8080");
public static String BASE_WEB_URL = System.getProperty("BASE_DOCKER_URL", "http://host.testcontainers.internal:8080");
}

View file

@ -1,4 +1,4 @@
package com.provectus.kafka.ui.extensions; package com.provectus.kafka.ui.utilities;
import org.testcontainers.shaded.org.apache.commons.io.IOUtils; import org.testcontainers.shaded.org.apache.commons.io.IOUtils;

View file

@ -1,4 +1,4 @@
package com.provectus.kafka.ui.extensions; package com.provectus.kafka.ui.utilities;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;

View file

@ -1,12 +1,17 @@
package com.provectus.kafka.ui.extensions; package com.provectus.kafka.ui.utilities;
import com.codeborne.selenide.Condition; import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class WebUtils { public class WebUtils {
public static void javaExecutorClick(SelenideElement element){
Selenide.executeJavaScript("arguments[0].click();", element);
}
public static boolean isVisible(SelenideElement element) { public static boolean isVisible(SelenideElement element) {
boolean isVisible = false; boolean isVisible = false;
try { try {

View file

@ -1,12 +1,11 @@
package com.provectus.kafka.ui.utils; package com.provectus.kafka.ui.utilities.qaseIoUtils;
import org.junit.jupiter.api.DisplayNameGenerator;
import org.junit.platform.commons.util.ClassUtils; import org.junit.platform.commons.util.ClassUtils;
import org.junit.platform.commons.util.Preconditions; import org.junit.platform.commons.util.Preconditions;
import java.lang.reflect.Method; import java.lang.reflect.Method;
public class CamelCaseToSpacedDisplayNameGenerator implements DisplayNameGenerator { public class DisplayNameGenerator implements org.junit.jupiter.api.DisplayNameGenerator {
@Override @Override
public String generateDisplayNameForClass(Class<?> testClass) { public String generateDisplayNameForClass(Class<?> testClass) {
String name = testClass.getName(); String name = testClass.getName();

View file

@ -1,6 +1,5 @@
package com.provectus.kafka.ui.extensions; package com.provectus.kafka.ui.utilities.qaseIoUtils;
import com.provectus.kafka.ui.utils.qaseIO.TestCaseGenerator;
import io.qase.api.QaseClient; import io.qase.api.QaseClient;
import io.qase.api.StepStorage; import io.qase.api.StepStorage;
import io.qase.api.exceptions.QaseException; import io.qase.api.exceptions.QaseException;
@ -41,11 +40,9 @@ public class QaseExtension implements TestExecutionListener {
static { static {
String qaseApiToken = System.getProperty("QASEIO_API_TOKEN"); String qaseApiToken = System.getProperty("QASEIO_API_TOKEN");
if (qaseApiToken == null || StringUtils.isEmpty(qaseApiToken)) { if (qaseApiToken == null || StringUtils.isEmpty(qaseApiToken)) {
throw new RuntimeException("QaseIO API token should be present"); throw new RuntimeException("QaseIO API token should be present");
} }
if ("true".equalsIgnoreCase(System.getProperty("QASEIO_CREATE_TESTRUN"))) { if ("true".equalsIgnoreCase(System.getProperty("QASEIO_CREATE_TESTRUN"))) {
System.setProperty("QASE_RUN_NAME", "Automation run " + System.setProperty("QASE_RUN_NAME", "Automation run " +
new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date())); new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date()));
@ -56,7 +53,6 @@ public class QaseExtension implements TestExecutionListener {
System.setProperty("QASE_USE_BULK", "false"); System.setProperty("QASE_USE_BULK", "false");
} }
@Override @Override
public void executionStarted(TestIdentifier testIdentifier) { public void executionStarted(TestIdentifier testIdentifier) {
if (QaseClient.isEnabled() && testIdentifier.isTest()) { if (QaseClient.isEnabled() && testIdentifier.isTest()) {

View file

@ -1,7 +1,8 @@
package com.provectus.kafka.ui.utils.qaseIO; package com.provectus.kafka.ui.utilities.qaseIoUtils;
import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
import io.qase.api.QaseClient; import io.qase.api.QaseClient;
import io.qase.api.annotation.CaseId; import io.qase.api.annotation.CaseId;
import io.qase.client.ApiClient; import io.qase.client.ApiClient;
@ -9,14 +10,13 @@ import io.qase.client.api.CasesApi;
import io.qase.client.model.*; import io.qase.client.model.*;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.junit.Assert; import org.junit.Assert;
import org.junit.platform.engine.support.descriptor.MethodSource; import org.junit.platform.engine.support.descriptor.MethodSource;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import static io.qase.api.QaseClient.getConfig; import static io.qase.api.QaseClient.getConfig;
@ -146,9 +146,18 @@ public class TestCaseGenerator {
return true; return true;
} }
private static String formatTestCaseTitle(String testMethodName) {
String[] split = StringUtils.splitByCharacterTypeCamelCase(testMethodName);
String[] name = Arrays.stream(split).map(String::toLowerCase).toArray(String[]::new);
String[] subarray = ArrayUtils.subarray(name, 1, name.length);
ArrayList<String> stringList = new ArrayList<>(Arrays.asList(subarray));
stringList.add(0, StringUtils.capitalize(name[0]));
return StringUtils.join(stringList, " ");
}
public static String generateTestCaseTitle(Method testMethod) { public static String generateTestCaseTitle(Method testMethod) {
return getClassName(MethodSource.from(testMethod)) + "." + testMethod.getName() + " : " + return getClassName(MethodSource.from(testMethod)) + "." + testMethod.getName() + " : " +
MethodNameUtils.formatTestCaseTitle(testMethod.getName()); formatTestCaseTitle(testMethod.getName());
} }
private static String getClassName(MethodSource testSource) { private static String getClassName(MethodSource testSource) {

View file

@ -1,6 +1,6 @@
package com.provectus.kafka.ui.utils.qaseIO.annotation; package com.provectus.kafka.ui.utilities.qaseIoUtils.annotations;
import com.provectus.kafka.ui.utils.qaseIO.Status; import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View file

@ -1,4 +1,4 @@
package com.provectus.kafka.ui.utils.qaseIO.annotation; package com.provectus.kafka.ui.utilities.qaseIoUtils.annotations;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View file

@ -1,4 +1,4 @@
package com.provectus.kafka.ui.utils.qaseIO; package com.provectus.kafka.ui.utilities.qaseIoUtils.enums;
public enum Status { public enum Status {
AUTOMATED, TO_BE_AUTOMATED, MANUAL; AUTOMATED, TO_BE_AUTOMATED, MANUAL;

View file

@ -1,4 +1,4 @@
package com.provectus.kafka.ui.screenshots; package com.provectus.kafka.ui.utilities.screenshots;
public class NoReferenceScreenshotFoundException extends Throwable { public class NoReferenceScreenshotFoundException extends Throwable {
public NoReferenceScreenshotFoundException(String name) { public NoReferenceScreenshotFoundException(String name) {

View file

@ -1,4 +1,4 @@
package com.provectus.kafka.ui.screenshots; package com.provectus.kafka.ui.utilities.screenshots;
import io.qameta.allure.Allure; import io.qameta.allure.Allure;
import io.qameta.allure.Attachment; import io.qameta.allure.Attachment;
@ -29,7 +29,7 @@ public class Screenshooter {
private static final int PIXELS_THRESHOLD = private static final int PIXELS_THRESHOLD =
Integer.parseInt(System.getProperty("PIXELS_THRESHOLD", "200")); Integer.parseInt(System.getProperty("PIXELS_THRESHOLD", "200"));
private static final String SCREENSHOTS_FOLDER = private static final String SCREENSHOTS_FOLDER =
System.getProperty("SCREENSHOTS_FOLDER", "com/provectus/kafka/ui/screenshots/"); System.getProperty("SCREENSHOTS_FOLDER", "com/provectus/kafka/ui/utilities/screenshots/");
private static final String DIFF_SCREENSHOTS_FOLDER = private static final String DIFF_SCREENSHOTS_FOLDER =
System.getProperty("DIFF_SCREENSHOTS_FOLDER", "build/__diff__/"); System.getProperty("DIFF_SCREENSHOTS_FOLDER", "build/__diff__/");
private static final String ACTUAL_SCREENSHOTS_FOLDER = private static final String ACTUAL_SCREENSHOTS_FOLDER =

View file

@ -1,23 +0,0 @@
package com.provectus.kafka.ui.utils;
import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.SelenideElement;
import org.openqa.selenium.NoSuchElementException;
public class BrowserUtils {
public static void javaExecutorClick(SelenideElement element){
Selenide.executeJavaScript("arguments[0].click();", element);
}
public static void waitElementPresentJavaExecutor( SelenideElement element ) {
try {
Selenide.executeJavaScript("return typeof(arguments[0]) != 'undefined' && arguments[0] != null;",
element);
}
catch(org.openqa.selenium.StaleElementReferenceException | NoSuchElementException ex){
Selenide.executeJavaScript("return typeof(arguments[0]) != 'undefined' && arguments[0] != null;",
element);
}
}
}

View file

@ -1,23 +0,0 @@
package com.provectus.kafka.ui.utils.qaseIO;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
public class MethodNameUtils {
public static String formatTestCaseTitle(String testMethodName) {
String[] split = StringUtils.splitByCharacterTypeCamelCase(testMethodName);
String[] name = Arrays.stream(split).map(String::toLowerCase).toArray(String[]::new);
String[] subarray = ArrayUtils.subarray(name, 1, name.length);
ArrayList<String> stringList = new ArrayList<>(Arrays.asList(subarray));
stringList.add(0, StringUtils.capitalize(name[0]));
return StringUtils.join(stringList, " ");
}
}

View file

@ -1 +1 @@
com.provectus.kafka.ui.extensions.QaseExtension com.provectus.kafka.ui.utilities.qaseIoUtils.QaseExtension

View file

@ -1,8 +1,8 @@
package com.provectus.kafka.ui; package com.provectus.kafka.ui;
import com.provectus.kafka.ui.base.BaseTest; import com.provectus.kafka.ui.base.BaseTest;
import com.provectus.kafka.ui.utils.qaseIO.Status; import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
import io.qase.api.annotation.CaseId; import io.qase.api.annotation.CaseId;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;

View file

@ -4,11 +4,10 @@ import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.WebDriverRunner; import com.codeborne.selenide.WebDriverRunner;
import com.codeborne.selenide.logevents.SelenideLogger; import com.codeborne.selenide.logevents.SelenideLogger;
import com.provectus.kafka.ui.helpers.Helpers; import com.provectus.kafka.ui.helpers.Helpers;
import com.provectus.kafka.ui.helpers.TestConfiguration;
import com.provectus.kafka.ui.pages.Pages; import com.provectus.kafka.ui.pages.Pages;
import com.provectus.kafka.ui.screenshots.Screenshooter; import com.provectus.kafka.ui.utilities.qaseIoUtils.DisplayNameGenerator;
import com.provectus.kafka.ui.utils.CamelCaseToSpacedDisplayNameGenerator; import com.provectus.kafka.ui.utilities.qaseIoUtils.TestCaseGenerator;
import com.provectus.kafka.ui.utils.qaseIO.TestCaseGenerator; import com.provectus.kafka.ui.utilities.screenshots.Screenshooter;
import io.github.cdimascio.dotenv.Dotenv; import io.github.cdimascio.dotenv.Dotenv;
import io.qameta.allure.Allure; import io.qameta.allure.Allure;
import io.qameta.allure.selenide.AllureSelenide; import io.qameta.allure.selenide.AllureSelenide;
@ -32,7 +31,7 @@ import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
@Slf4j @Slf4j
@DisplayNameGeneration(CamelCaseToSpacedDisplayNameGenerator.class) @DisplayNameGeneration(DisplayNameGenerator.class)
public class BaseTest { public class BaseTest {
public static final String SELENIUM_IMAGE_NAME = "selenium/standalone-chrome:103.0"; public static final String SELENIUM_IMAGE_NAME = "selenium/standalone-chrome:103.0";
@ -103,7 +102,7 @@ public class BaseTest {
} }
} }
Dotenv.load().entries().forEach(env -> System.setProperty(env.getKey(), env.getValue())); Dotenv.load().entries().forEach(env -> System.setProperty(env.getKey(), env.getValue()));
if (TestConfiguration.CLEAR_REPORTS_DIR) { if (Config.CLEAR_REPORTS_DIR) {
clearReports(); clearReports();
} }
setup(); setup();
@ -125,28 +124,27 @@ public class BaseTest {
@SneakyThrows @SneakyThrows
private static void setup() { private static void setup() {
Configuration.reportsFolder = TestConfiguration.REPORTS_FOLDER; Configuration.reportsFolder = Config.REPORTS_FOLDER;
Configuration.screenshots = TestConfiguration.SCREENSHOTS; Configuration.screenshots = Config.SCREENSHOTS;
Configuration.savePageSource = TestConfiguration.SAVE_PAGE_SOURCE; Configuration.savePageSource = Config.SAVE_PAGE_SOURCE;
Configuration.reopenBrowserOnFail = TestConfiguration.REOPEN_BROWSER_ON_FAIL; Configuration.reopenBrowserOnFail = Config.REOPEN_BROWSER_ON_FAIL;
Configuration.browser = TestConfiguration.BROWSER; Configuration.browser = Config.BROWSER;
Configuration.baseUrl = TestConfiguration.BASE_WEB_URL;
Configuration.timeout = 10000; Configuration.timeout = 10000;
Configuration.pageLoadTimeout = 180000; Configuration.pageLoadTimeout = 180000;
Configuration.browserSize = TestConfiguration.BROWSER_SIZE; Configuration.browserSize = Config.BROWSER_SIZE;
SelenideLogger.addListener("allure", new AllureSelenide().savePageSource(false)); SelenideLogger.addListener("allure", new AllureSelenide().savePageSource(false));
} }
public static void clearReports() { public static void clearReports() {
log.info(String.format("Clearing reports dir [%s]...", TestConfiguration.REPORTS_FOLDER)); log.info(String.format("Clearing reports dir [%s]...", Config.REPORTS_FOLDER));
File allureResults = new File(TestConfiguration.REPORTS_FOLDER); File allureResults = new File(Config.REPORTS_FOLDER);
if (allureResults.isDirectory()) { if (allureResults.isDirectory()) {
File[] list = allureResults.listFiles(); File[] list = allureResults.listFiles();
if (list != null) { if (list != null) {
Arrays.stream(list) Arrays.stream(list)
.sequential() .sequential()
.filter(e -> !e.getName().equals("categories.json")) .filter(e -> !e.getName().equals("categories.json"))
.forEach(File::delete); .forEach(File::delete);
} }
} }
} }

View file

@ -0,0 +1,19 @@
package com.provectus.kafka.ui.base;
public abstract class Config {
public static boolean CLEAR_REPORTS_DIR =
Boolean.parseBoolean(System.getProperty("CLEAR_REPORTS_DIR", "true"));
public static boolean USE_LOCAL_BROWSER =
Boolean.parseBoolean(System.getProperty("USE_LOCAL_BROWSER", "true"));
public static String REPORTS_FOLDER = System.getProperty("REPORTS_FOLDER", "allure-results");
public static Boolean SCREENSHOTS =
Boolean.parseBoolean(System.getProperty("SCREENSHOTS", "true"));
public static Boolean SAVE_PAGE_SOURCE =
Boolean.parseBoolean(System.getProperty("SAVE_PAGE_SOURCE", "false"));
public static Boolean REOPEN_BROWSER_ON_FAIL =
Boolean.parseBoolean(System.getProperty("REOPEN_BROWSER_ON_FAIL", "true"));
public static String BROWSER = System.getProperty("BROWSER", "chromium");
public static String BROWSER_SIZE = System.getProperty("BROWSER_SIZE", "1920x1080");
public static Boolean ENABLE_VNC = Boolean.parseBoolean(System.getProperty("ENABLE_VNC", "true"));
}

View file

@ -4,16 +4,16 @@ import com.provectus.kafka.ui.base.BaseTest;
import com.provectus.kafka.ui.helpers.Helpers; import com.provectus.kafka.ui.helpers.Helpers;
import com.provectus.kafka.ui.models.Connector; import com.provectus.kafka.ui.models.Connector;
import com.provectus.kafka.ui.models.Topic; import com.provectus.kafka.ui.models.Topic;
import com.provectus.kafka.ui.utils.qaseIO.Status; import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
import io.qase.api.annotation.CaseId; import io.qase.api.annotation.CaseId;
import org.junit.jupiter.api.*; import org.junit.jupiter.api.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.provectus.kafka.ui.extensions.FileUtils.getResourceAsString; import static com.provectus.kafka.ui.utilities.FileUtils.getResourceAsString;
public class ConnectorsTests extends BaseTest { public class ConnectorsTests extends BaseTest {
private static final long SUITE_ID = 10; private static final long SUITE_ID = 10;
@ -80,9 +80,10 @@ public class ConnectorsTests extends BaseTest {
pages.openConnectorsList(CLUSTER_NAME) pages.openConnectorsList(CLUSTER_NAME)
.waitUntilScreenReady() .waitUntilScreenReady()
.openConnector(CONNECTOR_FOR_UPDATE.getName()); .openConnector(CONNECTOR_FOR_UPDATE.getName());
pages.connectorsView.connectorIsVisibleOnOverview(); pages.connectorsView
pages.connectorsView.openConfigTab() .waitUntilScreenReady()
.updConnectorConfig(CONNECTOR_FOR_UPDATE.getConfig()); .openConfigTab()
.setConfig(CONNECTOR_FOR_UPDATE.getConfig());
pages.openConnectorsList(CLUSTER_NAME); pages.openConnectorsList(CLUSTER_NAME);
Assertions.assertTrue(pages.connectorsList.isConnectorVisible(CONNECTOR_FOR_UPDATE.getName()),"isConnectorVisible()"); Assertions.assertTrue(pages.connectorsList.isConnectorVisible(CONNECTOR_FOR_UPDATE.getName()),"isConnectorVisible()");
} }

View file

@ -7,9 +7,9 @@ import com.provectus.kafka.ui.models.Schema;
import com.provectus.kafka.ui.pages.MainPage; import com.provectus.kafka.ui.pages.MainPage;
import com.provectus.kafka.ui.pages.schema.SchemaEditView; import com.provectus.kafka.ui.pages.schema.SchemaEditView;
import com.provectus.kafka.ui.pages.schema.SchemaView; import com.provectus.kafka.ui.pages.schema.SchemaView;
import com.provectus.kafka.ui.utils.qaseIO.Status; import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
import io.qase.api.annotation.CaseId; import io.qase.api.annotation.CaseId;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.junit.jupiter.api.*; import org.junit.jupiter.api.*;
@ -17,7 +17,7 @@ import org.junit.jupiter.api.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.provectus.kafka.ui.extensions.FileUtils.fileToString; import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class) @TestMethodOrder(MethodOrderer.OrderAnnotation.class)

View file

@ -6,9 +6,9 @@ import com.provectus.kafka.ui.models.Topic;
import com.provectus.kafka.ui.pages.MainPage; import com.provectus.kafka.ui.pages.MainPage;
import com.provectus.kafka.ui.pages.topic.TopicCreateEditSettingsView; import com.provectus.kafka.ui.pages.topic.TopicCreateEditSettingsView;
import com.provectus.kafka.ui.pages.topic.TopicView; import com.provectus.kafka.ui.pages.topic.TopicView;
import com.provectus.kafka.ui.utils.qaseIO.Status; import com.provectus.kafka.ui.utilities.qaseIoUtils.enums.Status;
import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.AutomationStatus;
import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; import com.provectus.kafka.ui.utilities.qaseIoUtils.annotations.Suite;
import io.qase.api.annotation.CaseId; import io.qase.api.annotation.CaseId;
import org.assertj.core.api.SoftAssertions; import org.assertj.core.api.SoftAssertions;
import org.junit.jupiter.api.*; import org.junit.jupiter.api.*;
@ -16,7 +16,7 @@ import org.junit.jupiter.api.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.provectus.kafka.ui.extensions.FileUtils.fileToString; import static com.provectus.kafka.ui.utilities.FileUtils.fileToString;
public class TopicTests extends BaseTest { public class TopicTests extends BaseTest {
private static final long SUITE_ID = 2; private static final long SUITE_ID = 2;