Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 14 additions & 2 deletions proJect/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.9.2</version> <!-- или последняя стабильная версия -->
<version>5.9.2</version>
<scope>test</scope>
</dependency>
<dependency>
Expand All @@ -25,13 +26,24 @@
<version>5.9.2</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.9.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>LATEST</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>LATEST</version>
<scope>test</scope>
</dependency>
</dependencies>

</project>
15 changes: 0 additions & 15 deletions proJect/src/main/java/anlov/java/Factorial.java

This file was deleted.

5 changes: 1 addition & 4 deletions proJect/src/main/java/anlov/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package anlov.java;


import java.util.Arrays;

public class Main {
public static void main(String[] args) {
System.out.println(Factorial.getFactorial(3));

}
}
154 changes: 154 additions & 0 deletions proJect/src/test/java/AppTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
import io.github.bonigarcia.wdm.WebDriverManager;
import org.junit.jupiter.api.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.time.Duration;
import java.util.List;

import static org.junit.jupiter.api.Assertions.*;

public class AppTest {
WebDriver driver;
WebDriverWait wait;

@BeforeAll
static void setupAll() {
WebDriverManager.chromedriver().setup();
}

@BeforeEach
void setup() {
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));
driver.get("https://www.mts.by/");
driver.findElement(By.xpath("//button[@id='cookie-agree']")).click();
wait = new WebDriverWait(driver, Duration.ofSeconds(10));
}

@AfterEach
void teardown() {
driver.quit();
}

@Test
@DisplayName("Проверить надписи в незаполненных полях каждого варианта оплаты услуги")
void checkText() {
final String SUM = "Сумма";
final String EMAIL = "E-mail для отправки чека";
String phoneField = getTextFromWebElement("//input[@id='connection-phone']",
"placeholder");
String sumField = getTextFromWebElement("//input[@id='connection-sum']",
"placeholder");
String emailField = getTextFromWebElement("//input[@id='connection-email']",
"placeholder");
assertAll(
() -> assertEquals("Номер телефона", phoneField),
() -> assertEquals(SUM, sumField),
() -> assertEquals(EMAIL, emailField)
);
String internetField = getTextFromWebElement("//input[@id='internet-phone']",
"placeholder");
String internetSum = getTextFromWebElement("//input[@id='internet-sum']",
"placeholder");
String internetEmail = getTextFromWebElement("//input[@id='internet-email']",
"placeholder");
assertAll(
() -> assertEquals("Номер абонента", internetField),
() -> assertEquals(SUM, internetSum),
() -> assertEquals(EMAIL, internetEmail)
);
String instalmentNum = getTextFromWebElement("//input[@id='score-instalment']",
"placeholder");
String instalmentSum = getTextFromWebElement("//input[@id='instalment-sum']",
"placeholder");
String instalmentEmail = getTextFromWebElement("//input[@id='instalment-email']",
"placeholder");
assertAll(
() -> assertEquals("Номер счета на 44", instalmentNum),
() -> assertEquals(SUM, instalmentSum),
() -> assertEquals(EMAIL, instalmentEmail)
);
String arrearNum = getTextFromWebElement("//input[@id='score-arrears']",
"placeholder");
String arrearSum = getTextFromWebElement("//input[@id='arrears-sum']",
"placeholder");
String arrearEmail = getTextFromWebElement("//input[@id='arrears-email']",
"placeholder");
assertAll(
() -> assertEquals("Номер счета на 2073", arrearNum),
() -> assertEquals(SUM, arrearSum),
() -> assertEquals(EMAIL, arrearEmail)
);
}

@Test
@DisplayName("Проверить корректность отображения данных")
void checkForm() {
final String NUMBER = "297777777";
final double SUMMA = 25.0;
final String SUMMA_STRING = "25";
final String EMAIL = "aston.777@gmai.com";

driver.findElement(By.xpath("//input[@id='connection-phone']")).sendKeys(NUMBER);
driver.findElement(By.xpath("//input[@id='connection-sum']")).sendKeys(SUMMA_STRING);
driver.findElement(By.xpath("//input[@id='connection-email']")).sendKeys(EMAIL);
driver.findElement(By.xpath("//form[@id='pay-connection']/button")).click();
WebElement iframe = wait.until(ExpectedConditions.presenceOfElementLocated(
By.xpath("//iframe[@class='bepaid-iframe']")));
driver.switchTo().frame(iframe);

Double amount = getDoubleFromWebElement(
"//div[@class='pay-description__cost']/span", " ", 0);
String info = getTextFromWebElement(
"//span[contains(text(), \"Оплата:\")] ", "375", 1);
Double sum = getDoubleFromWebElement(
"//div[@class='card-page__card']/button", " ", 1);

String actualNum = getTextFromWebElement("//input[@id='cc-number']/..");
String validity = getTextFromWebElement("//input[@autocomplete='cc-exp']/..");
String code = getTextFromWebElement("//input[@name='verification_value']/..");
String fullName = getTextFromWebElement("//input[@autocomplete='cc-name']/..");

List<WebElement> logos = wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(
By.xpath("//input[@id='cc-number']/../following-sibling::div/.//img")
));
assertAll(
() -> assertEquals(SUMMA, amount),
() -> assertEquals(SUMMA, sum),
() -> assertEquals(NUMBER, info),
() -> assertEquals("Номер карты", actualNum),
() -> assertEquals("Срок действия", validity),
() -> assertEquals("CVC", code),
() -> assertEquals("Имя и фамилия на карте", fullName),
() -> logos.forEach(p -> assertTrue(p.isDisplayed()))
);
}

public String getTextFromWebElement(String xpath) {
return driver.findElement(By.xpath(xpath))
.getAttribute("innerText");
}

public String getTextFromWebElement(String xpath, String attributeName) {
return driver.findElement(By.xpath(xpath))
.getAttribute(attributeName);
}

public String getTextFromWebElement(String xpath, String regexp, int index) {
return driver.findElement(By.xpath(xpath))
.getAttribute("innerText")
.split(regexp)[index];
}

public Double getDoubleFromWebElement(String xpath, String regexp, int index) {
return Double.parseDouble(driver.findElement(By.xpath(xpath))
.getAttribute("innerText")
.split(regexp)[index]);
}
}

34 changes: 0 additions & 34 deletions proJect/src/test/java/FactorialTest.java

This file was deleted.