get rid of SheakyThrows annotation (#2470)

* Fix unstable e2e test #2373

* Fix unstable e2e test #2373

* Prepare steps for Schema Registry and Connector fixed #2288

* Fix unstable e2e test #2373

* Revert "Prepare steps for Schema Registry and Connector fixed #2288"

This reverts commit cfeb224e99.

* fix FileUtils

* Update FileUtils #2431

* Resolved MConflicts #2431Сopy

* Resolved MConflicts part2 #2431Сopy

* Updated ApiHelper and added annotations #2431Сopy

* Revert Objects.requireNonNull #2431Сopy

* Last update #2431Сopy

* Delete KaffkaSteps

* Update ApiHelper

Co-authored-by: anezboretskiy <anezboretskiy@modeln.com>
This commit is contained in:
Alexandr Nezboretskiy 2022-08-22 18:38:57 +03:00 committed by GitHub
parent d63c25e317
commit c0d64d7c56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 184 additions and 200 deletions

View file

@ -5,11 +5,23 @@ import org.testcontainers.shaded.org.apache.commons.io.IOUtils;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import static org.apache.kafka.common.utils.Utils.readFileAsString;
public class FileUtils { public class FileUtils {
public static String getResourceAsString(String resourceFileName) throws IOException { public static String getResourceAsString(String resourceFileName) {
try {
return IOUtils.resourceToString("/" + resourceFileName, StandardCharsets.UTF_8); return IOUtils.resourceToString("/" + resourceFileName, StandardCharsets.UTF_8);
} catch (IOException e) {
throw new RuntimeException(e);
}
} }
public static String fileToString(String path) {
try {
return readFileAsString(path);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
} }

View file

@ -3,11 +3,10 @@ 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.helpers.TestConfiguration;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.extensions.WaitUtils;
import com.provectus.kafka.ui.helpers.TestConfiguration;
import com.provectus.kafka.ui.pages.topic.TopicsList; import com.provectus.kafka.ui.pages.topic.TopicsList;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.SneakyThrows;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
@ -32,7 +31,6 @@ public class MainPage {
return this; return this;
} }
@SneakyThrows
@Step @Step
public void topicIsVisible(String topicName) { public void topicIsVisible(String topicName) {
new TopicsList().isTopicVisible(topicName); new TopicsList().isTopicVisible(topicName);

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.utils.BrowserUtils;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.extensions.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.provectus.kafka.ui.screenshots.Screenshooter.log; import static com.provectus.kafka.ui.screenshots.Screenshooter.log;
import static java.lang.Thread.sleep;
@ExtensionMethod(WaitUtils.class) @ExtensionMethod(WaitUtils.class)
public class ConnectorCreateView { public class ConnectorCreateView {
@ -22,7 +22,7 @@ public class ConnectorCreateView {
private static final String path = "/ui/clusters/secondLocal/connectors/create_new"; private static final String path = "/ui/clusters/secondLocal/connectors/create_new";
@Step("Set connector config JSON") @Step("Set connector config JSON")
public ConnectorsView setConnectorConfig(String connectName, String configJson) throws InterruptedException { public ConnectorsView setConnectorConfig(String connectName, String configJson) {
nameField.setValue(connectName); nameField.setValue(connectName);
$("#config").click(); $("#config").click();
contentTextArea.setValue(""); contentTextArea.setValue("");

View file

@ -2,11 +2,10 @@ 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.helpers.TestConfiguration; import com.provectus.kafka.ui.helpers.TestConfiguration;
import com.provectus.kafka.ui.utils.BrowserUtils; import com.provectus.kafka.ui.utils.BrowserUtils;
import com.provectus.kafka.ui.extensions.WaitUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.SneakyThrows;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
@ -35,14 +34,14 @@ public class ConnectorsList {
return new ConnectorCreateView(); return new ConnectorCreateView();
} }
@SneakyThrows
@Step @Step
public ConnectorsList openConnector(String connectorName) { public ConnectorsList openConnector(String connectorName) {
$(By.linkText(connectorName)).click(); $(By.linkText(connectorName)).click();
return this; return this;
} }
@SneakyThrows
@Step @Step
public ConnectorsList isNotVisible(String connectorName) { public ConnectorsList isNotVisible(String connectorName) {
$(By.xpath("//table")).shouldBe(Condition.visible); $(By.xpath("//table")).shouldBe(Condition.visible);

View file

@ -4,7 +4,6 @@ import com.codeborne.selenide.Condition;
import com.codeborne.selenide.SelenideElement; import com.codeborne.selenide.SelenideElement;
import com.provectus.kafka.ui.utils.BrowserUtils; import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.SneakyThrows;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import static com.codeborne.selenide.Selenide.*; import static com.codeborne.selenide.Selenide.*;
@ -23,7 +22,6 @@ public class SchemaRegistryList {
return new SchemaView(); return new SchemaView();
} }
@SneakyThrows
@Step @Step
public SchemaRegistryList isNotVisible(String schemaName) { public SchemaRegistryList isNotVisible(String schemaName) {
$x(String.format("//*[contains(text(),'%s')]", schemaName)).shouldNotBe(Condition.visible); $x(String.format("//*[contains(text(),'%s')]", schemaName)).shouldNotBe(Condition.visible);

View file

@ -3,12 +3,11 @@ 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.helpers.TestConfiguration;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.extensions.WaitUtils;
import com.provectus.kafka.ui.helpers.TestConfiguration;
import com.provectus.kafka.ui.pages.ProduceMessagePage; import com.provectus.kafka.ui.pages.ProduceMessagePage;
import com.provectus.kafka.ui.utils.BrowserUtils; import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.SneakyThrows;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
@ -34,7 +33,6 @@ public class TopicView {
return this; return this;
} }
@SneakyThrows
@Step @Step
public TopicCreateEditSettingsView openEditSettings() { public TopicCreateEditSettingsView openEditSettings() {
BrowserUtils.javaExecutorClick(dotMenuHeader); BrowserUtils.javaExecutorClick(dotMenuHeader);
@ -48,7 +46,6 @@ public class TopicView {
return this; return this;
} }
@SneakyThrows
@Step @Step
public TopicsList deleteTopic() { public TopicsList deleteTopic() {
BrowserUtils.javaExecutorClick(dotMenuHeader); BrowserUtils.javaExecutorClick(dotMenuHeader);
@ -57,7 +54,6 @@ public class TopicView {
return new TopicsList(); return new TopicsList();
} }
@SneakyThrows
@Step @Step
public ProduceMessagePage clickOnButton(String buttonName) { public ProduceMessagePage clickOnButton(String buttonName) {
BrowserUtils.javaExecutorClick($(By.xpath(String.format("//div//button[text()='%s']", buttonName)))); BrowserUtils.javaExecutorClick($(By.xpath(String.format("//div//button[text()='%s']", buttonName))));

View file

@ -3,11 +3,10 @@ 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.helpers.TestConfiguration;
import com.provectus.kafka.ui.extensions.WaitUtils; import com.provectus.kafka.ui.extensions.WaitUtils;
import com.provectus.kafka.ui.helpers.TestConfiguration;
import com.provectus.kafka.ui.utils.BrowserUtils; import com.provectus.kafka.ui.utils.BrowserUtils;
import io.qameta.allure.Step; import io.qameta.allure.Step;
import lombok.SneakyThrows;
import lombok.experimental.ExtensionMethod; import lombok.experimental.ExtensionMethod;
import org.openqa.selenium.By; import org.openqa.selenium.By;
@ -46,14 +45,12 @@ public class TopicsList {
return this; return this;
} }
@SneakyThrows
@Step @Step
public TopicView openTopic(String topicName) { public TopicView openTopic(String topicName) {
$(By.linkText(topicName)).click(); $(By.linkText(topicName)).click();
return new TopicView(); return new TopicView();
} }
@SneakyThrows
@Step @Step
public TopicsList isTopicNotVisible(String topicName) { public TopicsList isTopicNotVisible(String topicName) {
$$x("//table/tbody/tr/td[2]") $$x("//table/tbody/tr/td[2]")

View file

@ -16,6 +16,7 @@ import javax.imageio.ImageIO;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.nio.file.FileSystems; import java.nio.file.FileSystems;
import java.util.List; import java.util.List;
@ -57,7 +58,7 @@ public class Screenshooter {
compareScreenshots(name, false); compareScreenshots(name, false);
} }
@SneakyThrows
public void compareScreenshots(String name, boolean shouldUpdateScreenshotIfDiffer) { public void compareScreenshots(String name, boolean shouldUpdateScreenshotIfDiffer) {
if (TURN_OFF_SCREENSHOTS || USE_LOCAL_BROWSER) { if (TURN_OFF_SCREENSHOTS || USE_LOCAL_BROWSER) {
log.warn(String.format("compareScreenshots turned off due TURN_OFF_SCREENSHOTS || USE_LOCAL_BROWSER: %b || %b" log.warn(String.format("compareScreenshots turned off due TURN_OFF_SCREENSHOTS || USE_LOCAL_BROWSER: %b || %b"
@ -68,19 +69,27 @@ public class Screenshooter {
if (SHOULD_SAVE_SCREENSHOTS_IF_NOT_EXIST) { if (SHOULD_SAVE_SCREENSHOTS_IF_NOT_EXIST) {
updateActualScreenshot(name); updateActualScreenshot(name);
} else { } else {
try {
throw new NoReferenceScreenshotFoundException(name); throw new NoReferenceScreenshotFoundException(name);
} catch (NoReferenceScreenshotFoundException e) {
e.printStackTrace();
}
} }
} else { } else {
makeImageDiff(name, shouldUpdateScreenshotIfDiffer); makeImageDiff(name, shouldUpdateScreenshotIfDiffer);
} }
} }
@SneakyThrows
private void updateActualScreenshot(String name) { private void updateActualScreenshot(String name) {
Screenshot actual = Screenshot actual =
new AShot().coordsProvider(new WebDriverCoordsProvider()).takeScreenshot(getWebDriver()); new AShot().coordsProvider(new WebDriverCoordsProvider()).takeScreenshot(getWebDriver());
File file = newFile(SCREENSHOTS_FOLDER + name + ".png"); File file = newFile(SCREENSHOTS_FOLDER + name + ".png");
try {
ImageIO.write(actual.getImage(), "png", file); ImageIO.write(actual.getImage(), "png", file);
} catch (IOException e) {
e.printStackTrace();
}
log.debug(String.format("created screenshot: %s \n at %s", name, file.getAbsolutePath())); log.debug(String.format("created screenshot: %s \n at %s", name, file.getAbsolutePath()));
} }
@ -133,19 +142,19 @@ public class Screenshooter {
return bos2.toByteArray(); return bos2.toByteArray();
} }
@SneakyThrows
@Attachment @Attachment
private byte[] actual(String actualFileName) { private byte[] actual(String actualFileName) {
return imgToBytes(actualFileName); return imgToBytes(actualFileName);
} }
@SneakyThrows
@Attachment @Attachment
private byte[] expected(String expectedFileName) { private byte[] expected(String expectedFileName) {
return imgToBytes(expectedFileName); return imgToBytes(expectedFileName);
} }
@SneakyThrows
@Attachment @Attachment
private byte[] diff(String diffFileName) { private byte[] diff(String diffFileName) {
return imgToBytes(diffFileName); return imgToBytes(diffFileName);

View file

@ -4,7 +4,6 @@ import com.provectus.kafka.ui.base.BaseTest;
import com.provectus.kafka.ui.utils.qaseIO.Status; import com.provectus.kafka.ui.utils.qaseIO.Status;
import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus;
import io.qase.api.annotation.CaseId; import io.qase.api.annotation.CaseId;
import lombok.SneakyThrows;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -12,7 +11,6 @@ public class SmokeTests extends BaseTest {
@Test @Test
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@CaseId(198) @CaseId(198)
@SneakyThrows
@DisplayName("main page should load") @DisplayName("main page should load")
void mainPageLoads() { void mainPageLoads() {
pages.open() pages.open()

View file

@ -1,18 +1,18 @@
package com.provectus.kafka.ui.tests; package com.provectus.kafka.ui.tests;
import com.provectus.kafka.ui.base.BaseTest; import com.provectus.kafka.ui.base.BaseTest;
import com.provectus.kafka.ui.extensions.FileUtils;
import com.provectus.kafka.ui.helpers.ApiHelper; import com.provectus.kafka.ui.helpers.ApiHelper;
import com.provectus.kafka.ui.helpers.Helpers; import com.provectus.kafka.ui.helpers.Helpers;
import com.provectus.kafka.ui.utils.qaseIO.Status; import com.provectus.kafka.ui.utils.qaseIO.Status;
import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus;
import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite;
import io.qase.api.annotation.CaseId; import io.qase.api.annotation.CaseId;
import lombok.SneakyThrows;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite;
import static com.provectus.kafka.ui.extensions.FileUtils.getResourceAsString;
public class ConnectorsTests extends BaseTest { public class ConnectorsTests extends BaseTest {
@ -28,13 +28,12 @@ public class ConnectorsTests extends BaseTest {
public static final String CONNECTOR_FOR_UPDATE = "sink_postgres_activities_e2e_checks_for_update"; public static final String CONNECTOR_FOR_UPDATE = "sink_postgres_activities_e2e_checks_for_update";
@BeforeAll @BeforeAll
@SneakyThrows
public static void beforeAll() { public static void beforeAll() {
ApiHelper apiHelper = Helpers.INSTANCE.apiHelper; ApiHelper apiHelper = Helpers.INSTANCE.apiHelper;
String connectorToDelete = FileUtils.getResourceAsString("delete_connector_config.json"); String connectorToDelete = getResourceAsString("delete_connector_config.json");
String connectorToUpdate = FileUtils.getResourceAsString("config_for_create_connector_via_api.json"); String connectorToUpdate = getResourceAsString("config_for_create_connector_via_api.json");
String message = FileUtils.getResourceAsString("message_content_create_topic.json"); String message = getResourceAsString("message_content_create_topic.json");
apiHelper.deleteTopic(LOCAL_CLUSTER, CONNECTOR_FOR_DELETE); apiHelper.deleteTopic(LOCAL_CLUSTER, CONNECTOR_FOR_DELETE);
@ -52,7 +51,6 @@ public class ConnectorsTests extends BaseTest {
} }
@AfterAll @AfterAll
@SneakyThrows
public static void afterAll() { public static void afterAll() {
ApiHelper apiHelper = Helpers.INSTANCE.apiHelper; ApiHelper apiHelper = Helpers.INSTANCE.apiHelper;
apiHelper.deleteConnector(LOCAL_CLUSTER, FIRST_CONNECTOR, SINK_CONNECTOR); apiHelper.deleteConnector(LOCAL_CLUSTER, FIRST_CONNECTOR, SINK_CONNECTOR);
@ -62,7 +60,6 @@ public class ConnectorsTests extends BaseTest {
apiHelper.deleteTopic(LOCAL_CLUSTER, TOPIC_FOR_UPDATE_CONNECTOR); apiHelper.deleteTopic(LOCAL_CLUSTER, TOPIC_FOR_UPDATE_CONNECTOR);
} }
@SneakyThrows
@DisplayName("should create a connector") @DisplayName("should create a connector")
@Suite(suiteId = suiteId, title = suiteTitle) @Suite(suiteId = suiteId, title = suiteTitle)
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -75,13 +72,12 @@ public class ConnectorsTests extends BaseTest {
.waitUntilScreenReady() .waitUntilScreenReady()
.setConnectorConfig( .setConnectorConfig(
SINK_CONNECTOR, SINK_CONNECTOR,
FileUtils.getResourceAsString("config_for_create_connector.json")); getResourceAsString("config_for_create_connector.json"));
pages.openConnectorsList(LOCAL_CLUSTER) pages.openConnectorsList(LOCAL_CLUSTER)
.waitUntilScreenReady() .waitUntilScreenReady()
.connectorIsVisibleInList(SINK_CONNECTOR, TOPIC_FOR_CONNECTOR); .connectorIsVisibleInList(SINK_CONNECTOR, TOPIC_FOR_CONNECTOR);
} }
@SneakyThrows
@DisplayName("should update a connector") @DisplayName("should update a connector")
@Suite(suiteId = suiteId, title = suiteTitle) @Suite(suiteId = suiteId, title = suiteTitle)
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -93,12 +89,11 @@ public class ConnectorsTests extends BaseTest {
.openConnector(CONNECTOR_FOR_UPDATE); .openConnector(CONNECTOR_FOR_UPDATE);
pages.connectorsView.connectorIsVisibleOnOverview(); pages.connectorsView.connectorIsVisibleOnOverview();
pages.connectorsView.openEditConfig() pages.connectorsView.openEditConfig()
.updConnectorConfig(FileUtils.getResourceAsString("config_for_update_connector.json")); .updConnectorConfig(getResourceAsString("config_for_update_connector.json"));
pages.openConnectorsList(LOCAL_CLUSTER) pages.openConnectorsList(LOCAL_CLUSTER)
.connectorIsVisibleInList(CONNECTOR_FOR_UPDATE, TOPIC_FOR_UPDATE_CONNECTOR); .connectorIsVisibleInList(CONNECTOR_FOR_UPDATE, TOPIC_FOR_UPDATE_CONNECTOR);
} }
@SneakyThrows
@DisplayName("should delete connector") @DisplayName("should delete connector")
@Suite(suiteId = suiteId, title = suiteTitle) @Suite(suiteId = suiteId, title = suiteTitle)
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)

View file

@ -8,14 +8,11 @@ import com.provectus.kafka.ui.pages.MainPage;
import com.provectus.kafka.ui.pages.schema.SchemaCreateView; import com.provectus.kafka.ui.pages.schema.SchemaCreateView;
import com.provectus.kafka.ui.utils.qaseIO.Status; import com.provectus.kafka.ui.utils.qaseIO.Status;
import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus; import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus;
import io.qase.api.annotation.CaseId;
import lombok.SneakyThrows;
import org.junit.jupiter.api.*;
import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite;
import io.qase.api.annotation.CaseId;
import org.junit.jupiter.api.*;
import java.io.IOException; import static com.provectus.kafka.ui.extensions.FileUtils.fileToString;
import static org.apache.kafka.common.utils.Utils.readFileAsString;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class) @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class SchemasTests extends BaseTest { public class SchemasTests extends BaseTest {
@ -36,16 +33,14 @@ public class SchemasTests extends BaseTest {
private static final String PATH_JSON_VALUE = System.getProperty("user.dir") + "/src/test/resources/schema_Json_Value.json"; private static final String PATH_JSON_VALUE = System.getProperty("user.dir") + "/src/test/resources/schema_Json_Value.json";
@BeforeAll @BeforeAll
@SneakyThrows
public static void beforeAll() { public static void beforeAll() {
Helpers.INSTANCE.apiHelper.createSchema(SECOND_LOCAL, SCHEMA_AVRO_API_UPDATE, SchemaType.AVRO, readFileAsString(PATH_AVRO_VALUE)); Helpers.INSTANCE.apiHelper.createSchema(SECOND_LOCAL, SCHEMA_AVRO_API_UPDATE, SchemaType.AVRO, fileToString(PATH_AVRO_VALUE));
Helpers.INSTANCE.apiHelper.createSchema(SECOND_LOCAL, SCHEMA_AVRO_API, SchemaType.AVRO, readFileAsString(PATH_AVRO_VALUE)); Helpers.INSTANCE.apiHelper.createSchema(SECOND_LOCAL, SCHEMA_AVRO_API, SchemaType.AVRO, fileToString(PATH_AVRO_VALUE));
Helpers.INSTANCE.apiHelper.createSchema(SECOND_LOCAL, SCHEMA_JSON_API, SchemaType.JSON, readFileAsString(PATH_JSON_VALUE)); Helpers.INSTANCE.apiHelper.createSchema(SECOND_LOCAL, SCHEMA_JSON_API, SchemaType.JSON, fileToString(PATH_JSON_VALUE));
Helpers.INSTANCE.apiHelper.createSchema(SECOND_LOCAL, SCHEMA_PROTOBUF_API, SchemaType.PROTOBUF, readFileAsString(PATH_PROTOBUF_VALUE)); Helpers.INSTANCE.apiHelper.createSchema(SECOND_LOCAL, SCHEMA_PROTOBUF_API, SchemaType.PROTOBUF, fileToString(PATH_PROTOBUF_VALUE));
} }
@AfterAll @AfterAll
@SneakyThrows
public static void afterAll() { public static void afterAll() {
Helpers.INSTANCE.apiHelper.deleteSchema(SECOND_LOCAL, SCHEMA_AVRO_CREATE); Helpers.INSTANCE.apiHelper.deleteSchema(SECOND_LOCAL, SCHEMA_AVRO_CREATE);
Helpers.INSTANCE.apiHelper.deleteSchema(SECOND_LOCAL, SCHEMA_JSON_CREATE); Helpers.INSTANCE.apiHelper.deleteSchema(SECOND_LOCAL, SCHEMA_JSON_CREATE);
@ -63,12 +58,12 @@ public class SchemasTests extends BaseTest {
@CaseId(43) @CaseId(43)
@Test @Test
@Order(1) @Order(1)
void createSchemaAvro() throws IOException { void createSchemaAvro() {
pages.openMainPage() pages.openMainPage()
.goToSideMenu(SECOND_LOCAL, MainPage.SideMenuOptions.SCHEMA_REGISTRY); .goToSideMenu(SECOND_LOCAL, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
pages.schemaRegistry.clickCreateSchema() pages.schemaRegistry.clickCreateSchema()
.setSubjectName(SCHEMA_AVRO_CREATE) .setSubjectName(SCHEMA_AVRO_CREATE)
.setSchemaField(readFileAsString(PATH_AVRO_VALUE)) .setSchemaField(fileToString(PATH_AVRO_VALUE))
.selectSchemaTypeFromDropdown(SchemaCreateView.SchemaType.AVRO) .selectSchemaTypeFromDropdown(SchemaCreateView.SchemaType.AVRO)
.clickSubmit() .clickSubmit()
.waitUntilScreenReady(); .waitUntilScreenReady();
@ -77,7 +72,6 @@ public class SchemasTests extends BaseTest {
pages.schemaRegistry.isSchemaVisible(SCHEMA_AVRO_CREATE); pages.schemaRegistry.isSchemaVisible(SCHEMA_AVRO_CREATE);
} }
@SneakyThrows
@DisplayName("should update AVRO schema") @DisplayName("should update AVRO schema")
@Suite(suiteId = suiteId, title = suiteTitle) @Suite(suiteId = suiteId, title = suiteTitle)
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -91,13 +85,12 @@ public class SchemasTests extends BaseTest {
.waitUntilScreenReady() .waitUntilScreenReady()
.openEditSchema() .openEditSchema()
.selectCompatibilityLevelFromDropdown(CompatibilityLevel.CompatibilityEnum.NONE) .selectCompatibilityLevelFromDropdown(CompatibilityLevel.CompatibilityEnum.NONE)
.setNewSchemaValue(readFileAsString(PATH_AVRO_FOR_UPDATE)) .setNewSchemaValue(fileToString(PATH_AVRO_FOR_UPDATE))
.clickSubmit() .clickSubmit()
.waitUntilScreenReady() .waitUntilScreenReady()
.isCompatibility(CompatibilityLevel.CompatibilityEnum.NONE); .isCompatibility(CompatibilityLevel.CompatibilityEnum.NONE);
} }
@SneakyThrows
@DisplayName("should delete AVRO schema") @DisplayName("should delete AVRO schema")
@Suite(suiteId = suiteId, title = suiteTitle) @Suite(suiteId = suiteId, title = suiteTitle)
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -113,7 +106,6 @@ public class SchemasTests extends BaseTest {
.isNotVisible(SCHEMA_AVRO_API); .isNotVisible(SCHEMA_AVRO_API);
} }
@SneakyThrows
@DisplayName("should create JSON schema") @DisplayName("should create JSON schema")
@Suite(suiteId = suiteId, title = suiteTitle) @Suite(suiteId = suiteId, title = suiteTitle)
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -125,7 +117,7 @@ public class SchemasTests extends BaseTest {
.goToSideMenu(SECOND_LOCAL, MainPage.SideMenuOptions.SCHEMA_REGISTRY); .goToSideMenu(SECOND_LOCAL, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
pages.schemaRegistry.clickCreateSchema() pages.schemaRegistry.clickCreateSchema()
.setSubjectName(SCHEMA_JSON_CREATE) .setSubjectName(SCHEMA_JSON_CREATE)
.setSchemaField(readFileAsString(PATH_JSON_VALUE)) .setSchemaField(fileToString(PATH_JSON_VALUE))
.selectSchemaTypeFromDropdown(SchemaCreateView.SchemaType.JSON) .selectSchemaTypeFromDropdown(SchemaCreateView.SchemaType.JSON)
.clickSubmit() .clickSubmit()
.waitUntilScreenReady(); .waitUntilScreenReady();
@ -134,7 +126,6 @@ public class SchemasTests extends BaseTest {
pages.schemaRegistry.isSchemaVisible(SCHEMA_JSON_CREATE); pages.schemaRegistry.isSchemaVisible(SCHEMA_JSON_CREATE);
} }
@SneakyThrows
@DisplayName("should delete JSON schema") @DisplayName("should delete JSON schema")
@Suite(suiteId = suiteId, title = suiteTitle) @Suite(suiteId = suiteId, title = suiteTitle)
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -150,7 +141,6 @@ public class SchemasTests extends BaseTest {
.isNotVisible(SCHEMA_JSON_API); .isNotVisible(SCHEMA_JSON_API);
} }
@SneakyThrows
@DisplayName("should create PROTOBUF schema") @DisplayName("should create PROTOBUF schema")
@Suite(suiteId = suiteId, title = suiteTitle) @Suite(suiteId = suiteId, title = suiteTitle)
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -162,7 +152,7 @@ public class SchemasTests extends BaseTest {
.goToSideMenu(SECOND_LOCAL, MainPage.SideMenuOptions.SCHEMA_REGISTRY); .goToSideMenu(SECOND_LOCAL, MainPage.SideMenuOptions.SCHEMA_REGISTRY);
pages.schemaRegistry.clickCreateSchema() pages.schemaRegistry.clickCreateSchema()
.setSubjectName(SCHEMA_PROTOBUF_CREATE) .setSubjectName(SCHEMA_PROTOBUF_CREATE)
.setSchemaField(readFileAsString(PATH_PROTOBUF_VALUE)) .setSchemaField(fileToString(PATH_PROTOBUF_VALUE))
.selectSchemaTypeFromDropdown(SchemaCreateView.SchemaType.PROTOBUF) .selectSchemaTypeFromDropdown(SchemaCreateView.SchemaType.PROTOBUF)
.clickSubmit() .clickSubmit()
.waitUntilScreenReady(); .waitUntilScreenReady();
@ -171,7 +161,6 @@ public class SchemasTests extends BaseTest {
pages.schemaRegistry.isSchemaVisible(SCHEMA_PROTOBUF_CREATE); pages.schemaRegistry.isSchemaVisible(SCHEMA_PROTOBUF_CREATE);
} }
@SneakyThrows
@DisplayName("should delete PROTOBUF schema") @DisplayName("should delete PROTOBUF schema")
@Suite(suiteId = suiteId, title = suiteTitle) @Suite(suiteId = suiteId, title = suiteTitle)
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)

View file

@ -9,10 +9,9 @@ import com.provectus.kafka.ui.utils.qaseIO.annotation.AutomationStatus;
import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite; import com.provectus.kafka.ui.utils.qaseIO.annotation.Suite;
import io.qameta.allure.Issue; import io.qameta.allure.Issue;
import io.qase.api.annotation.CaseId; import io.qase.api.annotation.CaseId;
import lombok.SneakyThrows;
import org.junit.jupiter.api.*; import org.junit.jupiter.api.*;
import static org.apache.kafka.common.utils.Utils.readFileAsString; import static com.provectus.kafka.ui.extensions.FileUtils.fileToString;
public class TopicTests extends BaseTest { public class TopicTests extends BaseTest {
@ -29,21 +28,18 @@ public class TopicTests extends BaseTest {
@BeforeAll @BeforeAll
@SneakyThrows
public static void beforeAll() { public static void beforeAll() {
Helpers.INSTANCE.apiHelper.createTopic(SECOND_LOCAL, TOPIC_TO_UPDATE); Helpers.INSTANCE.apiHelper.createTopic(SECOND_LOCAL, TOPIC_TO_UPDATE);
Helpers.INSTANCE.apiHelper.createTopic(SECOND_LOCAL, TOPIC_TO_DELETE); Helpers.INSTANCE.apiHelper.createTopic(SECOND_LOCAL, TOPIC_TO_DELETE);
} }
@AfterAll @AfterAll
@SneakyThrows
public static void afterAll() { public static void afterAll() {
Helpers.INSTANCE.apiHelper.deleteTopic(SECOND_LOCAL, TOPIC_TO_UPDATE); Helpers.INSTANCE.apiHelper.deleteTopic(SECOND_LOCAL, TOPIC_TO_UPDATE);
Helpers.INSTANCE.apiHelper.deleteTopic(SECOND_LOCAL, TOPIC_TO_DELETE); Helpers.INSTANCE.apiHelper.deleteTopic(SECOND_LOCAL, TOPIC_TO_DELETE);
Helpers.INSTANCE.apiHelper.deleteTopic(SECOND_LOCAL, NEW_TOPIC); Helpers.INSTANCE.apiHelper.deleteTopic(SECOND_LOCAL, NEW_TOPIC);
} }
@SneakyThrows
@DisplayName("should create a topic") @DisplayName("should create a topic")
@Suite(suiteId = 4, title = "Create new Topic") @Suite(suiteId = 4, title = "Create new Topic")
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -65,7 +61,6 @@ public class TopicTests extends BaseTest {
.topicIsNotVisible(NEW_TOPIC); .topicIsNotVisible(NEW_TOPIC);
} }
@Disabled("Due to issue https://github.com/provectus/kafka-ui/issues/1500 ignore this test") @Disabled("Due to issue https://github.com/provectus/kafka-ui/issues/1500 ignore this test")
@SneakyThrows
@DisplayName("should update a topic") @DisplayName("should update a topic")
@Issue("1500") @Issue("1500")
@Suite(suiteId = 2, title = "Topics") @Suite(suiteId = 2, title = "Topics")
@ -97,7 +92,6 @@ public class TopicTests extends BaseTest {
.maxMessageBytesIs(UPDATED_MAX_MESSAGE_BYTES); .maxMessageBytesIs(UPDATED_MAX_MESSAGE_BYTES);
} }
@SneakyThrows
@DisplayName("should delete topic") @DisplayName("should delete topic")
@Suite(suiteId = 2, title = "Topics") @Suite(suiteId = 2, title = "Topics")
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -113,7 +107,6 @@ public class TopicTests extends BaseTest {
.isTopicNotVisible(TOPIC_TO_DELETE); .isTopicNotVisible(TOPIC_TO_DELETE);
} }
@SneakyThrows
@DisplayName("produce message") @DisplayName("produce message")
@Suite(suiteId = 2, title = "Topics") @Suite(suiteId = 2, title = "Topics")
@AutomationStatus(status = Status.AUTOMATED) @AutomationStatus(status = Status.AUTOMATED)
@ -126,10 +119,10 @@ public class TopicTests extends BaseTest {
.waitUntilScreenReady() .waitUntilScreenReady()
.openTopicMenu(TopicView.TopicMenu.MESSAGES) .openTopicMenu(TopicView.TopicMenu.MESSAGES)
.clickOnButton("Produce Message") .clickOnButton("Produce Message")
.setContentFiled(readFileAsString(CONTENT_TO_PRODUCE_MESSAGE)) .setContentFiled(fileToString(CONTENT_TO_PRODUCE_MESSAGE))
.setKeyField(readFileAsString(KEY_TO_PRODUCE_MESSAGE)) .setKeyField(fileToString(KEY_TO_PRODUCE_MESSAGE))
.submitProduceMessage(); .submitProduceMessage();
Assertions.assertTrue(pages.topicView.isKeyMessageVisible(readFileAsString(KEY_TO_PRODUCE_MESSAGE))); Assertions.assertTrue(pages.topicView.isKeyMessageVisible(fileToString(KEY_TO_PRODUCE_MESSAGE)));
Assertions.assertTrue(pages.topicView.isContentMessageVisible(readFileAsString(CONTENT_TO_PRODUCE_MESSAGE).trim())); Assertions.assertTrue(pages.topicView.isContentMessageVisible(fileToString(CONTENT_TO_PRODUCE_MESSAGE).trim()));
} }
} }