# Manual Testing Resources

This directory contains all manual testing resources including test scripts, XML samples, and Postman collections for the Mercury UPI PSP Platform.

## 📁 Directory Structure

```
manual_testing/
├── scripts/                     # Testing Shell Scripts
│   ├── test_api_endpoints.sh    # API endpoint testing
│   ├── test_complete_upi_apis.sh # Complete UPI API testing
│   ├── test_complete_upi_implementation.sh # Full implementation test
│   ├── test_npci_callbacks.sh   # NPCI callback testing
│   ├── test_npci_qr_validation.sh # QR validation testing
│   ├── test_api.sh              # Basic API testing
│   ├── test_apis.sh             # Multiple API testing
│   └── verify_tidewave.sh       # TideWave integration verification
├── xml_samples/                 # XML Test Files
│   ├── test_qr_validation.xml   # Basic QR validation XML
│   ├── test_qr_validation_fixed.xml # Fixed QR validation XML
│   ├── test_qr_validation_new.xml # New QR validation XML
│   └── test_qr_validation_unique.xml # Unique QR validation XML
├── postman/                     # Postman Collections
│   └── Mercury_UPI_PSP_Postman_Collection.json # Complete API collection
├── manual_test.exs              # Manual Elixir testing script
├── quick_test.exs               # Quick testing utilities
├── test_international_reqpay.exs # International payment testing
└── README.md                    # This file
```

## 🧪 Testing Categories

### API Testing Scripts
- **Basic API Testing**: `scripts/test_api.sh` and `scripts/test_apis.sh`
- **Endpoint Testing**: `scripts/test_api_endpoints.sh`
- **Complete Implementation**: `scripts/test_complete_upi_implementation.sh`
- **UPI API Testing**: `scripts/test_complete_upi_apis.sh`

### NPCI & Compliance Testing
- **NPCI Callbacks**: `scripts/test_npci_callbacks.sh`
- **QR Validation**: `scripts/test_npci_qr_validation.sh`
- **XML Samples**: Various QR validation XML files in `xml_samples/`

### Integration Testing
- **TideWave Verification**: `scripts/verify_tidewave.sh`
- **International Payments**: `test_international_reqpay.exs`

### Interactive Testing
- **Postman Collection**: Complete API testing collection
- **Manual Elixir Scripts**: Quick testing and debugging utilities

## 🚀 Quick Start

### Running Shell Scripts
```bash
# Make scripts executable
chmod +x manual_testing/scripts/*.sh

# Run basic API tests
./manual_testing/scripts/test_api.sh

# Run complete implementation tests
./manual_testing/scripts/test_complete_upi_implementation.sh

# Verify TideWave integration
./manual_testing/scripts/verify_tidewave.sh
```

### Using Elixir Test Scripts
```bash
# Run quick tests
mix run manual_testing/quick_test.exs

# Run manual tests
mix run manual_testing/manual_test.exs

# Test international payments
mix run manual_testing/test_international_reqpay.exs
```

### Postman Collection
1. Import `postman/Mercury_UPI_PSP_Postman_Collection.json` into Postman
2. Set up environment variables for your testing environment
3. Run individual requests or the entire collection

## 📝 XML Samples

The `xml_samples/` directory contains various QR validation XML files for testing:

- **test_qr_validation.xml**: Basic QR validation structure
- **test_qr_validation_fixed.xml**: Fixed validation issues
- **test_qr_validation_new.xml**: New validation format
- **test_qr_validation_unique.xml**: Unique validation scenarios

## 🔧 Prerequisites

Before running tests, ensure:

1. **Server Running**: The Phoenix server is running (`mix phx.server`)
2. **Database**: Database is migrated and seeded
3. **Environment**: Proper environment variables are set
4. **Dependencies**: All required dependencies are installed

## 📊 Test Coverage

These manual tests cover:

- ✅ API endpoint functionality
- ✅ UPI transaction flows
- ✅ QR code validation
- ✅ NPCI callback handling
- ✅ International payment processing
- ✅ TideWave integration
- ✅ Error handling and edge cases

## 🚨 Important Notes

- **Production Safety**: Never run these tests against production environments
- **Data Cleanup**: Some tests may create test data that needs cleanup
- **Rate Limiting**: Be aware of API rate limits during testing
- **Logs**: Check server logs for detailed error information

## 📞 Support

For testing issues or questions:
1. Check the relevant test script for usage instructions
2. Review server logs for error details
3. Refer to the main documentation in `../docs/`
4. Contact the development team for assistance
