(fix) Umbau zu SCS

This commit is contained in:
stefan
2025-07-21 12:08:20 +02:00
parent 83d0d81193
commit 62b5e71427
34 changed files with 3403 additions and 20 deletions
+18
View File
@@ -32,6 +32,24 @@ kotlin {
implementation(libs.postgresql.driver)
}
jvmTest.dependencies {
// Ktor server dependencies
implementation(libs.ktor.server.core)
implementation(libs.ktor.server.netty)
implementation(libs.ktor.server.tests)
// H2 database for testing
implementation(libs.h2.driver)
// Dependencies on other modules
implementation(project(":api-gateway"))
implementation(project(":master-data"))
implementation(project(":event-management"))
// Coroutines testing
implementation(libs.kotlinx.coroutines.test)
}
jsMain.dependencies {
// Kotlin React dependencies with explicit stable versions (for shared components)
implementation("org.jetbrains.kotlin-wrappers:kotlin-react:18.2.0-pre.467")
@@ -0,0 +1,105 @@
package at.mocode.validation.test
import at.mocode.validation.ApiValidationUtils
import at.mocode.validation.ValidationError
import kotlin.test.Test
import kotlin.test.assertTrue
import kotlin.test.assertFalse
import kotlinx.datetime.LocalDate
/**
* Test class for API validation utilities.
*
* This test verifies that the validation implementation works correctly
* for all API endpoints.
*/
class ValidationTest {
@Test
fun testQueryParameterValidation() {
// Test valid parameters
val validErrors = ApiValidationUtils.validateQueryParameters(
limit = "50",
offset = "0",
search = "test"
)
assertTrue(ApiValidationUtils.isValid(validErrors), "Valid query parameters should pass validation")
// Test invalid limit
val invalidLimitErrors = ApiValidationUtils.validateQueryParameters(
limit = "invalid"
)
assertFalse(ApiValidationUtils.isValid(invalidLimitErrors), "Invalid limit parameter should fail validation")
// Test limit out of range
val outOfRangeLimitErrors = ApiValidationUtils.validateQueryParameters(
limit = "2000"
)
assertFalse(ApiValidationUtils.isValid(outOfRangeLimitErrors), "Out of range limit should fail validation")
// Test invalid offset
val invalidOffsetErrors = ApiValidationUtils.validateQueryParameters(
offset = "-1"
)
assertFalse(ApiValidationUtils.isValid(invalidOffsetErrors), "Invalid offset parameter should fail validation")
}
@Test
fun testLoginRequestValidation() {
// Test valid login
val validErrors = ApiValidationUtils.validateLoginRequest("user@example.com", "password123")
assertTrue(ApiValidationUtils.isValid(validErrors), "Valid login request should pass validation")
// Test missing username
val missingUsernameErrors = ApiValidationUtils.validateLoginRequest(null, "password123")
assertFalse(ApiValidationUtils.isValid(missingUsernameErrors), "Missing username should fail validation")
// Test missing password
val missingPasswordErrors = ApiValidationUtils.validateLoginRequest("user@example.com", null)
assertFalse(ApiValidationUtils.isValid(missingPasswordErrors), "Missing password should fail validation")
}
@Test
fun testCountryRequestValidation() {
// Test valid country request
val validErrors = ApiValidationUtils.validateCountryRequest("AT", "AUT", "Österreich", "Austria")
assertTrue(ApiValidationUtils.isValid(validErrors), "Valid country request should pass validation")
// Test missing required fields
val missingFieldsErrors = ApiValidationUtils.validateCountryRequest(null, null, null, null)
assertFalse(ApiValidationUtils.isValid(missingFieldsErrors), "Missing required fields should fail validation")
// Test invalid ISO codes
val invalidIsoErrors = ApiValidationUtils.validateCountryRequest("INVALID", "INVALID", "Test", "Test")
assertFalse(ApiValidationUtils.isValid(invalidIsoErrors), "Invalid ISO codes should fail validation")
}
@Test
fun testHorseRequestValidation() {
// Test valid horse request
val validErrors = ApiValidationUtils.validateHorseRequest("Thunder", "123456789", "987654321", "OEPS123", "FEI456")
assertTrue(ApiValidationUtils.isValid(validErrors), "Valid horse request should pass validation")
// Test missing horse name
val missingNameErrors = ApiValidationUtils.validateHorseRequest(null, "123456789", "987654321", "OEPS123", "FEI456")
assertFalse(ApiValidationUtils.isValid(missingNameErrors), "Missing horse name should fail validation")
}
@Test
fun testEventRequestValidation() {
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)
assertTrue(ApiValidationUtils.isValid(validErrors), "Valid event request should pass validation")
// Test missing event name
val missingNameErrors = ApiValidationUtils.validateEventRequest(null, "Vienna", startDate, endDate, 100)
assertFalse(ApiValidationUtils.isValid(missingNameErrors), "Missing event name should fail validation")
// Test invalid date range (end before start)
val invalidDateErrors = ApiValidationUtils.validateEventRequest("Test Event", "Vienna", endDate, startDate, 100)
assertFalse(ApiValidationUtils.isValid(invalidDateErrors), "Invalid date range should fail validation")
}
}