Files
meldestelle/test_validation.kt
T
stefan 8c1ddb6cb2 (fix) Umbau zu SCS
**Backend:**
- Vervollständigen Sie alle Repository-Implementierungen
- Implementieren Sie die Authentifizierung und Autorisierung
- Fügen Sie Validierung für alle API-Endpunkte hinzu
2025-07-19 17:54:25 +02:00

127 lines
5.1 KiB
Kotlin

#!/usr/bin/env kotlin
/**
* Simple test script to verify API validation is working correctly.
* This script tests the validation implementation added to all API endpoints.
*/
import at.mocode.validation.ApiValidationUtils
import at.mocode.validation.ValidationError
fun main() {
println("=== API Validation Test ===")
println()
// Test 1: Query Parameter Validation
println("Test 1: Query Parameter Validation")
testQueryParameterValidation()
println()
// Test 2: Login Request Validation
println("Test 2: Login Request Validation")
testLoginRequestValidation()
println()
// Test 3: Country Request Validation
println("Test 3: Country Request Validation")
testCountryRequestValidation()
println()
// Test 4: Horse Request Validation
println("Test 4: Horse Request Validation")
testHorseRequestValidation()
println()
// Test 5: Event Request Validation
println("Test 5: Event Request Validation")
testEventRequestValidation()
println()
println("=== All Validation Tests Completed ===")
}
fun testQueryParameterValidation() {
// Test valid parameters
val validErrors = ApiValidationUtils.validateQueryParameters(
limit = "50",
offset = "0",
search = "test"
)
println("Valid query parameters: ${if (ApiValidationUtils.isValid(validErrors)) "✓ PASS" else "✗ FAIL"}")
// Test invalid limit
val invalidLimitErrors = ApiValidationUtils.validateQueryParameters(
limit = "invalid"
)
println("Invalid limit parameter: ${if (!ApiValidationUtils.isValid(invalidLimitErrors)) "✓ PASS" else "✗ FAIL"}")
// Test limit out of range
val outOfRangeLimitErrors = ApiValidationUtils.validateQueryParameters(
limit = "2000"
)
println("Out of range limit: ${if (!ApiValidationUtils.isValid(outOfRangeLimitErrors)) "✓ PASS" else "✗ FAIL"}")
// Test invalid offset
val invalidOffsetErrors = ApiValidationUtils.validateQueryParameters(
offset = "-1"
)
println("Invalid offset parameter: ${if (!ApiValidationUtils.isValid(invalidOffsetErrors)) "✓ PASS" else "✗ FAIL"}")
}
fun testLoginRequestValidation() {
// Test valid login
val validErrors = ApiValidationUtils.validateLoginRequest("user@example.com", "password123")
println("Valid login request: ${if (ApiValidationUtils.isValid(validErrors)) "✓ PASS" else "✗ FAIL"}")
// Test missing username
val missingUsernameErrors = ApiValidationUtils.validateLoginRequest(null, "password123")
println("Missing username: ${if (!ApiValidationUtils.isValid(missingUsernameErrors)) "✓ PASS" else "✗ FAIL"}")
// Test missing password
val missingPasswordErrors = ApiValidationUtils.validateLoginRequest("user@example.com", null)
println("Missing password: ${if (!ApiValidationUtils.isValid(missingPasswordErrors)) "✓ PASS" else "✗ FAIL"}")
}
fun testCountryRequestValidation() {
// Test valid country request
val validErrors = ApiValidationUtils.validateCountryRequest("AT", "AUT", "Österreich", "Austria")
println("Valid country request: ${if (ApiValidationUtils.isValid(validErrors)) "✓ PASS" else "✗ FAIL"}")
// Test missing required fields
val missingFieldsErrors = ApiValidationUtils.validateCountryRequest(null, null, null, null)
println("Missing required fields: ${if (!ApiValidationUtils.isValid(missingFieldsErrors)) "✓ PASS" else "✗ FAIL"}")
// Test invalid ISO codes
val invalidIsoErrors = ApiValidationUtils.validateCountryRequest("INVALID", "INVALID", "Test", "Test")
println("Invalid ISO codes: ${if (!ApiValidationUtils.isValid(invalidIsoErrors)) "✓ PASS" else "✗ FAIL"}")
}
fun testHorseRequestValidation() {
// Test valid horse request
val validErrors = ApiValidationUtils.validateHorseRequest("Thunder", "123456789", "987654321", "OEPS123", "FEI456")
println("Valid horse request: ${if (ApiValidationUtils.isValid(validErrors)) "✓ PASS" else "✗ FAIL"}")
// Test missing horse name
val missingNameErrors = ApiValidationUtils.validateHorseRequest(null, "123456789", "987654321", "OEPS123", "FEI456")
println("Missing horse name: ${if (!ApiValidationUtils.isValid(missingNameErrors)) "✓ PASS" else "✗ FAIL"}")
}
fun testEventRequestValidation() {
import kotlinx.datetime.LocalDate
val startDate = LocalDate(2024, 6, 1)
val endDate = LocalDate(2024, 6, 3)
// Test valid event request
val validErrors = ApiValidationUtils.validateEventRequest("Test Event", "Vienna", startDate, endDate, 100)
println("Valid event request: ${if (ApiValidationUtils.isValid(validErrors)) "✓ PASS" else "✗ FAIL"}")
// Test missing event name
val missingNameErrors = ApiValidationUtils.validateEventRequest(null, "Vienna", startDate, endDate, 100)
println("Missing event name: ${if (!ApiValidationUtils.isValid(missingNameErrors)) "✓ PASS" else "✗ FAIL"}")
// Test invalid date range (end before start)
val invalidDateErrors = ApiValidationUtils.validateEventRequest("Test Event", "Vienna", endDate, startDate, 100)
println("Invalid date range: ${if (!ApiValidationUtils.isValid(invalidDateErrors)) "✓ PASS" else "✗ FAIL"}")
}