fix: Post data using Hashmap

This commit is contained in:
dadgam3er 2024-10-08 23:49:13 -04:00
parent 279c27afcd
commit 2902314765
6 changed files with 271 additions and 13 deletions

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

182
jsonServer/students.json Normal file
View File

@ -0,0 +1,182 @@
{
"students": [
{
"id": "1",
"name": "Alice Johnson",
"location": "New York",
"phone": "+1-555-1234",
"courses": [
"Python",
"JavaScript",
"Data Science"
]
},
{
"id": "2",
"name": "Bob Smith",
"location": "Los Angeles",
"phone": "+1-555-5678",
"courses": [
"Java",
"C++",
"Machine Learning"
]
},
{
"id": "3",
"name": "Charlie Williams",
"location": "Chicago",
"phone": "+1-555-9101",
"courses": [
"Python",
"React",
"Cybersecurity"
]
},
{
"id": "4",
"name": "Diana Evans",
"location": "Houston",
"phone": "+1-555-1122",
"courses": [
"Ruby",
"DevOps",
"Cloud Computing"
]
},
{
"id": "5",
"name": "Ethan Davis",
"location": "San Francisco",
"phone": "+1-555-3344",
"courses": [
"JavaScript",
"Node.js",
"Web Development"
]
},
{
"id": "6",
"name": "Fiona Taylor",
"location": "Seattle",
"phone": "+1-555-5566",
"courses": [
"Python",
"AI",
"Statistics"
]
},
{
"id": "7",
"name": "George Harris",
"location": "Austin",
"phone": "+1-555-7788",
"courses": [
"Java",
"Android Development",
"Kotlin"
]
},
{
"id": "8",
"name": "Hannah Brown",
"location": "Miami",
"phone": "+1-555-9900",
"courses": [
"C#",
".NET",
"Software Architecture"
]
},
{
"id": "9",
"name": "Ian Clark",
"location": "Denver",
"phone": "+1-555-4455",
"courses": [
"C++",
"Game Development",
"Graphics Programming"
]
},
{
"id": "10",
"name": "Jessica Martinez",
"location": "Boston",
"phone": "+1-555-6677",
"courses": [
"Python",
"Data Analytics",
"R Programming"
]
},
{
"id": "a786",
"courses": "[SeleniumTesting, DevOps]",
"phone": "+1 2019361028",
"name": "Zakaria",
"location": "Queens"
},
{
"id": "49ae",
"courses": "[SeleniumTesting, DevOps]",
"phone": "+1 2019361028",
"name": "Zakaria",
"location": "Queens"
},
{
"id": "dc1f",
"courses": "[SeleniumTesting, DevOps]",
"phone": "+1 2019361028",
"name": "Zakaria",
"location": "Queens"
},
{
"id": "8e58",
"courses": "[SeleniumTesting, DevOps]",
"phone": "+1 2019361028",
"name": "Zakaria",
"location": "Queens"
},
{
"id": "22b2",
"courses": [
"SeleniumTesting",
"DevOps"
],
"phone": "+1 2019361028",
"name": "Zakaria",
"location": "Queens"
},
{
"id": "60b3",
"courses": [
"SeleniumTesting",
"DevOps"
],
"phone": "+1 2019361028",
"name": "Zakaria",
"location": "Queens"
},
{
"id": "54d0",
"courses": [
"SeleniumTesting",
"DevOps"
],
"phone": "+1 2019361028",
"name": "Zakaria",
"location": "Queens"
},
{
"id": "7def",
"courses": [
"SeleniumTesting",
"DevOps"
],
"phone": "+1 2019361028",
"name": "Zakaria",
"location": "Queens"
}
]
}

13
pom.xml
View File

@ -10,7 +10,10 @@
<name>restAssured</name>
<url>http://maven.apache.org</url>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
@ -131,4 +134,14 @@
<version>5.5.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Surefire Plugin to run tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
</plugin>
</plugins>
</build>
</project>

View File

@ -5,13 +5,12 @@ import org.testng.annotations.Test;
import java.util.HashMap;
import static io.restassured.RestAssured.*;
import static io.restassured.matcher.ResponseAwareMatcher.*;
import static org.hamcrest.Matcher.*;
import static org.hamcrest.Matchers.equalTo;
public class HttpRequest {
public class HttpRequestTest {
public int id;
public String job;
@Test(priority = 1)
void getUser() {
when()
@ -21,29 +20,32 @@ public class HttpRequest {
.body("page", equalTo(2))
.log().all();
}
@Test(priority = 2)
void createUser() {
HashMap<String, String> data = new HashMap<>();
data.put("name", "Zakaria");
data.put("job", "Engineer");
id = given().contentType("Application/json").body(data).when().post("https://reqres.in/api/users").jsonPath().getInt("id");
id = given().contentType("Application/json").body(data).when().post("https://reqres.in/api/users").jsonPath()
.getInt("id");
System.out.println(id);
}
@Test(priority = 3, dependsOnMethods = { "createUser" })
void updateUser() {
HashMap<String, String> data = new HashMap<>();
data.put("name", "Sami");
data.put("job", "Engineer/Surgeon");
given().contentType("Application/json").body(data).when().put("https://reqres.in/api/users/" + id).then().statusCode(200).log().all();
given().contentType("Application/json").body(data).when().put("https://reqres.in/api/users/" + id).then()
.statusCode(200).log().all();
}
@Test(priority = 4)
void deleteUser() {
when().delete("https://reqres.in/api/users/" + id).then().statusCode(204).log().all();
System.out.println("id number: " + id + " is deleted");
}
}

View File

@ -0,0 +1,44 @@
package zacksolutions.DayTwo;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import static io.restassured.RestAssured.given;
import static io.restassured.RestAssured.when;
import static org.hamcrest.Matchers.equalTo;
public class PostReqBodyTest {
@Test(priority = 1)
void getStudents() {
String name= when().get("http://127.0.0.1:3000/students/7").jsonPath().getString("name");
List<String> courses = new ArrayList<>();
courses = when().get("http://127.0.0.1:3000/students/7def").jsonPath().getList("courses");
System.out.println("The student name is: " + name + " and skill set is as follow " + courses.get(1));
}
@Test(priority = 2)
void postStudent(){
//first method to add data using HashMap
HashMap data = new HashMap<>();
String[] courses = {"SeleniumTesting", "DevOps"};
data.put("name", "Zakaria");
data.put("location", "Queens");
data.put("phone", "+1 2019361028");
data.put("courses", courses);
given().contentType("application/json").body(data)
.when().post("http://127.0.0.1:3000/students/")
.then().statusCode(201)
.body("name", equalTo("Zakaria"))
.body("location",equalTo("Queens"))
.body("phone", equalTo("+1 2019361028"))
.body("courses[0]", equalTo("SeleniumTesting"))
.body("courses[1]", equalTo("DevOps")).header("Content-Type", "application/json")
.log().all();
}
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All Test Suite" >
<test name="RestAssured">
<classes>
<class name="zacksolutions.DayOne.HttpRequestTest">
</class>
</classes>
</test>
</suite>