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>
|
||||
<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>
|
||||
|
||||
@ -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<>();
|
||||
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<>();
|
||||
@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(){
|
||||
void deleteUser() {
|
||||
when().delete("https://reqres.in/api/users/" + id).then().statusCode(204).log().all();
|
||||
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