fix: Post data using Hashmap
This commit is contained in:
parent
279c27afcd
commit
2902314765
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal 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
182
jsonServer/students.json
Normal 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
13
pom.xml
@ -10,7 +10,10 @@
|
|||||||
<name>restAssured</name>
|
<name>restAssured</name>
|
||||||
<url>http://maven.apache.org</url>
|
<url>http://maven.apache.org</url>
|
||||||
|
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
@ -131,4 +134,14 @@
|
|||||||
<version>5.5.0</version>
|
<version>5.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</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>
|
</project>
|
||||||
|
|||||||
@ -5,13 +5,12 @@ import org.testng.annotations.Test;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import static io.restassured.RestAssured.*;
|
import static io.restassured.RestAssured.*;
|
||||||
import static io.restassured.matcher.ResponseAwareMatcher.*;
|
|
||||||
import static org.hamcrest.Matcher.*;
|
|
||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
|
||||||
public class HttpRequest {
|
public class HttpRequestTest {
|
||||||
public int id;
|
public int id;
|
||||||
public String job;
|
public String job;
|
||||||
|
|
||||||
@Test(priority = 1)
|
@Test(priority = 1)
|
||||||
void getUser() {
|
void getUser() {
|
||||||
when()
|
when()
|
||||||
@ -21,29 +20,32 @@ public class HttpRequest {
|
|||||||
.body("page", equalTo(2))
|
.body("page", equalTo(2))
|
||||||
.log().all();
|
.log().all();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(priority = 2)
|
@Test(priority = 2)
|
||||||
void createUser(){
|
void createUser() {
|
||||||
HashMap<String,String> data = new HashMap<>();
|
HashMap<String, String> data = new HashMap<>();
|
||||||
data.put("name", "Zakaria");
|
data.put("name", "Zakaria");
|
||||||
data.put("job", "Engineer");
|
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);
|
System.out.println(id);
|
||||||
}
|
}
|
||||||
@Test(priority = 3, dependsOnMethods = {"createUser"})
|
|
||||||
void updateUser(){
|
|
||||||
|
|
||||||
HashMap<String,String> data = new HashMap<>();
|
@Test(priority = 3, dependsOnMethods = { "createUser" })
|
||||||
|
void updateUser() {
|
||||||
|
|
||||||
|
HashMap<String, String> data = new HashMap<>();
|
||||||
data.put("name", "Sami");
|
data.put("name", "Sami");
|
||||||
data.put("job", "Engineer/Surgeon");
|
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)
|
@Test(priority = 4)
|
||||||
void deleteUser(){
|
void deleteUser() {
|
||||||
when().delete("https://reqres.in/api/users/" + id).then().statusCode(204).log().all();
|
when().delete("https://reqres.in/api/users/" + id).then().statusCode(204).log().all();
|
||||||
System.out.println("id number: " + id + " is deleted");
|
System.out.println("id number: " + id + " is deleted");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
44
src/test/java/zacksolutions/DayTwo/PostReqBodyTest.java
Normal file
44
src/test/java/zacksolutions/DayTwo/PostReqBodyTest.java
Normal 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
11
testNG.xml
11
testNG.xml
@ -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>
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user