diff --git a/test_api.sh b/test_api.sh new file mode 100644 index 0000000..85112f5 --- /dev/null +++ b/test_api.sh @@ -0,0 +1,117 @@ +#!/bin/bash + +# Configuration +API_URL="http://localhost:5000" +LOG_FILE="test_results.log" + +# Clear previous log +> "$LOG_FILE" + +echo "Starting API tests..." +echo "Results will be saved to: $LOG_FILE" +echo "========================================" + +# Function to log results +log_result() { + echo "$1" | tee -a "$LOG_FILE" +} + +# Test 1: Home page +log_result "" +log_result "Test 1: GET / (Home page)" +log_result "----------------------------" +curl -s -X GET "$API_URL/" | tee -a "$LOG_FILE" +log_result "" + +sleep 1 + +# Test 2: Get all products +log_result "" +log_result "Test 2: GET /products (All products)" +log_result "----------------------------" +curl -s -X GET "$API_URL/products" | tee -a "$LOG_FILE" +log_result "" + +sleep 1 + +# Test 3: Get single product +log_result "" +log_result "Test 3: GET /products/1 (Single product)" +log_result "----------------------------" +curl -s -X GET "$API_URL/products/1" | tee -a "$LOG_FILE" +log_result "" + +sleep 1 + +# Test 4: Add new product +log_result "" +log_result "Test 4: POST /products (Add new product)" +log_result "----------------------------" +curl -s -X POST "$API_URL/products" \ + -H "Content-Type: application/json" \ + -d '{ + "name": "Keyboard", + "price": 300, + "quantity": 20 + }' | tee -a "$LOG_FILE" +log_result "" + +sleep 1 + +# Test 5: Update product +log_result "" +log_result "Test 5: PUT /products/1 (Update product)" +log_result "----------------------------" +curl -s -X PUT "$API_URL/products/1" \ + -H "Content-Type: application/json" \ + -d '{ + "price": 4500, + "quantity": 15 + }' | tee -a "$LOG_FILE" +log_result "" + +sleep 1 + +# Test 6: Create order +log_result "" +log_result "Test 6: POST /orders (Create order)" +log_result "----------------------------" +curl -s -X POST "$API_URL/orders" \ + -H "Content-Type: application/json" \ + -d '{ + "product_id": 2, + "quantity": 5 + }' | tee -a "$LOG_FILE" +log_result "" + +sleep 1 + +# Test 7: Get all orders +log_result "" +log_result "Test 7: GET /orders (All orders)" +log_result "----------------------------" +curl -s -X GET "$API_URL/orders" | tee -a "$LOG_FILE" +log_result "" + +sleep 1 + +# Test 8: Delete product +log_result "" +log_result "Test 8: DELETE /products/2 (Delete product)" +log_result "----------------------------" +curl -s -X DELETE "$API_URL/products/2" | tee -a "$LOG_FILE" +log_result "" + +sleep 1 + +# Test 9: Try to get deleted product (should fail) +log_result "" +log_result "Test 9: GET /products/2 (Should return 404)" +log_result "----------------------------" +curl -s -X GET "$API_URL/products/2" | tee -a "$LOG_FILE" +log_result "" + +log_result "" +log_result "========================================" +log_result "All tests completed!" +log_result "Check $LOG_FILE for full results"