Skip to content

Commit 4003b6d

Browse files
committed
added token generation and update order tests, modified the assertions for get order tests
1 parent c328322 commit 4003b6d

File tree

5 files changed

+134
-3
lines changed

5 files changed

+134
-3
lines changed

src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/APITests.java

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import java.util.List;
1515

1616
import static io.github.mfaisalkhatri.api.restfulecommerce.testdata.OrderDataBuilder.getNewOrder;
17+
import static io.github.mfaisalkhatri.api.restfulecommerce.testdata.OrderDataBuilder.getUpdatedOrder;
18+
import static io.github.mfaisalkhatri.api.restfulecommerce.testdata.TokenBuilder.getCredentials;
1719
import static org.testng.Assert.assertEquals;
1820
import static org.testng.Assert.assertNotNull;
1921

@@ -70,7 +72,7 @@ public void testShouldGetAllOrders() {
7072
}
7173

7274
@Test
73-
public void testShouldGetOrderUsingId() {
75+
public void testShouldGetOrderUsingOrderId() {
7476
int orderId = 1;
7577
APIResponse response = request.get("/getOrder", RequestOptions.create().setQueryParam("id", orderId));
7678

@@ -88,7 +90,7 @@ public void testShouldGetOrderUsingId() {
8890

8991
@Test
9092
public void testShouldGetOrdersUsingUserId() {
91-
int userId = 2;
93+
String userId = "2";
9294

9395
APIResponse response = request.get("/getOrder", RequestOptions.create().setQueryParam("user_id", userId));
9496

@@ -100,8 +102,73 @@ public void testShouldGetOrdersUsingUserId() {
100102

101103
assertEquals(response.status(), 200);
102104
assertEquals(responseObject.get("message"), "Order found!!");
103-
assertEquals(orderList.get(0).getUserId(), ordersArray.getJSONObject(0).get("user_id"));
105+
assertEquals(ordersArray.getJSONObject(0).get("user_id"), userId);
106+
107+
}
108+
109+
@Test
110+
public void testShouldGetOrdersUsingProductId() {
111+
String productId = "332";
112+
113+
114+
APIResponse response = request.get("/getOrder", RequestOptions.create().setQueryParam("product_id", productId));
115+
116+
Helper helper = new Helper(response);
117+
helper.logResponseDetails();
118+
119+
final JSONObject responseObject = new JSONObject(response.text());
120+
final JSONArray ordersArray = responseObject.getJSONArray("orders");
121+
122+
assertEquals(response.status(), 200);
123+
assertEquals(responseObject.get("message"), "Order found!!");
124+
assertEquals(ordersArray.getJSONObject(0).get("product_id"), productId);
125+
126+
}
127+
128+
@Test
129+
public void testTokenGeneration() {
130+
APIResponse response = request.post("/auth", RequestOptions.create().setData(getCredentials()));
104131

132+
Helper helper = new Helper(response);
133+
helper.logResponseDetails();
134+
135+
final JSONObject responseObject = new JSONObject(response.text());
136+
137+
assertEquals(response.status(), 201);
138+
assertNotNull(responseObject.get("token"));
139+
assertEquals(responseObject.get("message"), "Authentication Successful!");
140+
}
141+
142+
@Test
143+
public void testShouldUpdateTheOrderUsingPut() {
144+
145+
APIResponse authResponse = request.post("/auth", RequestOptions.create().setData(getCredentials()));
146+
147+
final JSONObject authResponseObject = new JSONObject(authResponse.text());
148+
String token = authResponseObject.get("token").toString();
149+
150+
OrderData updatedOrder = getUpdatedOrder();
151+
152+
int orderId = 2;
153+
APIResponse response = request.put("/updateOrder/" + orderId, RequestOptions.create()
154+
.setHeader("Authorization", token)
155+
.setData(updatedOrder));
156+
157+
Helper helper = new Helper(response);
158+
helper.logResponseDetails();
159+
160+
final JSONObject updateOrderResponseObject = new JSONObject(response.text());
161+
final JSONObject orderObject = updateOrderResponseObject.getJSONObject("order");
162+
163+
assertEquals(response.status(), 200);
164+
assertEquals(updateOrderResponseObject.get("message"), "Order updated successfully!");
165+
assertEquals(orderId, orderObject.get("id"));
166+
assertEquals(updatedOrder.getUserId(), orderObject.get("user_id"));
167+
assertEquals(updatedOrder.getProductId(), orderObject.get("product_id"));
168+
assertEquals(updatedOrder.getProductName(), orderObject.get("product_name"));
169+
assertEquals(updatedOrder.getProductAmount(), orderObject.get("product_amount"));
170+
assertEquals(updatedOrder.getTotalAmt(), orderObject.get("total_amt"));
105171
}
106172

173+
107174
}

src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/testdata/OrderDataBuilder.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,26 @@ public static OrderData getNewOrder() {
2525
.totalAmt(totalAmount)
2626
.build();
2727
}
28+
29+
public static OrderData getUpdatedOrder() {
30+
int userId = FAKER.number().numberBetween(4, 5);
31+
int productId = FAKER.number().numberBetween(335,337);
32+
int productAmount = FAKER.number().numberBetween(510, 515);
33+
int quantity = FAKER.number().numberBetween(1, 2);
34+
int taxAmount = FAKER.number().numberBetween(35,45);
35+
int totalAmount = (productAmount*quantity)+taxAmount;
36+
37+
38+
return OrderData.builder()
39+
.userId(String.valueOf(userId))
40+
.productId(String.valueOf(productId))
41+
.productName(FAKER.commerce().productName())
42+
.productAmount(productAmount)
43+
.qty(quantity)
44+
.taxAmt(taxAmount)
45+
.totalAmt(totalAmount)
46+
.build();
47+
48+
49+
}
2850
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.github.mfaisalkhatri.api.restfulecommerce.testdata;
2+
3+
public class TokenBuilder {
4+
5+
public static TokenData getCredentials() {
6+
return TokenData.builder().username("admin")
7+
.password("secretPass123")
8+
.build();
9+
}
10+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.github.mfaisalkhatri.api.restfulecommerce.testdata;
2+
3+
import lombok.Builder;
4+
import lombok.Getter;
5+
6+
@Getter
7+
@Builder
8+
public class TokenData {
9+
10+
private String username;
11+
private String password;
12+
13+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
3+
<suite name="Restful ECommerce Test Suite">
4+
<test name="Testing Each API of ECommerce App separately">
5+
<classes>
6+
<class name="io.github.mfaisalkhatri.api.restfulecommerce.APITests">
7+
<methods>
8+
<include name="testShouldCreateNewOrders"/>
9+
<include name="testShouldGetAllOrders"/>
10+
<include name="testShouldGetOrderUsingOrderId"/>
11+
<include name="testShouldGetOrdersUsingUserId"/>
12+
<include name="testShouldGetOrdersUsingProductId"/>
13+
<include name="testTokenGeneration"/>
14+
<include name="testShouldUpdateTheOrderUsingPut"/>
15+
</methods>
16+
</class>
17+
</classes>
18+
</test>
19+
</suite>

0 commit comments

Comments
 (0)