TopicView.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package com.provectus.kafka.ui.pages;
  2. import com.codeborne.selenide.Selenide;
  3. import com.codeborne.selenide.SelenideElement;
  4. import com.provectus.kafka.ui.base.TestConfiguration;
  5. import com.provectus.kafka.ui.extensions.WaitUtils;
  6. import io.qameta.allure.Step;
  7. import lombok.SneakyThrows;
  8. import lombok.experimental.ExtensionMethod;
  9. import org.junit.jupiter.api.Assertions;
  10. import org.openqa.selenium.By;
  11. import static com.codeborne.selenide.Selenide.*;
  12. @ExtensionMethod({WaitUtils.class})
  13. public class TopicView {
  14. private static final String path = "ui/clusters/%s/topics/%s";
  15. private final SelenideElement cleanupPolicy = $(By.name("cleanupPolicy"));
  16. private final SelenideElement timeToRetain = $(By.id("timeToRetain"));
  17. private final SelenideElement maxSizeOnDisk = $(By.name("retentionBytes"));
  18. private final SelenideElement maxMessageBytes = $(By.name("maxMessageBytes"));
  19. @Step
  20. public TopicView goTo(String cluster,String topic){
  21. Selenide.open(TestConfiguration.BASE_URL+path.formatted(cluster,topic));
  22. return this;
  23. }
  24. @SneakyThrows
  25. public TopicView openEditSettings() {
  26. $(By.xpath("//a[@class=\"button\" and text()='Edit settings']")).click();
  27. return this;
  28. }
  29. @SneakyThrows
  30. public void clickDeleteTopicButton() {
  31. $(By.xpath("//*[text()='Delete Topic']")).click();
  32. $(By.xpath("//*[text()='Confirm']")).click();
  33. }
  34. @SneakyThrows
  35. public TopicView changeCleanupPolicy(String cleanupPolicyValue) {
  36. cleanupPolicy.click();
  37. $(By.xpath("//select/option[@value = '%s']".formatted(cleanupPolicyValue))).click();
  38. return this;
  39. }
  40. @SneakyThrows
  41. public TopicView changeTimeToRetainValue(String timeToRetainValue) {
  42. timeToRetain.clear();
  43. timeToRetain.sendKeys(String.valueOf(timeToRetainValue));
  44. return this;
  45. }
  46. @SneakyThrows
  47. public TopicView changeMaxSizeOnDisk(String maxSizeOnDiskValue) {
  48. maxSizeOnDisk.click();
  49. $(By.xpath("//select/option[text() = '%s']".formatted(maxSizeOnDiskValue))).click();
  50. return this;
  51. }
  52. @SneakyThrows
  53. public TopicView changeMaxMessageBytes(String maxMessageBytesValue) {
  54. maxMessageBytes.clear();
  55. maxMessageBytes.sendKeys(String.valueOf(maxMessageBytesValue));
  56. return this;
  57. }
  58. @SneakyThrows
  59. public void submitSettingChanges() {
  60. $(By.xpath("//input[@type='submit']")).click();
  61. }
  62. public TopicView cleanupPolicyIs(String value) {
  63. cleanupPolicy.waitForSelectedValue(value);
  64. return this;
  65. }
  66. public TopicView timeToRetainIs(String time) {
  67. Assertions.assertEquals(time, timeToRetain.getValue());
  68. return this;
  69. }
  70. public TopicView maxSizeOnDiskIs(String size) {
  71. Assertions.assertEquals(size, maxSizeOnDisk.getSelectedText());
  72. return this;
  73. }
  74. public TopicView maxMessageBytesIs(String bytes) {
  75. Assertions.assertEquals(bytes, maxMessageBytes.getValue());
  76. return this;
  77. }
  78. }