Skip to content
Merged
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
96 changes: 0 additions & 96 deletions src/test/java/school/redrover/api/APIJenkinsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,66 +7,9 @@
import org.testng.annotations.Test;
import school.redrover.common.APIBaseTest;

import java.util.HashMap;
import java.util.Map;

public class APIJenkinsTest extends APIBaseTest {

@Test
public void testCreatePiplineAndDisable() {
Map<String, String> projectName = new HashMap<>();
projectName.put("name", "Pipline");

String bodyPiplineXML = """
<flow-definition plugin="workflow-job@1559.va_a_533730b_ea_d">
<keepDependencies>false</keepDependencies>
<properties/>
<triggers/>
<disabled>false</disabled>
</flow-definition>
""";

RestAssured.given()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.contentType(ContentType.XML)
.queryParams(projectName)
.body(bodyPiplineXML)
.when()
.post("/createItem")
.then()
.log().all()
.statusCode(200);

Response response = RestAssured.given()
.log().all()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.when()
.post("job/%s/disable".formatted(projectName.get("name")))
.then()
.log().all()
.extract().response();

String location = response.getHeader("Location");

Response getResponse = RestAssured.given()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.when()
.get(location)
.then()
.log().all()
.statusCode(200)
.extract().response();

String responseBody = getResponse.getBody().asString();

Assert.assertEquals(response.getStatusCode(), 302);
Assert.assertEquals(getResponse.getStatusCode(), 200);
Assert.assertTrue(responseBody.contains("This project is currently disabled"));
}

@Test
public void testCreateAndDeleteFolder() {
String folderName = "ApiTestFolder";
Expand Down Expand Up @@ -118,43 +61,4 @@ public void testCreateAndDeleteFolder() {
Assert.assertEquals(deletedResponse.statusCode(), 404,
"Expected 404 after deletion, but got " + deletedResponse.statusCode());
}

@Test
public void testCreateUser() {
Map<String, String> userData = new HashMap<>();
userData.put("username", "UserUser");
userData.put("password1", "passwordUser");
userData.put("password2", "passwordUser");
userData.put("fullname", "UserUserName");
userData.put("email", "user@user.us");

Response response = RestAssured.given()
.log().all()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.queryParams(userData)
.when()
.post("securityRealm/createAccountByAdmin")
.then()
.log().all()
.extract().response();

String location = response.getHeader("Location");

Response getResponse = RestAssured.given()
.log().all()
.auth().preemptive().basic(userName, apiToken)
.baseUri(jenkinsUrl)
.when()
.get("%s".formatted(location))
.then()
.log().all()
.extract().response();

String responseBody = getResponse.getBody().asString();

Assert.assertEquals(response.getStatusCode(), 302);
Assert.assertEquals(getResponse.getStatusCode(), 200);
Assert.assertTrue(responseBody.contains(userData.get("username")));
}
}
70 changes: 70 additions & 0 deletions src/test/java/school/redrover/api/PiplineTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package school.redrover.api;

import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.response.Response;
import org.testng.Assert;
import org.testng.annotations.Test;
import school.redrover.common.APIBaseTest;

import java.util.HashMap;
import java.util.Map;

import static school.redrover.common.TestUtils.requestSpec;

public class PiplineTest extends APIBaseTest {

private static final String PROJECT_NAME = "Pipline";

private static final String bodyPiplineXML = """
<flow-definition plugin="workflow-job@1559.va_a_533730b_ea_d">
<keepDependencies>false</keepDependencies>
<properties/>
<triggers/>
<disabled>false</disabled>
</flow-definition>
""";

@Test
public void testCreatePiplineAndDisable() {
Map<String, String> projectName = new HashMap<>();
projectName.put("name", PROJECT_NAME);

RestAssured.given()
.spec(requestSpec())
.contentType(ContentType.XML)
.queryParams(projectName)
.body(bodyPiplineXML)
.when()
.post("/createItem")
.then()
.log().all()
.statusCode(200);

Response response = RestAssured.given()
.log().all()
.spec(requestSpec())
.when()
.post("job/%s/disable".formatted(projectName.get("name")))
.then()
.log().all()
.extract().response();

String location = response.getHeader("Location");

Response getResponse = RestAssured.given()
.spec(requestSpec())
.when()
.get(location)
.then()
.log().all()
.statusCode(200)
.extract().response();

String responseBody = getResponse.getBody().asString();

Assert.assertEquals(response.getStatusCode(), 302);
Assert.assertEquals(getResponse.getStatusCode(), 200);
Assert.assertTrue(responseBody.contains("This project is currently disabled"));
}
}
90 changes: 90 additions & 0 deletions src/test/java/school/redrover/api/UserTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package school.redrover.api;

import io.restassured.RestAssured;
import io.restassured.response.Response;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import school.redrover.common.APIBaseTest;

import java.util.HashMap;
import java.util.Map;

import static school.redrover.common.TestUtils.requestSpec;
import static school.redrover.common.TestUtils.responseSpec;

public class UserTest extends APIBaseTest {

private Map<String, String> userData;

@BeforeClass
public void setupTestData() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это можно сделать как обычный приватный метод, который потом вызывать в тестах, как делали это в UI

userData = new HashMap<>();
userData.put("username", "UserUser");
userData.put("password1", "passwordUser");
userData.put("password2", "passwordUser");
userData.put("fullname", "UserUserName");
userData.put("email", "user@user.us");
}

@Test
public void testCreateUser() {

Response response = RestAssured.given()
.log().all()
.spec(requestSpec())
.queryParams(userData)
.when()
.post("securityRealm/createAccountByAdmin")
.then()
.log().all()
.extract().response();

String location = response.getHeader("Location");

Response getResponse = RestAssured.given()
.log().all()
.spec(requestSpec())
.when()
.get("%s".formatted(location))
.then()
.log().all()
.extract().response();

String responseBody = getResponse.getBody().asString();

Assert.assertEquals(response.getStatusCode(), 302);
Assert.assertEquals(getResponse.getStatusCode(), 200);
Assert.assertTrue(responseBody.contains(userData.get("username")));
}

@Test(dependsOnMethods = "testCreateUser")
public void testDeleteUser() {

Response deleteResponse = RestAssured.given()
.log().all()
.spec(requestSpec())
.when()
.post("manage/securityRealm/user/%s/doDelete".formatted(userData.get("username".toLowerCase())))
.then()
.log().all()
.extract().response();

Response getResponse = RestAssured.given()
.log().all()
.spec(requestSpec())
.when()
.get("manage/securityRealm/")
.then()
.spec(responseSpec(200, 1500L))
.extract().response();

String responseBody = getResponse.getBody().asString();

Assert.assertEquals(deleteResponse.statusCode(), 404,
"Expected 404 after deletion, but got " + deleteResponse.statusCode());
Assert.assertEquals(getResponse.getStatusCode(), 200);
Assert.assertFalse(responseBody.contains(userData.get("username")),
"Response body should NOT contain username: " + userData.get("username"));
}
}