Initial commit api-master
This commit is contained in:
commit
0b87bd9c48
4
helpdesk-api-test-main/.gitignore
vendored
Normal file
4
helpdesk-api-test-main/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
# Project exclude paths
|
||||
/target/
|
||||
/.idea/
|
||||
*.iml
|
||||
42
helpdesk-api-test-main/pom.xml
Normal file
42
helpdesk-api-test-main/pom.xml
Normal file
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>helpdesk-api-test</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>8</source>
|
||||
<target>8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>io.rest-assured</groupId>
|
||||
<artifactId>rest-assured</artifactId>
|
||||
<version>4.3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.8.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testng</groupId>
|
||||
<artifactId>testng</artifactId>
|
||||
<version>6.9.6</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,5 @@
|
||||
package model;
|
||||
|
||||
public class AuthToken {
|
||||
// todo: serialized поля, согласно swagger, а также геттеры и сеттеры
|
||||
}
|
||||
18
helpdesk-api-test-main/src/main/java/model/Status.java
Normal file
18
helpdesk-api-test-main/src/main/java/model/Status.java
Normal file
@ -0,0 +1,18 @@
|
||||
package model;
|
||||
|
||||
/** Статусы тикета, используемые в тестах */
|
||||
public enum Status {
|
||||
OPEN(1),
|
||||
CLOSED(4),
|
||||
;
|
||||
|
||||
private final int code;
|
||||
|
||||
Status(int code) {
|
||||
this.code=code;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
}
|
||||
19
helpdesk-api-test-main/src/main/java/model/Ticket.java
Normal file
19
helpdesk-api-test-main/src/main/java/model/Ticket.java
Normal file
@ -0,0 +1,19 @@
|
||||
package model;
|
||||
|
||||
/** Объект тикета (POJO) */
|
||||
public class Ticket {
|
||||
|
||||
// todo: serialized поля, геттеры и сеттеры
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
// todo
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
// todo
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
40
helpdesk-api-test-main/src/test/java/api/BaseTest.java
Normal file
40
helpdesk-api-test-main/src/test/java/api/BaseTest.java
Normal file
@ -0,0 +1,40 @@
|
||||
package api;
|
||||
|
||||
import model.AuthToken;
|
||||
import model.Status;
|
||||
import model.Ticket;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import static io.restassured.RestAssured.given;
|
||||
|
||||
/** Абстрактный класс, содержащий общие для всех тестов методы */
|
||||
public abstract class BaseTest {
|
||||
@BeforeClass
|
||||
public void prepare() {
|
||||
// todo: загрузить в системные переменные "base.uri" из "config.properties"
|
||||
|
||||
String baseUri = System.getProperty("base.uri");
|
||||
if (baseUri == null || baseUri.isEmpty()) {
|
||||
throw new RuntimeException("В файле \"config.properties\" отсутствует значение \"base.uri\"");
|
||||
}
|
||||
|
||||
// todo: подготовить глобальные преднастройки для запросов
|
||||
}
|
||||
|
||||
protected AuthToken login() {
|
||||
// todo: отправить запрос на получения токена, используя учетные данные из "config.properties"
|
||||
return null;
|
||||
}
|
||||
|
||||
protected Ticket buildNewTicket(Status status, int priority) {
|
||||
// todo: создать объект с тестовыми данными
|
||||
return null;
|
||||
}
|
||||
|
||||
protected Ticket createTicket(Ticket ticket) {
|
||||
// todo: отправить HTTP запрос для создания тикета
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package api;
|
||||
|
||||
import model.Ticket;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** Создание и проверка тикета */
|
||||
public class CreateTicketTest extends BaseTest {
|
||||
|
||||
@Test
|
||||
public void createTicketTest() {
|
||||
// todo: создать тикет и проверить, что он находится в системе
|
||||
}
|
||||
|
||||
protected Ticket getTicket(int id) {
|
||||
// todo: отправить HTTP запрос на получение тикета по его id
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package api;
|
||||
|
||||
import model.Ticket;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** Обновление тикета */
|
||||
public class UpdateTicketTest extends BaseTest {
|
||||
|
||||
@Test
|
||||
public void updateTicketTest() {
|
||||
// todo: создать тикет со статусом Closed, затем обновить тикет и проверить сообщение об ошибке (негативный сценарий)
|
||||
}
|
||||
|
||||
private void updateTicketNegative(Ticket ticket) {
|
||||
// todo: отправить HTTP запрос для обновления данных тикета и сразу же проверить статус код (должен соответствовать ошибке)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
# Параметры конфигурации в формате:
|
||||
# key=value
|
||||
Loading…
Reference in New Issue
Block a user