{
	"info": {
		"_postman_id": "615a46a5-3741-4a08-8bf4-c3c1cc594030",
		"name": "juice-shop-for-of",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "16137040",
		"_collection_link": "https://lively-spaceship-121921.postman.co/workspace/API-Testing-with-Test-Mentor~2f7087c2-3e72-4d37-9d46-c5791378642d/collection/16137040-615a46a5-3741-4a08-8bf4-c3c1cc594030?action=share&source=collection_link&creator=16137040"
	},
	"item": [
		{
			"name": "Register user",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"// Define account test variables and store them in environment\r",
							"let Email = \"apitesting@testmentor.com\";\r",
							"let Password = \"123456\";\r",
							"pm.environment.set(\"Email\", Email);\r",
							"pm.environment.set(\"Password\", Password);"
						],
						"type": "text/javascript"
					}
				},
				{
					"listen": "test",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"protocolProfileBehavior": {
				"disabledSystemHeaders": {}
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json",
						"type": "text"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n    \"email\": \"{{Email}}\",\r\n    \"password\": \"{{Password}}\",\r\n    \"passwordRepeat\": \"123456\",\r\n    \"securityQuestion\": {\r\n        \"id\": 1,\r\n        \"question\": \"Your eldest siblings middle name?\",\r\n        \"createdAt\": \"2023-05-22T09:18:31.907Z\",\r\n        \"updatedAt\": \"2023-05-22T09:18:31.907Z\"\r\n    },\r\n    \"securityAnswer\": \"abc\"\r\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "{{base-url}}/api/Users/",
					"host": [
						"{{base-url}}"
					],
					"path": [
						"api",
						"Users",
						""
					]
				}
			},
			"response": []
		},
		{
			"name": "Login",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"let statuscode = pm.response.code\r",
							"if (statuscode === 200) {\r",
							"      let token = pm.response.json().authentication.token\r",
							"      let basketId = pm.response.json().authentication.bid\r",
							"      pm.environment.set(\"access_token\",token)\r",
							"      pm.environment.set(\"basketId\",basketId)\r",
							"}"
						],
						"type": "text/javascript"
					}
				},
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json",
						"type": "text",
						"disabled": true
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n    \"email\": \"{{Email}}\",\r\n    \"password\": \"{{Password}}\"\r\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "{{base-url}}/rest/user/login",
					"host": [
						"{{base-url}}"
					],
					"path": [
						"rest",
						"user",
						"login"
					]
				}
			},
			"response": []
		},
		{
			"name": "Add Item",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript"
					}
				},
				{
					"listen": "test",
					"script": {
						"exec": [
							"// Retrieve 'basketItem_id' and 'product_id' from API respone\r",
							"// and set them into environment\r",
							"let statuscode = pm.response.code\r",
							"if (statuscode === 200) {\r",
							"      let basketItem_id = pm.response.json().data.id\r",
							"      let product_id = pm.response.json().data.ProductId\r",
							"      pm.environment.set(\"basketItem_id\",basketItem_id)\r",
							"      pm.environment.set(\"product_id\",product_id)\r",
							"}"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Accept",
						"value": "application/json, text/plain, */*"
					},
					{
						"key": "Accept-Language",
						"value": "en-US,en;q=0.9,ja;q=0.8"
					},
					{
						"key": "Authorization",
						"value": "Bearer {{access_token}}"
					},
					{
						"key": "Connection",
						"value": "keep-alive"
					},
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "Cookie",
						"value": "language=en; cookieconsent_status=dismiss; welcomebanner_status=dismiss; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJpZCI6MjIsInVzZXJuYW1lIjoiU2FuZyBCdWkiLCJlbWFpbCI6InNhbmdAc2FuZy5jb20iLCJwYXNzd29yZCI6ImUxMGFkYzM5NDliYTU5YWJiZTU2ZTA1N2YyMGY4ODNlIiwicm9sZSI6ImN1c3RvbWVyIiwiZGVsdXhlVG9rZW4iOiIiLCJsYXN0TG9naW5JcCI6IjEyNy4wLjAuMSIsInByb2ZpbGVJbWFnZSI6Ii9hc3NldHMvcHVibGljL2ltYWdlcy91cGxvYWRzL2RlZmF1bHQuc3ZnIiwidG90cFNlY3JldCI6IiIsImlzQWN0aXZlIjp0cnVlLCJjcmVhdGVkQXQiOiIyMDIzLTEwLTA2VDAyOjAzOjM0LjA0NVoiLCJ1cGRhdGVkQXQiOiIyMDIzLTEwLTA2VDAyOjIyOjU1Ljk0MloiLCJkZWxldGVkQXQiOm51bGx9LCJpYXQiOjE2OTY1NTg5OTV9.tVTvltq-mMLgy1gCsc-ycVh6fPoaCbgnL5_kMZzKFMl4jw2V23ARaDSOYod70NSd6Rk6CzoRdSHoB2P9AwnFr-ernPzNVdgZdE0OnP43NFetbNpSS8qN034q4VBVqKx7vJzaxQfqVDDVcCtGMrpJVyMHuX9jMQWTWI906k6usoo"
					},
					{
						"key": "Origin",
						"value": "http://localhost:3000"
					},
					{
						"key": "Referer",
						"value": "http://localhost:3000/"
					},
					{
						"key": "Sec-Fetch-Dest",
						"value": "empty"
					},
					{
						"key": "Sec-Fetch-Mode",
						"value": "cors"
					},
					{
						"key": "Sec-Fetch-Site",
						"value": "same-origin"
					},
					{
						"key": "User-Agent",
						"value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.55"
					},
					{
						"key": "sec-ch-ua",
						"value": "\"Microsoft Edge\";v=\"117\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"117\""
					},
					{
						"key": "sec-ch-ua-mobile",
						"value": "?0"
					},
					{
						"key": "sec-ch-ua-platform",
						"value": "\"Windows\""
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\r\n    \"ProductId\": \"6\",\r\n    \"BasketId\": \"{{basketId}}\",\r\n    \"quantity\": 5\r\n}"
				},
				"url": {
					"raw": "{{base-url}}/api/BasketItems/",
					"host": [
						"{{base-url}}"
					],
					"path": [
						"api",
						"BasketItems",
						""
					]
				}
			},
			"response": []
		},
		{
			"name": "Get Basket",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"// Retrieve 'basketItem_id' and 'product_id' from Environment\r",
							"let basketItem_id = pm.environment.get(\"basketItem_id\")\r",
							"let product_id = parseInt (pm.environment.get(\"product_id\"))\r",
							"\r",
							"// Retrieve the list of products in the Basket from respone of the API Get Basket\r",
							"let productList = pm.response.json().data.Products\r",
							"\r",
							"// Define a variable to check if the specified product has been added by the API 'Add Item'\r",
							"let isExistsProductIdAdded = false;\r",
							"\r",
							"// Loop through each product in the Basket\r",
							"for (let product of productList) {\r",
							"    let basketItemId = parseInt(product.BasketItem.id)\r",
							"    let productId = parseInt(product.BasketItem.ProductId)\r",
							"    // Check if the current product matches the specified 'basketItem_id' and 'product_id'\r",
							"    if (basketItem_id === basketItemId && productId === product_id) {\r",
							"        isExistsProductIdAdded = true\r",
							"    }\r",
							"}\r",
							"// Verify whether the specified product has been added to the Basket Items list\r",
							"pm.test(\"Verify productId = \" + product_id + \" was added successfully in Basket Items list\", function () {\r",
							"    pm.expect(isExistsProductIdAdded).to.eql(true)\r",
							"});\r",
							""
						],
						"type": "text/javascript"
					}
				},
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "GET",
				"header": [
					{
						"key": "Accept",
						"value": "application/json, text/plain, */*"
					},
					{
						"key": "Accept-Language",
						"value": "en-US,en;q=0.9,ja;q=0.8"
					},
					{
						"key": "Authorization",
						"value": "Bearer {{access_token}}"
					},
					{
						"key": "Connection",
						"value": "keep-alive"
					},
					{
						"key": "Cookie",
						"value": "language=en; cookieconsent_status=dismiss; welcomebanner_status=dismiss; token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJpZCI6MjIsInVzZXJuYW1lIjoiU2FuZyBCdWkiLCJlbWFpbCI6InNhbmdAc2FuZy5jb20iLCJwYXNzd29yZCI6ImUxMGFkYzM5NDliYTU5YWJiZTU2ZTA1N2YyMGY4ODNlIiwicm9sZSI6ImN1c3RvbWVyIiwiZGVsdXhlVG9rZW4iOiIiLCJsYXN0TG9naW5JcCI6IjEyNy4wLjAuMSIsInByb2ZpbGVJbWFnZSI6Ii9hc3NldHMvcHVibGljL2ltYWdlcy91cGxvYWRzL2RlZmF1bHQuc3ZnIiwidG90cFNlY3JldCI6IiIsImlzQWN0aXZlIjp0cnVlLCJjcmVhdGVkQXQiOiIyMDIzLTEwLTA2VDAyOjAzOjM0LjA0NVoiLCJ1cGRhdGVkQXQiOiIyMDIzLTEwLTA2VDAyOjIyOjU1Ljk0MloiLCJkZWxldGVkQXQiOm51bGx9LCJpYXQiOjE2OTY1NTg5OTV9.tVTvltq-mMLgy1gCsc-ycVh6fPoaCbgnL5_kMZzKFMl4jw2V23ARaDSOYod70NSd6Rk6CzoRdSHoB2P9AwnFr-ernPzNVdgZdE0OnP43NFetbNpSS8qN034q4VBVqKx7vJzaxQfqVDDVcCtGMrpJVyMHuX9jMQWTWI906k6usoo"
					},
					{
						"key": "Referer",
						"value": "http://localhost:3000/"
					},
					{
						"key": "Sec-Fetch-Dest",
						"value": "empty"
					},
					{
						"key": "Sec-Fetch-Mode",
						"value": "cors"
					},
					{
						"key": "Sec-Fetch-Site",
						"value": "same-origin"
					},
					{
						"key": "User-Agent",
						"value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.55"
					},
					{
						"key": "sec-ch-ua",
						"value": "\"Microsoft Edge\";v=\"117\", \"Not;A=Brand\";v=\"8\", \"Chromium\";v=\"117\""
					},
					{
						"key": "sec-ch-ua-mobile",
						"value": "?0"
					},
					{
						"key": "sec-ch-ua-platform",
						"value": "\"Windows\""
					}
				],
				"url": {
					"raw": "{{base-url}}/rest/basket/{{basketId}}",
					"host": [
						"{{base-url}}"
					],
					"path": [
						"rest",
						"basket",
						"{{basketId}}"
					]
				}
			},
			"response": []
		}
	]
}