diff --git a/backend-spring/.gradle/8.14.2/fileChanges/last-build.bin b/backend-spring/.gradle/8.14.2/fileChanges/last-build.bin new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/backend-spring/.gradle/8.14.2/fileChanges/last-build.bin differ diff --git a/backend-spring/.gradle/8.14.2/fileHashes/fileHashes.lock b/backend-spring/.gradle/8.14.2/fileHashes/fileHashes.lock new file mode 100644 index 0000000..b7b63d0 Binary files /dev/null and b/backend-spring/.gradle/8.14.2/fileHashes/fileHashes.lock differ diff --git a/backend-spring/.gradle/8.14.2/gc.properties b/backend-spring/.gradle/8.14.2/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/backend-spring/.gradle/8.14/fileChanges/last-build.bin b/backend-spring/.gradle/8.14/fileChanges/last-build.bin new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/backend-spring/.gradle/8.14/fileChanges/last-build.bin differ diff --git a/backend-spring/.gradle/8.14/fileHashes/fileHashes.lock b/backend-spring/.gradle/8.14/fileHashes/fileHashes.lock new file mode 100644 index 0000000..efbed8a Binary files /dev/null and b/backend-spring/.gradle/8.14/fileHashes/fileHashes.lock differ diff --git a/backend-spring/.gradle/8.14/gc.properties b/backend-spring/.gradle/8.14/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/backend-spring/.gradle/9.3.1/checksums/checksums.lock b/backend-spring/.gradle/9.3.1/checksums/checksums.lock new file mode 100644 index 0000000..6feb0c0 Binary files /dev/null and b/backend-spring/.gradle/9.3.1/checksums/checksums.lock differ diff --git a/backend-spring/.gradle/9.3.1/checksums/md5-checksums.bin b/backend-spring/.gradle/9.3.1/checksums/md5-checksums.bin new file mode 100644 index 0000000..abc5d6a Binary files /dev/null and b/backend-spring/.gradle/9.3.1/checksums/md5-checksums.bin differ diff --git a/backend-spring/.gradle/9.3.1/checksums/sha1-checksums.bin b/backend-spring/.gradle/9.3.1/checksums/sha1-checksums.bin new file mode 100644 index 0000000..d2df6fd Binary files /dev/null and b/backend-spring/.gradle/9.3.1/checksums/sha1-checksums.bin differ diff --git a/backend-spring/.gradle/9.3.1/executionHistory/executionHistory.bin b/backend-spring/.gradle/9.3.1/executionHistory/executionHistory.bin new file mode 100644 index 0000000..da83d8d Binary files /dev/null and b/backend-spring/.gradle/9.3.1/executionHistory/executionHistory.bin differ diff --git a/backend-spring/.gradle/9.3.1/executionHistory/executionHistory.lock b/backend-spring/.gradle/9.3.1/executionHistory/executionHistory.lock new file mode 100644 index 0000000..6026b1d Binary files /dev/null and b/backend-spring/.gradle/9.3.1/executionHistory/executionHistory.lock differ diff --git a/backend-spring/.gradle/9.3.1/fileChanges/last-build.bin b/backend-spring/.gradle/9.3.1/fileChanges/last-build.bin new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/backend-spring/.gradle/9.3.1/fileChanges/last-build.bin differ diff --git a/backend-spring/.gradle/9.3.1/fileHashes/fileHashes.bin b/backend-spring/.gradle/9.3.1/fileHashes/fileHashes.bin new file mode 100644 index 0000000..7e93dbf Binary files /dev/null and b/backend-spring/.gradle/9.3.1/fileHashes/fileHashes.bin differ diff --git a/backend-spring/.gradle/9.3.1/fileHashes/fileHashes.lock b/backend-spring/.gradle/9.3.1/fileHashes/fileHashes.lock new file mode 100644 index 0000000..1d78bd6 Binary files /dev/null and b/backend-spring/.gradle/9.3.1/fileHashes/fileHashes.lock differ diff --git a/backend-spring/.gradle/9.3.1/fileHashes/resourceHashesCache.bin b/backend-spring/.gradle/9.3.1/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000..f96e22e Binary files /dev/null and b/backend-spring/.gradle/9.3.1/fileHashes/resourceHashesCache.bin differ diff --git a/backend-spring/.gradle/9.3.1/gc.properties b/backend-spring/.gradle/9.3.1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/backend-spring/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/backend-spring/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000..1369599 Binary files /dev/null and b/backend-spring/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/backend-spring/.gradle/buildOutputCleanup/cache.properties b/backend-spring/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..3dc08d3 --- /dev/null +++ b/backend-spring/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Sat Feb 28 18:28:04 CET 2026 +gradle.version=9.3.1 diff --git a/backend-spring/.gradle/buildOutputCleanup/outputFiles.bin b/backend-spring/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000..b2c6269 Binary files /dev/null and b/backend-spring/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/backend-spring/.gradle/file-system.probe b/backend-spring/.gradle/file-system.probe new file mode 100644 index 0000000..cce3f30 Binary files /dev/null and b/backend-spring/.gradle/file-system.probe differ diff --git a/backend-spring/.gradle/vcs-1/gc.properties b/backend-spring/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/backend-spring/Dockerfile b/backend-spring/Dockerfile new file mode 100644 index 0000000..c040705 --- /dev/null +++ b/backend-spring/Dockerfile @@ -0,0 +1,17 @@ +FROM eclipse-temurin:25-jdk-alpine AS build + +WORKDIR /app +COPY gradle ./gradle +COPY gradlew build.gradle.kts settings.gradle.kts ./ +RUN ./gradlew dependencies --no-daemon + +COPY src ./src +RUN ./gradlew bootJar --no-daemon -x test + +FROM eclipse-temurin:25-jre-alpine + +WORKDIR /app +COPY --from=build /app/build/libs/*.jar app.jar + +EXPOSE 8080 +CMD ["java", "-jar", "app.jar"] diff --git a/backend-spring/build.gradle.kts b/backend-spring/build.gradle.kts new file mode 100644 index 0000000..069add2 --- /dev/null +++ b/backend-spring/build.gradle.kts @@ -0,0 +1,37 @@ +plugins { + java + id("org.springframework.boot") version "4.0.3" + id("io.spring.dependency-management") version "1.1.7" +} + +group = "be.seeseepuff" +version = "0.0.1-SNAPSHOT" + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(25) + } +} + +repositories { + mavenCentral() +} + +dependencies { + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-data-jpa") + implementation("org.springframework.boot:spring-boot-starter-thymeleaf") + implementation("org.springframework.boot:spring-boot-starter-flyway") + implementation("org.flywaydb:flyway-database-postgresql") + runtimeOnly("org.postgresql:postgresql") + + testImplementation("org.springframework.boot:spring-boot-starter-test") + testImplementation("org.springframework.boot:spring-boot-testcontainers") + testImplementation("org.testcontainers:testcontainers-junit-jupiter:2.0.3") + testImplementation("org.testcontainers:testcontainers-postgresql:2.0.3") + testImplementation("io.rest-assured:rest-assured:6.0.0") +} + +tasks.withType { + useJUnitPlatform() +} diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/AllowancePlannerApplication.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/AllowancePlannerApplication.class new file mode 100644 index 0000000..ce9cb41 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/AllowancePlannerApplication.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/controller/ApiController$1.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/controller/ApiController$1.class new file mode 100644 index 0000000..03ceadd Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/controller/ApiController$1.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/controller/ApiController.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/controller/ApiController.class new file mode 100644 index 0000000..5629488 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/controller/ApiController.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/controller/WebController.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/controller/WebController.class new file mode 100644 index 0000000..82acdc7 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/controller/WebController.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/AddAllowanceAmountRequest.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/AddAllowanceAmountRequest.class new file mode 100644 index 0000000..e71efc5 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/AddAllowanceAmountRequest.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/AllowanceDto.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/AllowanceDto.class new file mode 100644 index 0000000..f1544e7 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/AllowanceDto.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/BulkUpdateAllowanceRequest.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/BulkUpdateAllowanceRequest.class new file mode 100644 index 0000000..2d5eef1 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/BulkUpdateAllowanceRequest.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/CreateAllowanceRequest.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/CreateAllowanceRequest.class new file mode 100644 index 0000000..7ba8457 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/CreateAllowanceRequest.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/CreateTaskRequest.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/CreateTaskRequest.class new file mode 100644 index 0000000..c995f72 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/CreateTaskRequest.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/ErrorResponse.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/ErrorResponse.class new file mode 100644 index 0000000..c95b435 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/ErrorResponse.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/HistoryDto.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/HistoryDto.class new file mode 100644 index 0000000..d768a12 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/HistoryDto.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/IdResponse.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/IdResponse.class new file mode 100644 index 0000000..b13dceb Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/IdResponse.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/MessageResponse.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/MessageResponse.class new file mode 100644 index 0000000..ffa58ff Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/MessageResponse.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/PostHistoryRequest.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/PostHistoryRequest.class new file mode 100644 index 0000000..0c0669b Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/PostHistoryRequest.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/TaskDto.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/TaskDto.class new file mode 100644 index 0000000..6297c91 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/TaskDto.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/TransferRequest.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/TransferRequest.class new file mode 100644 index 0000000..c04f44f Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/TransferRequest.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/UpdateAllowanceRequest.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/UpdateAllowanceRequest.class new file mode 100644 index 0000000..408abe1 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/UpdateAllowanceRequest.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/UserDto.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/UserDto.class new file mode 100644 index 0000000..9db7396 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/UserDto.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/UserWithAllowanceDto.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/UserWithAllowanceDto.class new file mode 100644 index 0000000..5858fa3 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/dto/UserWithAllowanceDto.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/Allowance.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/Allowance.class new file mode 100644 index 0000000..5901401 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/Allowance.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/History.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/History.class new file mode 100644 index 0000000..a7ae711 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/History.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/Task.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/Task.class new file mode 100644 index 0000000..39d4e83 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/Task.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/User.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/User.class new file mode 100644 index 0000000..331f57e Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/entity/User.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/AllowanceRepository.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/AllowanceRepository.class new file mode 100644 index 0000000..7d916dd Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/AllowanceRepository.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/HistoryRepository.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/HistoryRepository.class new file mode 100644 index 0000000..dd269c1 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/HistoryRepository.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/TaskRepository.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/TaskRepository.class new file mode 100644 index 0000000..79bdd74 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/TaskRepository.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/UserRepository.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/UserRepository.class new file mode 100644 index 0000000..b10dfec Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/repository/UserRepository.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/AllowanceService.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/AllowanceService.class new file mode 100644 index 0000000..40de9fc Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/AllowanceService.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TaskService.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TaskService.class new file mode 100644 index 0000000..7b56507 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TaskService.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TransferService$TransferResult$Status.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TransferService$TransferResult$Status.class new file mode 100644 index 0000000..76ce92c Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TransferService$TransferResult$Status.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TransferService$TransferResult.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TransferService$TransferResult.class new file mode 100644 index 0000000..ef861b9 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TransferService$TransferResult.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TransferService.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TransferService.class new file mode 100644 index 0000000..c1263de Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/TransferService.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/UserService.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/UserService.class new file mode 100644 index 0000000..d0c46cf Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/service/UserService.class differ diff --git a/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/util/ColourUtil.class b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/util/ColourUtil.class new file mode 100644 index 0000000..4119f14 Binary files /dev/null and b/backend-spring/build/classes/java/main/be/seeseepuff/allowanceplanner/util/ColourUtil.class differ diff --git a/backend-spring/build/classes/java/test/be/seeseepuff/allowanceplanner/ApiTest.class b/backend-spring/build/classes/java/test/be/seeseepuff/allowanceplanner/ApiTest.class new file mode 100644 index 0000000..69fab2a Binary files /dev/null and b/backend-spring/build/classes/java/test/be/seeseepuff/allowanceplanner/ApiTest.class differ diff --git a/backend-spring/build/classes/java/test/be/seeseepuff/allowanceplanner/ColourUtilTest.class b/backend-spring/build/classes/java/test/be/seeseepuff/allowanceplanner/ColourUtilTest.class new file mode 100644 index 0000000..8ff7d57 Binary files /dev/null and b/backend-spring/build/classes/java/test/be/seeseepuff/allowanceplanner/ColourUtilTest.class differ diff --git a/backend-spring/build/reports/problems/problems-report.html b/backend-spring/build/reports/problems/problems-report.html new file mode 100644 index 0000000..fb21bdf --- /dev/null +++ b/backend-spring/build/reports/problems/problems-report.html @@ -0,0 +1,659 @@ + + + + + + + + + + + + + Gradle Configuration Cache + + + +
+ +
+ Loading... +
+ + + + + + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/addAllowanceIdZero().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/addAllowanceIdZero().html new file mode 100644 index 0000000..d4bee3d --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/addAllowanceIdZero().html @@ -0,0 +1,116 @@ + + + + + +Test results - addAllowanceIdZero() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

addAllowanceIdZero()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.086s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.434+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.437+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:26.439+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:26.439+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.443+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.443+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.444+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.446+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.447+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.454+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/addAllowanceSimple().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/addAllowanceSimple().html new file mode 100644 index 0000000..be2a85d --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/addAllowanceSimple().html @@ -0,0 +1,116 @@ + + + + + +Test results - addAllowanceSimple() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

addAllowanceSimple()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.089s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.834+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.838+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:26.840+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:26.840+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.843+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.843+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.844+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.847+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.848+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.854+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/addAllowanceWithSpillage().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/addAllowanceWithSpillage().html new file mode 100644 index 0000000..2d4033b --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/addAllowanceWithSpillage().html @@ -0,0 +1,116 @@ + + + + + +Test results - addAllowanceWithSpillage() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

addAllowanceWithSpillage()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.183s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.890+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.895+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:25.897+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.897+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.899+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.900+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.900+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.902+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.903+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.908+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeAllowance().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeAllowance().html new file mode 100644 index 0000000..5b148bb --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeAllowance().html @@ -0,0 +1,116 @@ + + + + + +Test results - completeAllowance() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

completeAllowance()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.152s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.074+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.080+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:26.081+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:26.082+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.087+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.087+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:26.088+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.092+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.093+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.097+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeAllowanceInvalidAllowanceId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeAllowanceInvalidAllowanceId().html new file mode 100644 index 0000000..aff0d69 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeAllowanceInvalidAllowanceId().html @@ -0,0 +1,116 @@ + + + + + +Test results - completeAllowanceInvalidAllowanceId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

completeAllowanceInvalidAllowanceId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.040s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.702+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.706+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:24.708+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:24.709+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.713+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.713+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:24.714+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.717+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.719+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.724+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeAllowanceInvalidUserId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeAllowanceInvalidUserId().html new file mode 100644 index 0000000..42b7b11 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeAllowanceInvalidUserId().html @@ -0,0 +1,116 @@ + + + + + +Test results - completeAllowanceInvalidUserId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

completeAllowanceInvalidUserId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.031s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.402+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.407+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:26.409+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:26.409+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.411+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.412+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.413+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.415+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.416+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.420+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTask().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTask().html new file mode 100644 index 0000000..5387ba0 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTask().html @@ -0,0 +1,116 @@ + + + + + +Test results - completeTask() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

completeTask()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.218s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.110+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.115+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:25.116+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.116+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.121+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.121+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.123+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.125+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.126+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.133+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTaskAllowanceWeightsSumTo0().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTaskAllowanceWeightsSumTo0().html new file mode 100644 index 0000000..7f64358 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTaskAllowanceWeightsSumTo0().html @@ -0,0 +1,116 @@ + + + + + +Test results - completeTaskAllowanceWeightsSumTo0() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

completeTaskAllowanceWeightsSumTo0()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.172s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.528+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.538+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.009s)
+2026-02-28T18:46:24.540+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:24.541+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.546+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.546+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:24.547+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.550+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.551+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.556+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTaskInvalidId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTaskInvalidId().html new file mode 100644 index 0000000..84be790 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTaskInvalidId().html @@ -0,0 +1,116 @@ + + + + + +Test results - completeTaskInvalidId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

completeTaskInvalidId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.035s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.074+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.077+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:25.079+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.079+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.083+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.083+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.084+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.087+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.087+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.094+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTaskWithNoWeights().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTaskWithNoWeights().html new file mode 100644 index 0000000..e4e50ed --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/completeTaskWithNoWeights().html @@ -0,0 +1,116 @@ + + + + + +Test results - completeTaskWithNoWeights() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

completeTaskWithNoWeights()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.146s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.852+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.857+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:24.859+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:24.859+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.864+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.864+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:24.866+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.869+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.870+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.875+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTask().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTask().html new file mode 100644 index 0000000..ce10cb7 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTask().html @@ -0,0 +1,116 @@ + + + + + +Test results - createTask() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

createTask()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.077s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.049+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.055+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:27.056+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.056+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.059+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.059+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.060+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.062+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.063+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.067+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTaskInvalidAssignedUser().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTaskInvalidAssignedUser().html new file mode 100644 index 0000000..8973b75 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTaskInvalidAssignedUser().html @@ -0,0 +1,116 @@ + + + + + +Test results - createTaskInvalidAssignedUser() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

createTaskInvalidAssignedUser()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.047s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.412+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.417+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:24.420+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:24.420+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.425+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.425+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:24.426+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.430+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.431+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.436+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTaskInvalidRequestBody().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTaskInvalidRequestBody().html new file mode 100644 index 0000000..20de5e5 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTaskInvalidRequestBody().html @@ -0,0 +1,116 @@ + + + + + +Test results - createTaskInvalidRequestBody() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

createTaskInvalidRequestBody()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.032s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.254+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.260+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:27.261+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.261+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.264+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.264+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.265+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.268+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.268+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.273+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTaskNoName().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTaskNoName().html new file mode 100644 index 0000000..a018696 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createTaskNoName().html @@ -0,0 +1,116 @@ + + + + + +Test results - createTaskNoName() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

createTaskNoName()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.044s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.139+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.145+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:24.148+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:24.149+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.153+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.153+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:24.154+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.157+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.159+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.164+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowance().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowance().html new file mode 100644 index 0000000..ee8cb77 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowance().html @@ -0,0 +1,116 @@ + + + + + +Test results - createUserAllowance() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

createUserAllowance()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.076s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.331+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.334+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:25.335+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.336+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.339+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.340+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.341+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.343+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.344+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.348+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowanceBadId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowanceBadId().html new file mode 100644 index 0000000..f4d435f --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowanceBadId().html @@ -0,0 +1,116 @@ + + + + + +Test results - createUserAllowanceBadId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

createUserAllowanceBadId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.034s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.759+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.764+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:26.766+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:26.766+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.768+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.769+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.769+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.771+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.772+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.777+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowanceInvalidInput().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowanceInvalidInput().html new file mode 100644 index 0000000..8221357 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowanceInvalidInput().html @@ -0,0 +1,117 @@ + + + + + +Test results - createUserAllowanceInvalidInput() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

createUserAllowanceInvalidInput()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.048s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.621+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.624+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:25.625+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.626+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.629+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.630+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.630+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.633+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.634+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.640+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+2026-02-28T18:46:25.659+01:00  WARN 74623 --- [allowance-planner] [o-auto-1-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot map `null` into type `double` (set DeserializationConfig.DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES to 'false' to allow)]
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowanceNoUser().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowanceNoUser().html new file mode 100644 index 0000000..3b56ed1 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/createUserAllowanceNoUser().html @@ -0,0 +1,116 @@ + + + + + +Test results - createUserAllowanceNoUser() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

createUserAllowanceNoUser()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.040s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.184+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.187+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:24.188+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.000s)
+2026-02-28T18:46:24.188+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.192+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.192+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:24.193+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.197+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.198+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.203+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteTask().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteTask().html new file mode 100644 index 0000000..696d76d --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteTask().html @@ -0,0 +1,116 @@ + + + + + +Test results - deleteTask() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

deleteTask()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.092s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.323+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.327+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:27.328+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.328+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.331+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.331+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.332+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.334+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.335+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.340+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteTaskNotFound().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteTaskNotFound().html new file mode 100644 index 0000000..d52a048 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteTaskNotFound().html @@ -0,0 +1,116 @@ + + + + + +Test results - deleteTaskNotFound() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

deleteTaskNotFound()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.039s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.327+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.332+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:24.333+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:24.334+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.337+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.338+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:24.340+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.343+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.345+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.350+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserAllowance().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserAllowance().html new file mode 100644 index 0000000..752631f --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserAllowance().html @@ -0,0 +1,116 @@ + + + + + +Test results - deleteUserAllowance() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

deleteUserAllowance()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.067s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.695+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.699+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:27.700+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.701+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.704+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.704+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.705+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.707+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.708+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.713+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserAllowanceInvalidId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserAllowanceInvalidId().html new file mode 100644 index 0000000..b81d659 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserAllowanceInvalidId().html @@ -0,0 +1,116 @@ + + + + + +Test results - deleteUserAllowanceInvalidId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

deleteUserAllowanceInvalidId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.042s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.780+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.786+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:25.787+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.787+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.791+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.791+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.792+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.796+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.797+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.802+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserAllowanceNotFound().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserAllowanceNotFound().html new file mode 100644 index 0000000..bcab254 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserAllowanceNotFound().html @@ -0,0 +1,134 @@ + + + + + +Test results - deleteUserAllowanceNotFound() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

deleteUserAllowanceNotFound()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
1.270s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:22.732+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:22.742+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.009s)
+2026-02-28T18:46:22.747+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:22.748+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:22.756+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:22.757+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:22.760+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:22.764+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:22.767+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:22.774+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s)
+2026-02-28T18:46:23.272+01:00  INFO 74623 --- [allowance-planner] [o-auto-1-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
+2026-02-28T18:46:23.273+01:00  INFO 74623 --- [allowance-planner] [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
+2026-02-28T18:46:23.274+01:00  INFO 74623 --- [allowance-planner] [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
+
+ +
+
+
+

error output

+ +
Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build as described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3
+WARNING: A Java agent has been loaded dynamically (/home/seeseemelk/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.17.8/f09415827a71be7ed621c7bd02550678f28bc81c/byte-buddy-agent-1.17.8.jar)
+WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
+WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
+WARNING: Dynamic loading of agents will be disallowed by default in a future release
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserRestAllowance().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserRestAllowance().html new file mode 100644 index 0000000..6b748f7 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/deleteUserRestAllowance().html @@ -0,0 +1,116 @@ + + + + + +Test results - deleteUserRestAllowance() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

deleteUserRestAllowance()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.027s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.618+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.622+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:26.623+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:26.624+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.626+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.626+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.627+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.630+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.630+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.635+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getHistory().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getHistory().html new file mode 100644 index 0000000..e8fa7c5 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getHistory().html @@ -0,0 +1,116 @@ + + + + + +Test results - getHistory() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getHistory()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.073s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.575+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.578+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:27.579+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.000s)
+2026-02-28T18:46:27.579+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.580+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.581+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.581+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.583+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.583+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.586+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTask().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTask().html new file mode 100644 index 0000000..d3c483d --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTask().html @@ -0,0 +1,116 @@ + + + + + +Test results - getTask() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getTask()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.067s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.504+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.509+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:25.511+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.511+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.515+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.515+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.516+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.519+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.520+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.524+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTaskBadId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTaskBadId().html new file mode 100644 index 0000000..bf677b3 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTaskBadId().html @@ -0,0 +1,116 @@ + + + + + +Test results - getTaskBadId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getTaskBadId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.053s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.727+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.732+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:25.734+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.734+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.738+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.739+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:25.740+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.742+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.743+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.749+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTaskInvalidId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTaskInvalidId().html new file mode 100644 index 0000000..91d6db2 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTaskInvalidId().html @@ -0,0 +1,116 @@ + + + + + +Test results - getTaskInvalidId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getTaskInvalidId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.062s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.265+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.269+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:24.270+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.000s)
+2026-02-28T18:46:24.270+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.274+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.275+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:24.276+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.280+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.281+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.288+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTaskWhenNoTasks().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTaskWhenNoTasks().html new file mode 100644 index 0000000..1d12ab9 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTaskWhenNoTasks().html @@ -0,0 +1,116 @@ + + + + + +Test results - getTaskWhenNoTasks() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getTaskWhenNoTasks()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.034s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.287+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.290+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:27.291+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.292+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.295+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.295+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.296+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.298+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.298+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.302+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTasksWhenTasks().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTasksWhenTasks().html new file mode 100644 index 0000000..7b3a656 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getTasksWhenTasks().html @@ -0,0 +1,116 @@ + + + + + +Test results - getTasksWhenTasks() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getTasksWhenTasks()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.054s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.995+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.999+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:27.001+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.001+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.005+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.005+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.007+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.009+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.010+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.016+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUser().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUser().html new file mode 100644 index 0000000..7093f97 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUser().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUser() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUser()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.048s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.572+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.577+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:25.578+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.000s)
+2026-02-28T18:46:25.578+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.581+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.581+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.582+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.586+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.587+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.592+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowance().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowance().html new file mode 100644 index 0000000..493f555 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowance().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserAllowance() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserAllowance()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.071s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.923+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.927+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:26.928+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:26.928+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.931+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.932+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.933+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.936+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.937+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.941+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceBadId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceBadId().html new file mode 100644 index 0000000..f77c6b3 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceBadId().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserAllowanceBadId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserAllowanceBadId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.031s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.546+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.549+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:27.550+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.550+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.553+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.553+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.553+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.555+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.556+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.563+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceById().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceById().html new file mode 100644 index 0000000..60602a3 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceById().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserAllowanceById() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserAllowanceById()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.110s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.741+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.745+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:24.747+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:24.747+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.751+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.751+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:24.752+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.755+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.756+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.761+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceNoUser().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceNoUser().html new file mode 100644 index 0000000..2513657 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceNoUser().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserAllowanceNoUser() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserAllowanceNoUser()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.035s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.823+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.828+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:25.829+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.829+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.832+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.832+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.833+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.835+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.836+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.843+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceWhenNoAllowancePresent().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceWhenNoAllowancePresent().html new file mode 100644 index 0000000..64714eb --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserAllowanceWhenNoAllowancePresent().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserAllowanceWhenNoAllowancePresent() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserAllowanceWhenNoAllowancePresent()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.065s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.458+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.464+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:24.466+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:24.466+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.471+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.471+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:24.472+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.476+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.477+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.482+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserBadId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserBadId().html new file mode 100644 index 0000000..364d75f --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserBadId().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserBadId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserBadId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.031s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.858+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.862+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:25.864+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.864+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.867+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.867+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.868+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.870+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.871+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.878+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceByIdBadAllowanceId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceByIdBadAllowanceId().html new file mode 100644 index 0000000..9df3563 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceByIdBadAllowanceId().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserByAllowanceByIdBadAllowanceId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserByAllowanceByIdBadAllowanceId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.068s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:23.710+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:23.717+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.006s)
+2026-02-28T18:46:23.723+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:23.723+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:23.728+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:23.729+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:23.731+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:23.737+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:23.740+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:23.749+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.006s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceByIdBadUserId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceByIdBadUserId().html new file mode 100644 index 0000000..c238e4c --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceByIdBadUserId().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserByAllowanceByIdBadUserId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserByAllowanceByIdBadUserId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.040s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.225+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.231+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:24.232+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:24.233+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.237+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.237+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:24.239+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.243+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.244+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.250+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceByIdInvalidUserId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceByIdInvalidUserId().html new file mode 100644 index 0000000..2603a65 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceByIdInvalidUserId().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserByAllowanceByIdInvalidUserId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserByAllowanceByIdInvalidUserId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.033s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.999+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.003+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:25.004+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.004+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.009+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.009+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:25.010+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.013+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.014+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.019+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceIdInvalidAllowance().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceIdInvalidAllowance().html new file mode 100644 index 0000000..fefc27b --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserByAllowanceIdInvalidAllowance().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserByAllowanceIdInvalidAllowance() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserByAllowanceIdInvalidAllowance()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.039s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.794+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.799+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:26.801+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:26.801+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.806+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.807+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.807+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.810+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.811+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.819+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserUnknown().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserUnknown().html new file mode 100644 index 0000000..8f9b43a --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUserUnknown().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUserUnknown() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUserUnknown()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.045s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:24.368+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.373+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:24.375+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:24.375+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:24.379+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:24.379+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:24.380+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:24.384+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:24.386+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:24.394+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUsers().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUsers().html new file mode 100644 index 0000000..5a65aea --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/getUsers().html @@ -0,0 +1,116 @@ + + + + + +Test results - getUsers() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

getUsers()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.044s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.649+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.652+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:27.653+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.000s)
+2026-02-28T18:46:27.653+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.655+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.655+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.656+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.659+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.659+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.667+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/index.html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/index.html new file mode 100644 index 0000000..74c5879 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/index.html @@ -0,0 +1,818 @@ + + + + + +Test results - be.seeseepuff.allowanceplanner.ApiTest + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

ApiTest

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
57
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
11.775s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChildTestsFailuresSkippedDurationSuccess rate
+addAllowanceIdZero() +1000.086s100%
+addAllowanceSimple() +1000.089s100%
+addAllowanceWithSpillage() +1000.183s100%
+completeAllowance() +1000.152s100%
+completeAllowanceInvalidAllowanceId() +1000.040s100%
+completeAllowanceInvalidUserId() +1000.031s100%
+completeTask() +1000.218s100%
+completeTaskAllowanceWeightsSumTo0() +1000.172s100%
+completeTaskInvalidId() +1000.035s100%
+completeTaskWithNoWeights() +1000.146s100%
+createTask() +1000.077s100%
+createTaskInvalidAssignedUser() +1000.047s100%
+createTaskInvalidRequestBody() +1000.032s100%
+createTaskNoName() +1000.044s100%
+createUserAllowance() +1000.076s100%
+createUserAllowanceBadId() +1000.034s100%
+createUserAllowanceInvalidInput() +1000.048s100%
+createUserAllowanceNoUser() +1000.040s100%
+deleteTask() +1000.092s100%
+deleteTaskNotFound() +1000.039s100%
+deleteUserAllowance() +1000.067s100%
+deleteUserAllowanceInvalidId() +1000.042s100%
+deleteUserAllowanceNotFound() +1001.270s100%
+deleteUserRestAllowance() +1000.027s100%
+getHistory() +1000.073s100%
+getTask() +1000.067s100%
+getTaskBadId() +1000.053s100%
+getTaskInvalidId() +1000.062s100%
+getTasksWhenTasks() +1000.054s100%
+getTaskWhenNoTasks() +1000.034s100%
+getUser() +1000.048s100%
+getUserAllowance() +1000.071s100%
+getUserAllowanceBadId() +1000.031s100%
+getUserAllowanceById() +1000.110s100%
+getUserAllowanceNoUser() +1000.035s100%
+getUserAllowanceWhenNoAllowancePresent() +1000.065s100%
+getUserBadId() +1000.031s100%
+getUserByAllowanceByIdBadAllowanceId() +1000.068s100%
+getUserByAllowanceByIdBadUserId() +1000.040s100%
+getUserByAllowanceByIdInvalidUserId() +1000.033s100%
+getUserByAllowanceIdInvalidAllowance() +1000.039s100%
+getUsers() +1000.044s100%
+getUserUnknown() +1000.045s100%
+postHistory() +1000.066s100%
+postHistoryInvalidDescription() +1000.107s100%
+postHistoryInvalidUserId() +1000.038s100%
+putAllowanceById() +1000.060s100%
+putBulkAllowance() +1000.253s100%
+putTaskInvalidTaskId() +1000.056s100%
+putTaskModifiesTask() +1000.066s100%
+subtractAllowanceIdZero() +1000.109s100%
+subtractAllowanceSimple() +1000.112s100%
+transferCapsAtTarget() +1000.098s100%
+transferDifferentUsersFails() +1000.089s100%
+transferInsufficientFunds() +1000.066s100%
+transferNotFound() +1000.042s100%
+transferSuccessful() +1000.097s100%
+
+
+
+

standard output

+ +
18:46:16.404 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [be.seeseepuff.allowanceplanner.ApiTest]: ApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
+18:46:16.488 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration be.seeseepuff.allowanceplanner.AllowancePlannerApplication for test class be.seeseepuff.allowanceplanner.ApiTest
+18:46:16.554 [Test worker] INFO org.testcontainers.images.PullPolicy -- Image pull policy will be performed by: DefaultPullPolicy()
+18:46:16.555 [Test worker] INFO org.testcontainers.utility.ImageNameSubstitutor -- Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
+18:46:16.561 [Test worker] INFO org.testcontainers.DockerClientFactory -- Testcontainers version: 2.0.3
+18:46:16.636 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
+18:46:16.899 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
+18:46:16.900 [Test worker] INFO org.testcontainers.DockerClientFactory -- Docker host IP address is localhost
+18:46:16.913 [Test worker] INFO org.testcontainers.DockerClientFactory -- Connected to docker: 
+  Server Version: 29.2.1
+  API Version: 1.53
+  Operating System: CachyOS
+  Total Memory: 31926 MB
+18:46:16.971 [Test worker] INFO tc.testcontainers/ryuk:0.13.0 -- Creating container for image: testcontainers/ryuk:0.13.0
+18:46:16.975 [Test worker] INFO org.testcontainers.utility.RegistryAuthLocator -- Failure when attempting to lookup auth config. Please ignore if you don't have images in an authenticated registry. Details: (dockerImageName: testcontainers/ryuk:0.13.0, configFile: /home/seeseemelk/.docker/config.json, configEnv: DOCKER_AUTH_CONFIG). Falling back to docker-java default behaviour. Exception message: Status 404: No config supplied. Checked in order: /home/seeseemelk/.docker/config.json (file not found), DOCKER_AUTH_CONFIG (not set)
+18:46:17.088 [Test worker] INFO tc.testcontainers/ryuk:0.13.0 -- Container testcontainers/ryuk:0.13.0 is starting: 8ab3179a5823876acfce29a7fb3eb9a455b539b939655ec13321dd46ccd1b71c
+18:46:17.277 [Test worker] INFO tc.testcontainers/ryuk:0.13.0 -- Container testcontainers/ryuk:0.13.0 started in PT0.305288262S
+18:46:17.280 [Test worker] INFO org.testcontainers.utility.RyukResourceReaper -- Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
+18:46:17.281 [Test worker] INFO org.testcontainers.DockerClientFactory -- Checking the system...
+18:46:17.281 [Test worker] INFO org.testcontainers.DockerClientFactory -- ✔︎ Docker server version should be at least 1.6.0
+18:46:17.281 [Test worker] INFO tc.postgres:17 -- Creating container for image: postgres:17
+18:46:17.343 [Test worker] INFO tc.postgres:17 -- Container postgres:17 is starting: 5c4b27126282e2b3ddb940c86861e9b08b80d75f1f67f3b061bbec42709d2346
+18:46:19.249 [Test worker] INFO tc.postgres:17 -- Container postgres:17 started in PT1.967966594S
+18:46:19.250 [Test worker] INFO tc.postgres:17 -- Container is started (JDBC URL: jdbc:postgresql://localhost:32809/allowance_planner_test?loggerLevel=OFF)
+
+  .   ____          _            __ _ _
+ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
+  '  |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+
+ :: Spring Boot ::                (v4.0.3)
+
+2026-02-28T18:46:19.430+01:00  INFO 74623 --- [allowance-planner] [    Test worker] be.seeseepuff.allowanceplanner.ApiTest   : Starting ApiTest using Java 25.0.2 with PID 74623 (started by seeseemelk in /home/seeseemelk/dev/allowance_planner_2000/backend-spring)
+2026-02-28T18:46:19.431+01:00  INFO 74623 --- [allowance-planner] [    Test worker] be.seeseepuff.allowanceplanner.ApiTest   : No active profile set, falling back to 1 default profile: "default"
+2026-02-28T18:46:19.896+01:00  INFO 74623 --- [allowance-planner] [    Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2026-02-28T18:46:19.929+01:00  INFO 74623 --- [allowance-planner] [    Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 28 ms. Found 4 JPA repository interfaces.
+2026-02-28T18:46:20.226+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.s.boot.tomcat.TomcatWebServer          : Tomcat initialized with port 0 (http)
+2026-02-28T18:46:20.237+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
+2026-02-28T18:46:20.238+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/11.0.18]
+2026-02-28T18:46:20.267+01:00  INFO 74623 --- [allowance-planner] [    Test worker] b.w.c.s.WebApplicationContextInitializer : Root WebApplicationContext: initialization completed in 724 ms
+2026-02-28T18:46:20.510+01:00  INFO 74623 --- [allowance-planner] [    Test worker] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
+2026-02-28T18:46:20.601+01:00  INFO 74623 --- [allowance-planner] [    Test worker] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@610d0067
+2026-02-28T18:46:20.602+01:00  INFO 74623 --- [allowance-planner] [    Test worker] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
+2026-02-28T18:46:20.620+01:00  INFO 74623 --- [allowance-planner] [    Test worker] org.flywaydb.core.FlywayExecutor         : Database: jdbc:postgresql://localhost:32809/allowance_planner_test?loggerLevel=OFF (PostgreSQL 17.9)
+2026-02-28T18:46:20.642+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:20.644+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.009s)
+2026-02-28T18:46:20.660+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:20.694+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:20.703+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:20.718+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.007s)
+2026-02-28T18:46:20.799+01:00  INFO 74623 --- [allowance-planner] [    Test worker] org.hibernate.orm.jpa                    : HHH008540: Processing PersistenceUnitInfo [name: default]
+2026-02-28T18:46:20.827+01:00  INFO 74623 --- [allowance-planner] [    Test worker] org.hibernate.orm.core                   : HHH000001: Hibernate ORM core version 7.2.4.Final
+2026-02-28T18:46:21.053+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
+2026-02-28T18:46:21.098+01:00  INFO 74623 --- [allowance-planner] [    Test worker] org.hibernate.orm.connections.pooling    : HHH10001005: Database info:
+	Database JDBC URL [jdbc:postgresql://localhost:32809/allowance_planner_test?loggerLevel=OFF]
+	Database driver: PostgreSQL JDBC Driver
+	Database dialect: PostgreSQLDialect
+	Database version: 17.9
+	Default catalog/schema: allowance_planner_test/public
+	Autocommit mode: undefined/unknown
+	Isolation level: READ_COMMITTED [default READ_COMMITTED]
+	JDBC fetch size: none
+	Pool: DataSourceConnectionProvider
+	Minimum pool size: undefined/unknown
+	Maximum pool size: undefined/unknown
+2026-02-28T18:46:21.551+01:00  INFO 74623 --- [allowance-planner] [    Test worker] org.hibernate.orm.core                   : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
+2026-02-28T18:46:21.572+01:00  INFO 74623 --- [allowance-planner] [    Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
+2026-02-28T18:46:21.622+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.s.d.j.r.query.QueryEnhancerFactories   : Hibernate is in classpath; If applicable, HQL parser will be used.
+2026-02-28T18:46:22.181+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.s.b.w.a.WelcomePageHandlerMapping      : Adding welcome page template: index
+2026-02-28T18:46:22.422+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.s.boot.tomcat.TomcatWebServer          : Tomcat started on port 43703 (http) with context path '/'
+2026-02-28T18:46:22.427+01:00  INFO 74623 --- [allowance-planner] [    Test worker] be.seeseepuff.allowanceplanner.ApiTest   : Started ApiTest in 3.154 seconds (process running for 6.592)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/postHistory().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/postHistory().html new file mode 100644 index 0000000..d7c9e6e --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/postHistory().html @@ -0,0 +1,116 @@ + + + + + +Test results - postHistory() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

postHistory()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.066s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.189+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.193+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:27.194+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.194+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.198+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.198+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.199+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.202+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.202+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.208+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/postHistoryInvalidDescription().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/postHistoryInvalidDescription().html new file mode 100644 index 0000000..d07cc3b --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/postHistoryInvalidDescription().html @@ -0,0 +1,116 @@ + + + + + +Test results - postHistoryInvalidDescription() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

postHistoryInvalidDescription()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.107s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:23.780+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:23.789+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.008s)
+2026-02-28T18:46:23.793+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:23.793+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:23.798+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:23.799+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:23.800+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:23.805+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:23.806+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:23.814+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/postHistoryInvalidUserId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/postHistoryInvalidUserId().html new file mode 100644 index 0000000..d712b11 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/postHistoryInvalidUserId().html @@ -0,0 +1,116 @@ + + + + + +Test results - postHistoryInvalidUserId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

postHistoryInvalidUserId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.038s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.415+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.418+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:27.419+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.000s)
+2026-02-28T18:46:27.419+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.423+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.424+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:27.424+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.428+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.429+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.438+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putAllowanceById().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putAllowanceById().html new file mode 100644 index 0000000..0156251 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putAllowanceById().html @@ -0,0 +1,116 @@ + + + + + +Test results - putAllowanceById() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

putAllowanceById()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.060s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.126+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.130+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:27.132+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.132+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.134+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.134+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.135+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.138+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.139+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.142+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putBulkAllowance().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putBulkAllowance().html new file mode 100644 index 0000000..012d643 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putBulkAllowance().html @@ -0,0 +1,116 @@ + + + + + +Test results - putBulkAllowance() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

putBulkAllowance()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.253s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:23.885+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:23.892+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.006s)
+2026-02-28T18:46:23.895+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:23.895+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:23.900+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:23.900+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:23.903+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:23.907+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:23.910+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:23.915+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putTaskInvalidTaskId().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putTaskInvalidTaskId().html new file mode 100644 index 0000000..ef3345b --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putTaskInvalidTaskId().html @@ -0,0 +1,116 @@ + + + + + +Test results - putTaskInvalidTaskId() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

putTaskInvalidTaskId()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.056s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.671+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.676+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:25.678+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.678+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.683+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.684+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:25.685+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.689+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.690+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.694+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putTaskModifiesTask().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putTaskModifiesTask().html new file mode 100644 index 0000000..8df776d --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/putTaskModifiesTask().html @@ -0,0 +1,116 @@ + + + + + +Test results - putTaskModifiesTask() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

putTaskModifiesTask()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.066s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.763+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.766+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:27.768+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:27.768+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.770+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.770+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.771+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.774+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.774+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.779+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/subtractAllowanceIdZero().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/subtractAllowanceIdZero().html new file mode 100644 index 0000000..33dd512 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/subtractAllowanceIdZero().html @@ -0,0 +1,116 @@ + + + + + +Test results - subtractAllowanceIdZero() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

subtractAllowanceIdZero()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.109s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.292+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.295+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:26.296+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:26.296+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.298+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.299+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.300+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.302+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.303+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.310+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/subtractAllowanceSimple().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/subtractAllowanceSimple().html new file mode 100644 index 0000000..80e9dd8 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/subtractAllowanceSimple().html @@ -0,0 +1,116 @@ + + + + + +Test results - subtractAllowanceSimple() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

subtractAllowanceSimple()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.112s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.645+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.651+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.005s)
+2026-02-28T18:46:26.653+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:26.653+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.656+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.656+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.657+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.659+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.660+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.664+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferCapsAtTarget().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferCapsAtTarget().html new file mode 100644 index 0000000..ee41722 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferCapsAtTarget().html @@ -0,0 +1,116 @@ + + + + + +Test results - transferCapsAtTarget() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

transferCapsAtTarget()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.098s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.405+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.409+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:25.410+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.410+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.414+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.414+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.415+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.417+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.418+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.422+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferDifferentUsersFails().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferDifferentUsersFails().html new file mode 100644 index 0000000..febc42f --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferDifferentUsersFails().html @@ -0,0 +1,116 @@ + + + + + +Test results - transferDifferentUsersFails() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

transferDifferentUsersFails()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.089s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:27.452+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.455+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:27.456+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.000s)
+2026-02-28T18:46:27.456+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:27.460+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:27.460+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:27.461+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:27.463+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:27.464+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:27.468+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferInsufficientFunds().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferInsufficientFunds().html new file mode 100644 index 0000000..5bb39e2 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferInsufficientFunds().html @@ -0,0 +1,116 @@ + + + + + +Test results - transferInsufficientFunds() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

transferInsufficientFunds()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.066s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.226+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.229+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.002s)
+2026-02-28T18:46:26.230+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.000s)
+2026-02-28T18:46:26.230+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.234+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.234+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
+2026-02-28T18:46:26.235+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.237+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.238+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.243+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferNotFound().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferNotFound().html new file mode 100644 index 0000000..803d3c6 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferNotFound().html @@ -0,0 +1,116 @@ + + + + + +Test results - transferNotFound() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

transferNotFound()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.042s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:25.034+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.039+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.004s)
+2026-02-28T18:46:25.041+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:25.041+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:25.044+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:25.045+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:25.046+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:25.048+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:25.049+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:25.054+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferSuccessful().html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferSuccessful().html new file mode 100644 index 0000000..2db1e26 --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ApiTest/transferSuccessful().html @@ -0,0 +1,116 @@ + + + + + +Test results - transferSuccessful() + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

transferSuccessful()

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
1
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.097s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+
+
+

standard output

+ +
2026-02-28T18:46:26.520+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped pre-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.524+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.003s)
+2026-02-28T18:46:26.526+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully cleaned schema "public" (execution time 00:00.001s)
+2026-02-28T18:46:26.526+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.command.clean.CleanExecutor      : Successfully dropped post-schema database level objects (execution time 00:00.000s)
+2026-02-28T18:46:26.532+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Schema history table "public"."flyway_schema_history" does not exist yet
+2026-02-28T18:46:26.532+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.000s)
+2026-02-28T18:46:26.533+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.c.i.s.JdbcTableSchemaHistory         : Creating Schema History table "public"."flyway_schema_history" ...
+2026-02-28T18:46:26.536+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Current version of schema "public": << Empty Schema >>
+2026-02-28T18:46:26.537+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Migrating schema "public" to version "1 - initial"
+2026-02-28T18:46:26.541+01:00  INFO 74623 --- [allowance-planner] [    Test worker] o.f.core.internal.command.DbMigrate      : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s)
+
+ +
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ColourUtilTest/index.html b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ColourUtilTest/index.html new file mode 100644 index 0000000..6716d5d --- /dev/null +++ b/backend-spring/build/reports/tests/test/be.seeseepuff.allowanceplanner.ColourUtilTest/index.html @@ -0,0 +1,144 @@ + + + + + +Test results - be.seeseepuff.allowanceplanner.ColourUtilTest + + + + + +
+ +
+ +
+

Gradle Test Run :test

+

ColourUtilTest

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
0.002s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChildTestsFailuresSkippedDurationSuccess rate
convertStringToColourWithoutSign()1000s100%
convertStringToColourWithoutSignThreeDigits()1000.002s100%
convertStringToColourWithSign()1000s100%
convertStringToColourWithSignThreeDigits()1000s100%
+
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/css/base-style.css b/backend-spring/build/reports/tests/test/css/base-style.css new file mode 100644 index 0000000..d05f23d --- /dev/null +++ b/backend-spring/build/reports/tests/test/css/base-style.css @@ -0,0 +1,175 @@ + +body { + margin: 0; + padding: 0; + font-family: sans-serif; + font-size: 12pt; +} + +body, a, a:visited { + color: #303030; +} + +#content { + padding: 30px 50px; +} + +#content h1 { + font-size: 160%; + margin-bottom: 10px; +} + +#footer { + margin-top: 100px; + font-size: 80%; + white-space: nowrap; +} + +#footer, #footer a { + color: #a0a0a0; +} + +#line-wrapping-toggle { + vertical-align: middle; +} + +#label-for-line-wrapping-toggle { + vertical-align: middle; +} + +ul { + margin-left: 0; +} + +h1, h2, h3 { + white-space: nowrap; +} + +h2 { + font-size: 120%; +} + +.tab-container .tab-container { + margin-left: 8px; +} + +ul.tabLinks { + padding: 0; + margin-bottom: 0; + overflow: auto; + min-width: 800px; + width: auto; + border-bottom: solid 1px #aaa; +} + +ul.tabLinks li { + float: left; + height: 100%; + list-style: none; + padding: 5px 10px; + border-radius: 7px 7px 0 0; + border: solid 1px transparent; + border-bottom: none; + margin-right: 6px; + background-color: #f0f0f0; + cursor: pointer; +} + +ul.tabLinks li.deselected > a { + color: #6d6d6d; +} + +ul.tabLinks li:hover { + background-color: #fafafa; +} + +ul.tabLinks li.selected { + background-color: #c5f0f5; + border-color: #aaa; +} + +ul.tabLinks a { + font-size: 120%; + display: block; + outline: none; + text-decoration: none; + margin: 0; + padding: 0; +} + +ul.tabLinks li h2 { + margin: 0; + padding: 0; +} + +div.tab { +} + +div.selected { + display: block; +} + +div.deselected { + display: none; +} + +div.tab table { + min-width: 350px; + width: auto; + border-collapse: collapse; +} + +div.tab th, div.tab table { + border-bottom: solid 1px #d0d0d0; +} + +div.tab th { + text-align: left; + white-space: nowrap; + padding-left: 6em; +} + +div.tab th:first-child { + padding-left: 0; +} + +div.tab td { + white-space: nowrap; + padding-left: 6em; + padding-top: 5px; + padding-bottom: 5px; +} + +div.tab td:first-child { + padding-left: 0; +} + +div.tab td.numeric, div.tab th.numeric { + text-align: right; +} + +span.code { + display: inline-block; + margin-top: 0; + margin-bottom: 1em; +} + +span.code pre { + font-size: 11pt; + padding: 10px; + margin: 0; + background-color: #f7f7f7; + border: solid 1px #d0d0d0; + min-width: 700px; + width: auto; +} + +span.wrapped pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: break-all; +} + +label.hidden { + display: none; +} diff --git a/backend-spring/build/reports/tests/test/css/style.css b/backend-spring/build/reports/tests/test/css/style.css new file mode 100644 index 0000000..0ac18dc --- /dev/null +++ b/backend-spring/build/reports/tests/test/css/style.css @@ -0,0 +1,154 @@ +.summary { + margin-top: 30px; + margin-bottom: 40px; +} + +.summary table { + border-collapse: collapse; +} + +.summary td { + vertical-align: top; +} + +div.tab table.test-results td { + padding-left: 1em; +} + +div.tab table.test-results th { + padding-top: 0.5em; + padding-left: 1em; +} + +.breadcrumbs, .breadcrumbs a { + color: #606060; +} + +.infoBox { + width: 110px; + padding-top: 15px; + padding-bottom: 15px; + text-align: center; +} + +.infoBox p { + margin: 0; +} + +.counter, .percent { + font-size: 120%; + font-weight: bold; + margin-bottom: 8px; +} + +.duration { + width: 125px; +} + +.successRate, .summaryGroup { + border: solid 2px #d0d0d0; + -moz-border-radius: 10px; + border-radius: 10px; +} + +.successRate { + width: 140px; + margin-left: 35px; +} + +.successRate .percent { + font-size: 180%; +} + +.success, .success a { + color: #008000; +} + +div.success, .successRate.success { + background-color: #bbd9bb; + border-color: #008000; +} + +.failures, .failures a { + color: #b60808; +} + +.skipped, .skipped a { + color: #c09853; +} + +div.failures, .successRate.failures { + background-color: #ecdada; + border-color: #b60808; +} + +ul.linkList { + padding-left: 0; +} + +ul.linkList li { + list-style: none; + margin-bottom: 5px; +} + +div.metadata td:first-child { + padding-left: 5px; +} + +div.metadata td { + padding-left: 5px; +} + +.metadata tr.odd { + background-color: #f7f7f7; + border: solid 1px #d0d0d0; +} + +.metadata tr.even { + border: solid 1px #d0d0d0; +} + +.metadata th, .metadata td { + padding: 5px; + text-align: left; +} + +.metadata a { + color: blue; +} + +.metadata .unrenderable { + color: darkred; +} + +.code { + position: relative; +} + +.clipboard-copy-btn { + position: absolute; + top: 8px; + right: 8px; + padding: 4px 8px; + font-size: 0.9em; + cursor: pointer; +} + +.successGroup::before { + content: "\23FA"; + margin-right: 8px; + color: #008000; + display: inline-block; +} +.failureGroup::before { + content: "\2297"; + margin-right: 8px; + color: #b60808; + display: inline-block; +} +.skippedGroup::before { + content: "\2296"; + margin-right: 8px; + color: #c09853; + display: inline-block; +} diff --git a/backend-spring/build/reports/tests/test/index.html b/backend-spring/build/reports/tests/test/index.html new file mode 100644 index 0000000..56c5682 --- /dev/null +++ b/backend-spring/build/reports/tests/test/index.html @@ -0,0 +1,127 @@ + + + + + +Test results - All Results + + + + + +
+

All Results

+
+ +
+

Gradle Test Run :test

+

Gradle Test Run :test

+
+ +
+

summary

+
+
+ + + + + +
+
+ + + + + + + +
+
+
61
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

skipped

+
+
+
+
12.303s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChildNameTestsFailuresSkippedDurationSuccess rate
+ApiTest +be.seeseepuff.allowanceplanner.ApiTest570011.775s100%
+ColourUtilTest +be.seeseepuff.allowanceplanner.ColourUtilTest4000.002s100%
+
+
+
+
+
+ +
+ + diff --git a/backend-spring/build/reports/tests/test/js/report.js b/backend-spring/build/reports/tests/test/js/report.js new file mode 100644 index 0000000..3c37c39 --- /dev/null +++ b/backend-spring/build/reports/tests/test/js/report.js @@ -0,0 +1,228 @@ +(function (window, document) { + "use strict"; + + function changeElementClass(element, classValue) { + if (element.getAttribute("className")) { + element.setAttribute("className", classValue); + } else { + element.setAttribute("class", classValue); + } + } + + function getClassAttribute(element) { + if (element.getAttribute("className")) { + return element.getAttribute("className"); + } else { + return element.getAttribute("class"); + } + } + + function addClass(element, classValue) { + changeElementClass(element, getClassAttribute(element) + " " + classValue); + } + + function removeClass(element, classValue) { + changeElementClass(element, getClassAttribute(element).replace(classValue, "")); + } + + function getCheckBox() { + return document.getElementById("line-wrapping-toggle"); + } + + function getLabelForCheckBox() { + return document.getElementById("label-for-line-wrapping-toggle"); + } + + function findCodeBlocks() { + const codeBlocks = []; + const tabContainers = getTabContainers(); + for (let i = 0; i < tabContainers.length; i++) { + const spans = tabContainers[i].getElementsByTagName("span"); + for (let i = 0; i < spans.length; ++i) { + if (spans[i].className.indexOf("code") >= 0) { + codeBlocks.push(spans[i]); + } + } + } + return codeBlocks; + } + + function forAllCodeBlocks(operation) { + const codeBlocks = findCodeBlocks(); + + for (let i = 0; i < codeBlocks.length; ++i) { + operation(codeBlocks[i], "wrapped"); + } + } + + function toggleLineWrapping() { + const checkBox = getCheckBox(); + + if (checkBox.checked) { + forAllCodeBlocks(addClass); + } else { + forAllCodeBlocks(removeClass); + } + } + + function initClipboardCopyButton() { + document.querySelectorAll(".clipboard-copy-btn").forEach((button) => { + const copyElementId = button.getAttribute("data-copy-element-id"); + const elementWithCodeToSelect = document.getElementById(copyElementId); + + button.addEventListener("click", () => { + const text = elementWithCodeToSelect.innerText.trim(); + navigator.clipboard + .writeText(text) + .then(() => { + button.textContent = "Copied!"; + setTimeout(() => { + button.textContent = "Copy"; + }, 1500); + }) + .catch((err) => { + alert("Failed to copy to the clipboard: '" + err.message + "'. Check JavaScript console for more details.") + console.warn("Failed to copy to the clipboard", err); + }); + }); + }); + } + + function initControls() { + if (findCodeBlocks().length > 0) { + const checkBox = getCheckBox(); + const label = getLabelForCheckBox(); + + checkBox.onclick = toggleLineWrapping; + checkBox.checked = false; + + removeClass(label, "hidden"); + } + + initClipboardCopyButton() + } + + class TabManager { + baseId; + tabs; + titles; + headers; + + constructor(baseId, tabs, titles, headers) { + this.baseId = baseId; + this.tabs = tabs; + this.titles = titles; + this.headers = headers; + this.init(); + } + + init() { + for (let i = 0; i < this.headers.length; i++) { + const header = this.headers[i]; + header.onclick = () => { + this.select(i); + return false; + }; + } + } + + select(i) { + this.deselectAll(); + + changeElementClass(this.tabs[i], "tab selected"); + changeElementClass(this.headers[i], "selected"); + } + + deselectAll() { + for (let i = 0; i < this.tabs.length; i++) { + changeElementClass(this.tabs[i], "tab deselected"); + changeElementClass(this.headers[i], "deselected"); + } + } + } + + function getTabContainers() { + const tabContainers = Array.from(document.getElementsByClassName("tab-container")); + + // Used by existing TabbedPageRenderer users, which have not adjusted to use TabsRenderer yet. + const legacyContainer = document.getElementById("tabs"); + if (legacyContainer) { + tabContainers.push(legacyContainer); + } + + return tabContainers; + } + + function initTabs() { + let tabGroups = 0; + + function createTab(num, container) { + const tabElems = findTabs(container); + const tabManager = new TabManager("tabs" + num, tabElems, findTitles(tabElems), findHeaders(container)); + tabManager.select(0); + } + + const tabContainers = getTabContainers(); + + for (let i = 0; i < tabContainers.length; i++) { + createTab(tabGroups, tabContainers[i]); + tabGroups++; + } + + return true; + } + + function findTabs(container) { + return findChildElements(container, "DIV", "tab"); + } + + function findHeaders(container) { + const owner = findChildElements(container, "UL", "tabLinks"); + return findChildElements(owner[0], "LI", null); + } + + function findTitles(tabs) { + const titles = []; + + for (let i = 0; i < tabs.length; i++) { + const tab = tabs[i]; + const header = findChildElements(tab, "H2", null)[0]; + + header.parentNode.removeChild(header); + + if (header.innerText) { + titles.push(header.innerText); + } else { + titles.push(header.textContent); + } + } + + return titles; + } + + function findChildElements(container, name, targetClass) { + const elements = []; + const children = container.childNodes; + + for (let i = 0; i < children.length; i++) { + const child = children.item(i); + + if (child.nodeType === 1 && child.nodeName === name) { + if (targetClass && child.className.indexOf(targetClass) < 0) { + continue; + } + + elements.push(child); + } + } + + return elements; + } + + // Entry point. + + window.onload = function() { + initTabs(); + initControls(); + }; +} (window, window.document)); diff --git a/backend-spring/build/resources/main/application.properties b/backend-spring/build/resources/main/application.properties new file mode 100644 index 0000000..35e78e6 --- /dev/null +++ b/backend-spring/build/resources/main/application.properties @@ -0,0 +1,12 @@ +spring.application.name=allowance-planner + +spring.datasource.url=jdbc:postgresql://localhost:5432/allowance_planner +spring.datasource.username=postgres +spring.datasource.password=postgres + +spring.jpa.hibernate.ddl-auto=validate +spring.jpa.open-in-view=false + +spring.flyway.enabled=true + +server.port=8080 diff --git a/backend-spring/build/resources/main/db/migration/V1__initial.sql b/backend-spring/build/resources/main/db/migration/V1__initial.sql new file mode 100644 index 0000000..c956d03 --- /dev/null +++ b/backend-spring/build/resources/main/db/migration/V1__initial.sql @@ -0,0 +1,42 @@ +CREATE TABLE users +( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + weight DOUBLE PRECISION NOT NULL DEFAULT 10.0, + balance BIGINT NOT NULL DEFAULT 0 +); + +CREATE TABLE history +( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + timestamp BIGINT NOT NULL, + amount BIGINT NOT NULL, + description TEXT +); + +CREATE TABLE allowances +( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + name TEXT NOT NULL, + target BIGINT NOT NULL, + balance BIGINT NOT NULL DEFAULT 0, + weight DOUBLE PRECISION NOT NULL, + colour INTEGER +); + +CREATE TABLE tasks +( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + reward BIGINT NOT NULL, + assigned INTEGER, + schedule TEXT, + completed BIGINT, + next_run BIGINT +); + +INSERT INTO users (name) +VALUES ('Seeseemelk'), + ('Huffle'); diff --git a/backend-spring/build/resources/main/templates/index.html b/backend-spring/build/resources/main/templates/index.html new file mode 100644 index 0000000..a199188 --- /dev/null +++ b/backend-spring/build/resources/main/templates/index.html @@ -0,0 +1,122 @@ + + + + Allowance Planner 2000 + + + +

Allowance Planner 2000

+ +
+

Error

+

+
+ +
+

Users

+ + + + + +
+

Allowances

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameProgressTargetWeightActions
Total + + () + + Mark as completed +
+
+ +

Tasks

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAssignedRewardScheduleActions
+ None + + + Mark as completed +
+
+ +

History

+ + + + + + + + + + + + + +
TimestampAllowance
+
+
+ + diff --git a/backend-spring/build/test-results/test/TEST-be.seeseepuff.allowanceplanner.ApiTest.xml b/backend-spring/build/test-results/test/TEST-be.seeseepuff.allowanceplanner.ApiTest.xml new file mode 100644 index 0000000..f70ae6f --- /dev/null +++ b/backend-spring/build/test-results/test/TEST-be.seeseepuff.allowanceplanner.ApiTest.xml @@ -0,0 +1,715 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > +2026-02-28T18:46:20.703+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:20.718+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.007s) +2026-02-28T18:46:20.799+01:00 INFO 74623 --- [allowance-planner] [ Test worker] org.hibernate.orm.jpa : HHH008540: Processing PersistenceUnitInfo [name: default] +2026-02-28T18:46:20.827+01:00 INFO 74623 --- [allowance-planner] [ Test worker] org.hibernate.orm.core : HHH000001: Hibernate ORM core version 7.2.4.Final +2026-02-28T18:46:21.053+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer +2026-02-28T18:46:21.098+01:00 INFO 74623 --- [allowance-planner] [ Test worker] org.hibernate.orm.connections.pooling : HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:32809/allowance_planner_test?loggerLevel=OFF] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.9 + Default catalog/schema: allowance_planner_test/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-02-28T18:46:21.551+01:00 INFO 74623 --- [allowance-planner] [ Test worker] org.hibernate.orm.core : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-02-28T18:46:21.572+01:00 INFO 74623 --- [allowance-planner] [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-02-28T18:46:21.622+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.s.d.j.r.query.QueryEnhancerFactories : Hibernate is in classpath; If applicable, HQL parser will be used. +2026-02-28T18:46:22.181+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.s.b.w.a.WelcomePageHandlerMapping : Adding welcome page template: index +2026-02-28T18:46:22.422+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.s.boot.tomcat.TomcatWebServer : Tomcat started on port 43703 (http) with context path '/' +2026-02-28T18:46:22.427+01:00 INFO 74623 --- [allowance-planner] [ Test worker] be.seeseepuff.allowanceplanner.ApiTest : Started ApiTest in 3.154 seconds (process running for 6.592) +2026-02-28T18:46:22.732+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:22.742+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.009s) +2026-02-28T18:46:22.747+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:22.748+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:22.756+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:22.757+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:22.760+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:22.764+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:22.767+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:22.774+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s) +2026-02-28T18:46:23.272+01:00 INFO 74623 --- [allowance-planner] [o-auto-1-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-02-28T18:46:23.273+01:00 INFO 74623 --- [allowance-planner] [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-02-28T18:46:23.274+01:00 INFO 74623 --- [allowance-planner] [o-auto-1-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms +2026-02-28T18:46:23.710+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:23.717+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.006s) +2026-02-28T18:46:23.723+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:23.723+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:23.728+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:23.729+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:23.731+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:23.737+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:23.740+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:23.749+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.006s) +2026-02-28T18:46:23.780+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:23.789+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.008s) +2026-02-28T18:46:23.793+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:23.793+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:23.798+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:23.799+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:23.800+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:23.805+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:23.806+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:23.814+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s) +2026-02-28T18:46:23.885+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:23.892+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.006s) +2026-02-28T18:46:23.895+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:23.895+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:23.900+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:23.900+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:23.903+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:23.907+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:23.910+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:23.915+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:24.139+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.145+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:24.148+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:24.149+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.153+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.153+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:24.154+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.157+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.159+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.164+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:24.184+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.187+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:24.188+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.000s) +2026-02-28T18:46:24.188+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.192+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.192+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:24.193+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.197+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.198+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.203+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:24.225+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.231+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:24.232+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:24.233+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.237+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.237+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:24.239+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.243+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.244+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.250+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:24.265+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.269+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:24.270+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.000s) +2026-02-28T18:46:24.270+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.274+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.275+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:24.276+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.280+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.281+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.288+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:24.327+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.332+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:24.333+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:24.334+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.337+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.338+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:24.340+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.343+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.345+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.350+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:24.368+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.373+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:24.375+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:24.375+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.379+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.379+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:24.380+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.384+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.386+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.394+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s) +2026-02-28T18:46:24.412+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.417+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:24.420+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:24.420+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.425+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.425+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:24.426+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.430+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.431+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.436+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:24.458+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.464+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:24.466+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:24.466+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.471+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.471+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:24.472+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.476+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.477+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.482+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:24.528+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.538+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.009s) +2026-02-28T18:46:24.540+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:24.541+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.546+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.546+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:24.547+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.550+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.551+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.556+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:24.702+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.706+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:24.708+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:24.709+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.713+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.713+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:24.714+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.717+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.719+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.724+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:24.741+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.745+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:24.747+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:24.747+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.751+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.751+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:24.752+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.755+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.756+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.761+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:24.852+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.857+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:24.859+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:24.859+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:24.864+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:24.864+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:24.866+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:24.869+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:24.870+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:24.875+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:24.999+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.003+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:25.004+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.004+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.009+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.009+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:25.010+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.013+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.014+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.019+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:25.034+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.039+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:25.041+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.041+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.044+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.045+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.046+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.048+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.049+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.054+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:25.074+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.077+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:25.079+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.079+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.083+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.083+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.084+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.087+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.087+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.094+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:25.110+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.115+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:25.116+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.116+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.121+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.121+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.123+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.125+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.126+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.133+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:25.331+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.334+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:25.335+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.336+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.339+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.340+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.341+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.343+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.344+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.348+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s) +2026-02-28T18:46:25.405+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.409+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:25.410+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.410+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.414+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.414+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.415+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.417+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.418+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.422+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s) +2026-02-28T18:46:25.504+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.509+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:25.511+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.511+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.515+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.515+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.516+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.519+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.520+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.524+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:25.572+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.577+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:25.578+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.000s) +2026-02-28T18:46:25.578+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.581+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.581+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.582+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.586+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.587+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.592+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:25.621+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.624+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:25.625+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.626+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.629+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.630+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.630+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.633+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.634+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.640+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:25.659+01:00 WARN 74623 --- [allowance-planner] [o-auto-1-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot map `null` into type `double` (set DeserializationConfig.DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES to 'false' to allow)] +2026-02-28T18:46:25.671+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.676+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:25.678+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.678+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.683+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.684+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:25.685+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.689+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.690+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.694+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:25.727+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.732+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:25.734+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.734+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.738+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.739+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:25.740+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.742+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.743+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.749+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:25.780+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.786+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:25.787+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.787+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.791+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.791+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.792+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.796+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.797+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.802+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:25.823+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.828+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:25.829+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.829+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.832+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.832+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.833+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.835+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.836+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.843+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s) +2026-02-28T18:46:25.858+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.862+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:25.864+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.864+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.867+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.867+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.868+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.870+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.871+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.878+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s) +2026-02-28T18:46:25.890+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.895+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:25.897+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:25.897+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:25.899+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:25.900+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:25.900+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:25.902+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:25.903+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:25.908+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:26.074+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.080+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:26.081+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:26.082+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.087+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.087+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:26.088+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.092+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.093+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.097+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:26.226+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.229+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:26.230+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.000s) +2026-02-28T18:46:26.230+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.234+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.234+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:26.235+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.237+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.238+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.243+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:26.292+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.295+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:26.296+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:26.296+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.298+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.299+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.300+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.302+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.303+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.310+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:26.402+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.407+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:26.409+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:26.409+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.411+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.412+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.413+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.415+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.416+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.420+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:26.434+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.437+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:26.439+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:26.439+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.443+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.443+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.444+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.446+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.447+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.454+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s) +2026-02-28T18:46:26.520+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.524+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:26.526+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:26.526+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.532+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.532+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.533+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.536+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.537+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.541+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:26.618+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.622+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:26.623+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:26.624+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.626+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.626+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.627+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.630+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.630+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.635+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:26.645+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.651+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:26.653+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:26.653+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.656+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.656+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.657+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.659+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.660+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.664+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:26.759+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.764+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:26.766+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:26.766+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.768+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.769+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.769+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.771+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.772+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.777+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:26.794+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.799+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:26.801+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:26.801+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.806+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.807+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.807+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.810+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.811+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.819+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s) +2026-02-28T18:46:26.834+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.838+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:26.840+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:26.840+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.843+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.843+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.844+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.847+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.848+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.854+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:26.923+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.927+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:26.928+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:26.928+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.931+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:26.932+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:26.933+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:26.936+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:26.937+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:26.941+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:26.995+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:26.999+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:27.001+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.001+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.005+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.005+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.007+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.009+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.010+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.016+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s) +2026-02-28T18:46:27.049+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.055+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.004s) +2026-02-28T18:46:27.056+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.056+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.059+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.059+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.060+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.062+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.063+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.067+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:27.126+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.130+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:27.132+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.132+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.134+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.134+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.135+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.138+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.139+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.142+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s) +2026-02-28T18:46:27.189+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.193+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:27.194+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.194+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.198+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.198+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.199+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.202+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.202+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.208+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:27.254+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.260+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.005s) +2026-02-28T18:46:27.261+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.261+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.264+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.264+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.265+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.268+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.268+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.273+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s) +2026-02-28T18:46:27.287+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.290+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:27.291+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.292+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.295+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.295+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.296+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.298+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.298+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.302+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s) +2026-02-28T18:46:27.323+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.327+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:27.328+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.328+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.331+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.331+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.332+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.334+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.335+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.340+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:27.415+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.418+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:27.419+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.000s) +2026-02-28T18:46:27.419+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.423+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.424+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.001s) +2026-02-28T18:46:27.424+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.428+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.429+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.438+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.004s) +2026-02-28T18:46:27.452+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.455+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:27.456+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.000s) +2026-02-28T18:46:27.456+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.460+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.460+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.461+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.463+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.464+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.468+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s) +2026-02-28T18:46:27.546+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.549+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:27.550+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.550+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.553+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.553+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.553+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.555+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.556+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.563+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:27.575+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.578+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:27.579+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.000s) +2026-02-28T18:46:27.579+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.580+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.581+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.581+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.583+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.583+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.586+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.002s) +2026-02-28T18:46:27.649+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.652+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.002s) +2026-02-28T18:46:27.653+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.000s) +2026-02-28T18:46:27.653+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.655+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.655+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.656+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.659+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.659+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.667+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.005s) +2026-02-28T18:46:27.695+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.699+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:27.700+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.701+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.704+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.704+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.705+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.707+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.708+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.713+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +2026-02-28T18:46:27.763+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped pre-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.766+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.003s) +2026-02-28T18:46:27.768+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully cleaned schema "public" (execution time 00:00.001s) +2026-02-28T18:46:27.768+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.command.clean.CleanExecutor : Successfully dropped post-schema database level objects (execution time 00:00.000s) +2026-02-28T18:46:27.770+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Schema history table "public"."flyway_schema_history" does not exist yet +2026-02-28T18:46:27.770+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbValidate : Successfully validated 1 migration (execution time 00:00.000s) +2026-02-28T18:46:27.771+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.c.i.s.JdbcTableSchemaHistory : Creating Schema History table "public"."flyway_schema_history" ... +2026-02-28T18:46:27.774+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Current version of schema "public": << Empty Schema >> +2026-02-28T18:46:27.774+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Migrating schema "public" to version "1 - initial" +2026-02-28T18:46:27.779+01:00 INFO 74623 --- [allowance-planner] [ Test worker] o.f.core.internal.command.DbMigrate : Successfully applied 1 migration to schema "public", now at version v1 (execution time 00:00.003s) +]]> + + diff --git a/backend-spring/build/test-results/test/TEST-be.seeseepuff.allowanceplanner.ColourUtilTest.xml b/backend-spring/build/test-results/test/TEST-be.seeseepuff.allowanceplanner.ColourUtilTest.xml new file mode 100644 index 0000000..cec448a --- /dev/null +++ b/backend-spring/build/test-results/test/TEST-be.seeseepuff.allowanceplanner.ColourUtilTest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/backend-spring/build/test-results/test/binary/output-events.bin b/backend-spring/build/test-results/test/binary/output-events.bin new file mode 100644 index 0000000..773145c Binary files /dev/null and b/backend-spring/build/test-results/test/binary/output-events.bin differ diff --git a/backend-spring/build/test-results/test/binary/results-generic.bin b/backend-spring/build/test-results/test/binary/results-generic.bin new file mode 100644 index 0000000..b7a0b08 Binary files /dev/null and b/backend-spring/build/test-results/test/binary/results-generic.bin differ diff --git a/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/AllowanceRepository.class.uniqueId4 b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/AllowanceRepository.class.uniqueId4 new file mode 100644 index 0000000..7d6cf7b Binary files /dev/null and b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/AllowanceRepository.class.uniqueId4 differ diff --git a/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/AllowanceService.class.uniqueId2 b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/AllowanceService.class.uniqueId2 new file mode 100644 index 0000000..713741e Binary files /dev/null and b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/AllowanceService.class.uniqueId2 differ diff --git a/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/ApiController$1.class.uniqueId8 b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/ApiController$1.class.uniqueId8 new file mode 100644 index 0000000..03ceadd Binary files /dev/null and b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/ApiController$1.class.uniqueId8 differ diff --git a/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/ApiController.class.uniqueId6 b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/ApiController.class.uniqueId6 new file mode 100644 index 0000000..5629488 Binary files /dev/null and b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/ApiController.class.uniqueId6 differ diff --git a/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TaskService.class.uniqueId0 b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TaskService.class.uniqueId0 new file mode 100644 index 0000000..7b56507 Binary files /dev/null and b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TaskService.class.uniqueId0 differ diff --git a/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TransferService$TransferResult$Status.class.uniqueId3 b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TransferService$TransferResult$Status.class.uniqueId3 new file mode 100644 index 0000000..76ce92c Binary files /dev/null and b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TransferService$TransferResult$Status.class.uniqueId3 differ diff --git a/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TransferService$TransferResult.class.uniqueId5 b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TransferService$TransferResult.class.uniqueId5 new file mode 100644 index 0000000..ef861b9 Binary files /dev/null and b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TransferService$TransferResult.class.uniqueId5 differ diff --git a/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TransferService.class.uniqueId1 b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TransferService.class.uniqueId1 new file mode 100644 index 0000000..c1263de Binary files /dev/null and b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/TransferService.class.uniqueId1 differ diff --git a/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/WebController.class.uniqueId7 b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/WebController.class.uniqueId7 new file mode 100644 index 0000000..82acdc7 Binary files /dev/null and b/backend-spring/build/tmp/compileJava/compileTransaction/stash-dir/WebController.class.uniqueId7 differ diff --git a/backend-spring/build/tmp/compileJava/previous-compilation-data.bin b/backend-spring/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000..0bb3182 Binary files /dev/null and b/backend-spring/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/backend-spring/build/tmp/compileTestJava/previous-compilation-data.bin b/backend-spring/build/tmp/compileTestJava/previous-compilation-data.bin new file mode 100644 index 0000000..36d5d46 Binary files /dev/null and b/backend-spring/build/tmp/compileTestJava/previous-compilation-data.bin differ diff --git a/backend-spring/gradle/wrapper/gradle-wrapper.jar b/backend-spring/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..61285a6 Binary files /dev/null and b/backend-spring/gradle/wrapper/gradle-wrapper.jar differ diff --git a/backend-spring/gradle/wrapper/gradle-wrapper.properties b/backend-spring/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..37f78a6 --- /dev/null +++ b/backend-spring/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/backend-spring/gradlew b/backend-spring/gradlew new file mode 100755 index 0000000..adff685 --- /dev/null +++ b/backend-spring/gradlew @@ -0,0 +1,248 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/backend-spring/gradlew.bat b/backend-spring/gradlew.bat new file mode 100644 index 0000000..e509b2d --- /dev/null +++ b/backend-spring/gradlew.bat @@ -0,0 +1,93 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/backend-spring/settings.gradle.kts b/backend-spring/settings.gradle.kts new file mode 100644 index 0000000..61d5455 --- /dev/null +++ b/backend-spring/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "allowance-planner" diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/AllowancePlannerApplication.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/AllowancePlannerApplication.java new file mode 100644 index 0000000..dbc9452 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/AllowancePlannerApplication.java @@ -0,0 +1,13 @@ +package be.seeseepuff.allowanceplanner; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class AllowancePlannerApplication +{ + public static void main(String[] args) + { + SpringApplication.run(AllowancePlannerApplication.class, args); + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/controller/ApiController.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/controller/ApiController.java new file mode 100644 index 0000000..72dcb63 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/controller/ApiController.java @@ -0,0 +1,506 @@ +package be.seeseepuff.allowanceplanner.controller; + +import be.seeseepuff.allowanceplanner.dto.*; +import be.seeseepuff.allowanceplanner.service.AllowanceService; +import be.seeseepuff.allowanceplanner.service.TaskService; +import be.seeseepuff.allowanceplanner.service.TransferService; +import be.seeseepuff.allowanceplanner.service.UserService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Optional; + +@RestController +@RequestMapping("/api") +@CrossOrigin(origins = "*") +public class ApiController +{ + private final UserService userService; + private final AllowanceService allowanceService; + private final TaskService taskService; + private final TransferService transferService; + + public ApiController(UserService userService, + AllowanceService allowanceService, + TaskService taskService, + TransferService transferService) + { + this.userService = userService; + this.allowanceService = allowanceService; + this.taskService = taskService; + this.transferService = transferService; + } + + // ---- Users ---- + + @GetMapping("/users") + public List getUsers() + { + return userService.getUsers(); + } + + @GetMapping("/user/{userId}") + public ResponseEntity getUser(@PathVariable String userId) + { + int id; + try + { + id = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + Optional user = userService.getUser(id); + if (user.isEmpty()) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + return ResponseEntity.ok(user.get()); + } + + // ---- History ---- + + @PostMapping("/user/{userId}/history") + public ResponseEntity postHistory(@PathVariable String userId, @RequestBody PostHistoryRequest request) + { + int id; + try + { + id = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + if (request.description() == null || request.description().isEmpty()) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Description cannot be empty")); + } + + if (!userService.userExists(id)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + + allowanceService.addHistory(id, request); + return ResponseEntity.ok(new MessageResponse("History updated successfully")); + } + + @GetMapping("/user/{userId}/history") + public ResponseEntity getHistory(@PathVariable String userId) + { + int id; + try + { + id = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + List history = allowanceService.getHistory(id); + return ResponseEntity.ok(history); + } + + // ---- Allowances ---- + + @GetMapping("/user/{userId}/allowance") + public ResponseEntity getUserAllowance(@PathVariable String userId) + { + int id; + try + { + id = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + if (!userService.userExists(id)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + + return ResponseEntity.ok(allowanceService.getUserAllowances(id)); + } + + @PostMapping("/user/{userId}/allowance") + public ResponseEntity createUserAllowance(@PathVariable String userId, + @RequestBody CreateAllowanceRequest request) + { + int id; + try + { + id = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + if (request.name() == null || request.name().isEmpty()) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Allowance name cannot be empty")); + } + + if (!userService.userExists(id)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + + int allowanceId = allowanceService.createAllowance(id, request); + return ResponseEntity.status(HttpStatus.CREATED).body(new IdResponse(allowanceId)); + } + + @PutMapping("/user/{userId}/allowance") + public ResponseEntity bulkPutUserAllowance(@PathVariable String userId, + @RequestBody List requests) + { + int id; + try + { + id = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + if (!userService.userExists(id)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + + allowanceService.bulkUpdateAllowance(id, requests); + return ResponseEntity.ok(new MessageResponse("Allowance updated successfully")); + } + + @GetMapping("/user/{userId}/allowance/{allowanceId}") + public ResponseEntity getUserAllowanceById(@PathVariable String userId, @PathVariable String allowanceId) + { + int uid; + try + { + uid = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + int aid; + try + { + aid = Integer.parseInt(allowanceId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid allowance ID")); + } + + if (!userService.userExists(uid)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + + Optional allowance = allowanceService.getUserAllowanceById(uid, aid); + if (allowance.isEmpty()) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("Allowance not found")); + } + return ResponseEntity.ok(allowance.get()); + } + + @DeleteMapping("/user/{userId}/allowance/{allowanceId}") + public ResponseEntity deleteUserAllowance(@PathVariable String userId, @PathVariable String allowanceId) + { + int uid; + try + { + uid = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + int aid; + try + { + aid = Integer.parseInt(allowanceId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid allowance ID")); + } + + if (aid == 0) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Allowance id zero cannot be deleted")); + } + + if (!userService.userExists(uid)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + + boolean deleted = allowanceService.deleteAllowance(uid, aid); + if (!deleted) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("History not found")); + } + return ResponseEntity.ok(new MessageResponse("History deleted successfully")); + } + + @PutMapping("/user/{userId}/allowance/{allowanceId}") + public ResponseEntity putUserAllowance(@PathVariable String userId, @PathVariable String allowanceId, + @RequestBody UpdateAllowanceRequest request) + { + int uid; + try + { + uid = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + int aid; + try + { + aid = Integer.parseInt(allowanceId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid allowance ID")); + } + + if (!userService.userExists(uid)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + + boolean updated = allowanceService.updateAllowance(uid, aid, request); + if (!updated) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("Allowance not found")); + } + return ResponseEntity.ok(new MessageResponse("Allowance updated successfully")); + } + + @PostMapping("/user/{userId}/allowance/{allowanceId}/complete") + public ResponseEntity completeAllowance(@PathVariable String userId, @PathVariable String allowanceId) + { + int uid; + try + { + uid = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + int aid; + try + { + aid = Integer.parseInt(allowanceId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid allowance ID")); + } + + if (!userService.userExists(uid)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + + boolean completed = allowanceService.completeAllowance(uid, aid); + if (!completed) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("Allowance not found")); + } + return ResponseEntity.ok(new MessageResponse("Allowance completed successfully")); + } + + @PostMapping("/user/{userId}/allowance/{allowanceId}/add") + public ResponseEntity addToAllowance(@PathVariable String userId, @PathVariable String allowanceId, + @RequestBody AddAllowanceAmountRequest request) + { + int uid; + try + { + uid = Integer.parseInt(userId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid user ID")); + } + + int aid; + try + { + aid = Integer.parseInt(allowanceId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid allowance ID")); + } + + if (!userService.userExists(uid)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + + boolean result = allowanceService.addAllowanceAmount(uid, aid, request); + if (!result) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("Allowance not found")); + } + return ResponseEntity.ok(new MessageResponse("Allowance completed successfully")); + } + + // ---- Tasks ---- + + @PostMapping("/tasks") + public ResponseEntity createTask(@RequestBody CreateTaskRequest request) + { + if (request.name() == null || request.name().isEmpty()) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Task name cannot be empty")); + } + + if (request.schedule() != null) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Schedules are not yet supported")); + } + + if (request.assigned() != null) + { + if (!userService.userExists(request.assigned())) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("User not found")); + } + } + + int taskId = taskService.createTask(request); + return ResponseEntity.status(HttpStatus.CREATED).body(new IdResponse(taskId)); + } + + @GetMapping("/tasks") + public List getTasks() + { + return taskService.getTasks(); + } + + @GetMapping("/task/{taskId}") + public ResponseEntity getTask(@PathVariable String taskId) + { + int id; + try + { + id = Integer.parseInt(taskId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid task ID")); + } + + Optional task = taskService.getTask(id); + if (task.isEmpty()) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("Task not found")); + } + return ResponseEntity.ok(task.get()); + } + + @PutMapping("/task/{taskId}") + public ResponseEntity putTask(@PathVariable String taskId, @RequestBody CreateTaskRequest request) + { + int id; + try + { + id = Integer.parseInt(taskId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid task ID")); + } + + Optional existing = taskService.getTask(id); + if (existing.isEmpty()) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("Task not found")); + } + + taskService.updateTask(id, request); + return ResponseEntity.ok(new MessageResponse("Task updated successfully")); + } + + @DeleteMapping("/task/{taskId}") + public ResponseEntity deleteTask(@PathVariable String taskId) + { + int id; + try + { + id = Integer.parseInt(taskId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid task ID")); + } + + if (!taskService.hasTask(id)) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("Task not found")); + } + + taskService.deleteTask(id); + return ResponseEntity.ok(new MessageResponse("Task deleted successfully")); + } + + @PostMapping("/task/{taskId}/complete") + public ResponseEntity completeTask(@PathVariable String taskId) + { + int id; + try + { + id = Integer.parseInt(taskId); + } + catch (NumberFormatException e) + { + return ResponseEntity.badRequest().body(new ErrorResponse("Invalid task ID")); + } + + boolean completed = taskService.completeTask(id); + if (!completed) + { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse("Task not found")); + } + return ResponseEntity.ok(new MessageResponse("Task completed successfully")); + } + + // ---- Transfer ---- + + @PostMapping("/transfer") + public ResponseEntity transfer(@RequestBody TransferRequest request) + { + TransferService.TransferResult result = transferService.transfer(request); + return switch (result.status()) + { + case SUCCESS -> ResponseEntity.ok(new MessageResponse(result.message())); + case BAD_REQUEST -> ResponseEntity.badRequest().body(new ErrorResponse(result.message())); + case NOT_FOUND -> + ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse(result.message())); + }; + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/controller/WebController.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/controller/WebController.java new file mode 100644 index 0000000..d290984 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/controller/WebController.java @@ -0,0 +1,173 @@ +package be.seeseepuff.allowanceplanner.controller; + +import be.seeseepuff.allowanceplanner.dto.*; +import be.seeseepuff.allowanceplanner.service.AllowanceService; +import be.seeseepuff.allowanceplanner.service.TaskService; +import be.seeseepuff.allowanceplanner.service.UserService; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.Arrays; +import java.util.List; + +@Controller +public class WebController +{ + private final UserService userService; + private final AllowanceService allowanceService; + private final TaskService taskService; + + public WebController(UserService userService, AllowanceService allowanceService, TaskService taskService) + { + this.userService = userService; + this.allowanceService = allowanceService; + this.taskService = taskService; + } + + @GetMapping("/") + public String index(HttpServletRequest request, HttpServletResponse response, Model model) + { + Integer currentUser = getCurrentUser(request, response); + if (currentUser == null) + { + model.addAttribute("users", userService.getUsers()); + return "index"; + } + return renderWithUser(model, currentUser); + } + + @GetMapping("/login") + public String login(@RequestParam(required = false) String user, HttpServletResponse response) + { + if (user != null && !user.isEmpty()) + { + Cookie cookie = new Cookie("user", user); + cookie.setMaxAge(3600); + cookie.setHttpOnly(true); + response.addCookie(cookie); + } + return "redirect:/"; + } + + @PostMapping("/createTask") + public String createTask(@RequestParam String name, @RequestParam double reward, + @RequestParam(required = false) String schedule, + HttpServletRequest request, HttpServletResponse response, Model model) + { + Integer currentUser = getCurrentUser(request, response); + if (currentUser == null) + { + return "redirect:/"; + } + + if (name.isEmpty() || reward <= 0) + { + model.addAttribute("error", "Invalid input"); + return "index"; + } + + CreateTaskRequest taskRequest = new CreateTaskRequest(name, reward, null, + (schedule != null && !schedule.isEmpty()) ? schedule : null); + taskService.createTask(taskRequest); + return "redirect:/"; + } + + @GetMapping("/completeTask") + public String completeTask(@RequestParam("task") int taskId) + { + taskService.completeTask(taskId); + return "redirect:/"; + } + + @PostMapping("/createAllowance") + public String createAllowance(@RequestParam String name, @RequestParam double target, + @RequestParam double weight, + HttpServletRequest request, HttpServletResponse response, Model model) + { + Integer currentUser = getCurrentUser(request, response); + if (currentUser == null) + { + return "redirect:/"; + } + + if (name.isEmpty() || target <= 0 || weight <= 0) + { + model.addAttribute("error", "Invalid input"); + return "index"; + } + + allowanceService.createAllowance(currentUser, new CreateAllowanceRequest(name, target, weight, "")); + return "redirect:/"; + } + + @GetMapping("/completeAllowance") + public String completeAllowance(@RequestParam("allowance") int allowanceId, + HttpServletRequest request, HttpServletResponse response) + { + Integer currentUser = getCurrentUser(request, response); + if (currentUser == null) + { + return "redirect:/"; + } + allowanceService.completeAllowance(currentUser, allowanceId); + return "redirect:/"; + } + + private Integer getCurrentUser(HttpServletRequest request, HttpServletResponse response) + { + Cookie[] cookies = request.getCookies(); + if (cookies == null) + { + return null; + } + String userStr = Arrays.stream(cookies) + .filter(c -> "user".equals(c.getName())) + .map(Cookie::getValue) + .findFirst() + .orElse(null); + if (userStr == null) + { + return null; + } + try + { + int userId = Integer.parseInt(userStr); + if (!userService.userExists(userId)) + { + unsetUserCookie(response); + return null; + } + return userId; + } + catch (NumberFormatException e) + { + unsetUserCookie(response); + return null; + } + } + + private void unsetUserCookie(HttpServletResponse response) + { + Cookie cookie = new Cookie("user", ""); + cookie.setMaxAge(0); + cookie.setPath("/"); + cookie.setHttpOnly(true); + response.addCookie(cookie); + } + + private String renderWithUser(Model model, int currentUser) + { + model.addAttribute("users", userService.getUsers()); + model.addAttribute("currentUser", currentUser); + model.addAttribute("allowances", allowanceService.getUserAllowances(currentUser)); + model.addAttribute("tasks", taskService.getTasks()); + model.addAttribute("history", allowanceService.getHistory(currentUser)); + return "index"; + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/AddAllowanceAmountRequest.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/AddAllowanceAmountRequest.java new file mode 100644 index 0000000..f1c467d --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/AddAllowanceAmountRequest.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record AddAllowanceAmountRequest(double amount, String description) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/AllowanceDto.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/AllowanceDto.java new file mode 100644 index 0000000..fc7b2e7 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/AllowanceDto.java @@ -0,0 +1,8 @@ +package be.seeseepuff.allowanceplanner.dto; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.ALWAYS) +public record AllowanceDto(int id, String name, double target, double progress, double weight, String colour) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/BulkUpdateAllowanceRequest.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/BulkUpdateAllowanceRequest.java new file mode 100644 index 0000000..124a08c --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/BulkUpdateAllowanceRequest.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record BulkUpdateAllowanceRequest(int id, double weight) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/CreateAllowanceRequest.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/CreateAllowanceRequest.java new file mode 100644 index 0000000..ac4e8aa --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/CreateAllowanceRequest.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record CreateAllowanceRequest(String name, double target, double weight, String colour) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/CreateTaskRequest.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/CreateTaskRequest.java new file mode 100644 index 0000000..e430354 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/CreateTaskRequest.java @@ -0,0 +1,11 @@ +package be.seeseepuff.allowanceplanner.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public record CreateTaskRequest( + String name, + Double reward, + Integer assigned, + String schedule) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/ErrorResponse.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/ErrorResponse.java new file mode 100644 index 0000000..c5763de --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/ErrorResponse.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record ErrorResponse(String error) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/HistoryDto.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/HistoryDto.java new file mode 100644 index 0000000..7e404bd --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/HistoryDto.java @@ -0,0 +1,7 @@ +package be.seeseepuff.allowanceplanner.dto; + +import java.time.Instant; + +public record HistoryDto(double allowance, Instant timestamp, String description) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/IdResponse.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/IdResponse.java new file mode 100644 index 0000000..54b2bea --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/IdResponse.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record IdResponse(int id) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/MessageResponse.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/MessageResponse.java new file mode 100644 index 0000000..2fef1f9 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/MessageResponse.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record MessageResponse(String message) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/PostHistoryRequest.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/PostHistoryRequest.java new file mode 100644 index 0000000..abff1a5 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/PostHistoryRequest.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record PostHistoryRequest(double allowance, String description) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/TaskDto.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/TaskDto.java new file mode 100644 index 0000000..168f10c --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/TaskDto.java @@ -0,0 +1,8 @@ +package be.seeseepuff.allowanceplanner.dto; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.ALWAYS) +public record TaskDto(int id, String name, double reward, Integer assigned, String schedule) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/TransferRequest.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/TransferRequest.java new file mode 100644 index 0000000..f631e40 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/TransferRequest.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record TransferRequest(int from, int to, double amount) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/UpdateAllowanceRequest.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/UpdateAllowanceRequest.java new file mode 100644 index 0000000..7b1cca8 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/UpdateAllowanceRequest.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record UpdateAllowanceRequest(String name, double target, double weight, String colour) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/UserDto.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/UserDto.java new file mode 100644 index 0000000..18a0823 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/UserDto.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record UserDto(int id, String name) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/UserWithAllowanceDto.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/UserWithAllowanceDto.java new file mode 100644 index 0000000..553ddc0 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/dto/UserWithAllowanceDto.java @@ -0,0 +1,5 @@ +package be.seeseepuff.allowanceplanner.dto; + +public record UserWithAllowanceDto(int id, String name, double allowance) +{ +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/Allowance.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/Allowance.java new file mode 100644 index 0000000..f562b25 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/Allowance.java @@ -0,0 +1,99 @@ +package be.seeseepuff.allowanceplanner.entity; + +import jakarta.persistence.*; + +@Entity +@Table(name = "allowances") +public class Allowance +{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int id; + + @Column(name = "user_id", nullable = false) + private int userId; + + @Column(nullable = false) + private String name; + + @Column(nullable = false) + private long target; + + @Column(nullable = false) + private long balance = 0; + + @Column(nullable = false) + private double weight; + + private Integer colour; + + public int getId() + { + return id; + } + + public void setId(int id) + { + this.id = id; + } + + public int getUserId() + { + return userId; + } + + public void setUserId(int userId) + { + this.userId = userId; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public long getTarget() + { + return target; + } + + public void setTarget(long target) + { + this.target = target; + } + + public long getBalance() + { + return balance; + } + + public void setBalance(long balance) + { + this.balance = balance; + } + + public double getWeight() + { + return weight; + } + + public void setWeight(double weight) + { + this.weight = weight; + } + + public Integer getColour() + { + return colour; + } + + public void setColour(Integer colour) + { + this.colour = colour; + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/History.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/History.java new file mode 100644 index 0000000..520422b --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/History.java @@ -0,0 +1,73 @@ +package be.seeseepuff.allowanceplanner.entity; + +import jakarta.persistence.*; + +@Entity +@Table(name = "history") +public class History +{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int id; + + @Column(name = "user_id", nullable = false) + private int userId; + + @Column(nullable = false) + private long timestamp; + + @Column(nullable = false) + private long amount; + + private String description; + + public int getId() + { + return id; + } + + public void setId(int id) + { + this.id = id; + } + + public int getUserId() + { + return userId; + } + + public void setUserId(int userId) + { + this.userId = userId; + } + + public long getTimestamp() + { + return timestamp; + } + + public void setTimestamp(long timestamp) + { + this.timestamp = timestamp; + } + + public long getAmount() + { + return amount; + } + + public void setAmount(long amount) + { + this.amount = amount; + } + + public String getDescription() + { + return description; + } + + public void setDescription(String description) + { + this.description = description; + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/Task.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/Task.java new file mode 100644 index 0000000..474c98e --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/Task.java @@ -0,0 +1,97 @@ +package be.seeseepuff.allowanceplanner.entity; + +import jakarta.persistence.*; + +@Entity +@Table(name = "tasks") +public class Task +{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int id; + + @Column(nullable = false) + private String name; + + @Column(nullable = false) + private long reward; + + private Integer assigned; + + private String schedule; + + private Long completed; + + @Column(name = "next_run") + private Long nextRun; + + public int getId() + { + return id; + } + + public void setId(int id) + { + this.id = id; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public long getReward() + { + return reward; + } + + public void setReward(long reward) + { + this.reward = reward; + } + + public Integer getAssigned() + { + return assigned; + } + + public void setAssigned(Integer assigned) + { + this.assigned = assigned; + } + + public String getSchedule() + { + return schedule; + } + + public void setSchedule(String schedule) + { + this.schedule = schedule; + } + + public Long getCompleted() + { + return completed; + } + + public void setCompleted(Long completed) + { + this.completed = completed; + } + + public Long getNextRun() + { + return nextRun; + } + + public void setNextRun(Long nextRun) + { + this.nextRun = nextRun; + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/User.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/User.java new file mode 100644 index 0000000..5b1b501 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/entity/User.java @@ -0,0 +1,61 @@ +package be.seeseepuff.allowanceplanner.entity; + +import jakarta.persistence.*; + +@Entity +@Table(name = "users") +public class User +{ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int id; + + @Column(nullable = false) + private String name; + + @Column(nullable = false) + private double weight = 10.0; + + @Column(nullable = false) + private long balance = 0; + + public int getId() + { + return id; + } + + public void setId(int id) + { + this.id = id; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public double getWeight() + { + return weight; + } + + public void setWeight(double weight) + { + this.weight = weight; + } + + public long getBalance() + { + return balance; + } + + public void setBalance(long balance) + { + this.balance = balance; + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/AllowanceRepository.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/AllowanceRepository.java new file mode 100644 index 0000000..ba79bfb --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/AllowanceRepository.java @@ -0,0 +1,27 @@ +package be.seeseepuff.allowanceplanner.repository; + +import be.seeseepuff.allowanceplanner.entity.Allowance; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Optional; + +@Repository +public interface AllowanceRepository extends JpaRepository +{ + List findByUserIdOrderByIdAsc(int userId); + + Optional findByIdAndUserId(int id, int userId); + + int countByIdAndUserId(int id, int userId); + + void deleteByIdAndUserId(int id, int userId); + + @Query("SELECT a FROM Allowance a WHERE a.userId = :userId AND a.weight > 0 ORDER BY (a.target - a.balance) ASC") + List findByUserIdWithPositiveWeightOrderByRemainingAsc(int userId); + + @Query("SELECT COALESCE(SUM(a.weight), 0) FROM Allowance a WHERE a.userId = :userId AND a.weight > 0") + double sumPositiveWeights(int userId); +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/HistoryRepository.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/HistoryRepository.java new file mode 100644 index 0000000..67030fe --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/HistoryRepository.java @@ -0,0 +1,13 @@ +package be.seeseepuff.allowanceplanner.repository; + +import be.seeseepuff.allowanceplanner.entity.History; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface HistoryRepository extends JpaRepository +{ + List findByUserIdOrderByIdDesc(int userId); +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/TaskRepository.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/TaskRepository.java new file mode 100644 index 0000000..7e6fac0 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/TaskRepository.java @@ -0,0 +1,16 @@ +package be.seeseepuff.allowanceplanner.repository; + +import be.seeseepuff.allowanceplanner.entity.Task; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Optional; + +@Repository +public interface TaskRepository extends JpaRepository +{ + List findByCompletedIsNull(); + + Optional findByIdAndCompletedIsNull(int id); +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/UserRepository.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/UserRepository.java new file mode 100644 index 0000000..edf7723 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/repository/UserRepository.java @@ -0,0 +1,13 @@ +package be.seeseepuff.allowanceplanner.repository; + +import be.seeseepuff.allowanceplanner.entity.User; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserRepository extends JpaRepository +{ + @Query("SELECT COALESCE(SUM(h.amount), 0) FROM History h WHERE h.userId = :userId") + long sumHistoryAmount(int userId); +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/AllowanceService.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/AllowanceService.java new file mode 100644 index 0000000..0b3d6a7 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/AllowanceService.java @@ -0,0 +1,298 @@ +package be.seeseepuff.allowanceplanner.service; + +import be.seeseepuff.allowanceplanner.dto.*; +import be.seeseepuff.allowanceplanner.entity.Allowance; +import be.seeseepuff.allowanceplanner.entity.History; +import be.seeseepuff.allowanceplanner.entity.User; +import be.seeseepuff.allowanceplanner.repository.AllowanceRepository; +import be.seeseepuff.allowanceplanner.repository.HistoryRepository; +import be.seeseepuff.allowanceplanner.repository.UserRepository; +import be.seeseepuff.allowanceplanner.util.ColourUtil; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +@Service +public class AllowanceService +{ + private final AllowanceRepository allowanceRepository; + private final UserRepository userRepository; + private final HistoryRepository historyRepository; + + public AllowanceService(AllowanceRepository allowanceRepository, + UserRepository userRepository, + HistoryRepository historyRepository) + { + this.allowanceRepository = allowanceRepository; + this.userRepository = userRepository; + this.historyRepository = historyRepository; + } + + public List getUserAllowances(int userId) + { + User user = userRepository.findById(userId).orElseThrow(); + List result = new ArrayList<>(); + + // Add the "rest" allowance (id=0) + result.add(new AllowanceDto(0, "", 0, user.getBalance() / 100.0, user.getWeight(), "")); + + // Add named allowances + for (Allowance a : allowanceRepository.findByUserIdOrderByIdAsc(userId)) + { + result.add(toDto(a)); + } + return result; + } + + public Optional getUserAllowanceById(int userId, int allowanceId) + { + if (allowanceId == 0) + { + return userRepository.findById(userId) + .map(u -> new AllowanceDto(0, "", 0, u.getBalance() / 100.0, u.getWeight(), "")); + } + return allowanceRepository.findByIdAndUserId(allowanceId, userId) + .map(this::toDto); + } + + @Transactional + public int createAllowance(int userId, CreateAllowanceRequest request) + { + int colour = ColourUtil.convertStringToColour(request.colour()); + Allowance allowance = new Allowance(); + allowance.setUserId(userId); + allowance.setName(request.name()); + allowance.setTarget(Math.round(request.target() * 100.0)); + allowance.setWeight(request.weight()); + allowance.setColour(colour); + allowance = allowanceRepository.save(allowance); + return allowance.getId(); + } + + @Transactional + public boolean deleteAllowance(int userId, int allowanceId) + { + int count = allowanceRepository.countByIdAndUserId(allowanceId, userId); + if (count == 0) + { + return false; + } + allowanceRepository.deleteByIdAndUserId(allowanceId, userId); + return true; + } + + @Transactional + public boolean updateAllowance(int userId, int allowanceId, UpdateAllowanceRequest request) + { + if (allowanceId == 0) + { + User user = userRepository.findById(userId).orElseThrow(); + user.setWeight(request.weight()); + userRepository.save(user); + return true; + } + + Optional opt = allowanceRepository.findByIdAndUserId(allowanceId, userId); + if (opt.isEmpty()) + { + return false; + } + + int colour = ColourUtil.convertStringToColour(request.colour()); + Allowance allowance = opt.get(); + allowance.setName(request.name()); + allowance.setTarget(Math.round(request.target() * 100.0)); + allowance.setWeight(request.weight()); + allowance.setColour(colour); + allowanceRepository.save(allowance); + return true; + } + + @Transactional + public void bulkUpdateAllowance(int userId, List requests) + { + for (BulkUpdateAllowanceRequest req : requests) + { + if (req.id() == 0) + { + User user = userRepository.findById(userId).orElseThrow(); + user.setWeight(req.weight()); + userRepository.save(user); + } + else + { + allowanceRepository.findByIdAndUserId(req.id(), userId).ifPresent(a -> + { + a.setWeight(req.weight()); + allowanceRepository.save(a); + }); + } + } + } + + @Transactional + public boolean completeAllowance(int userId, int allowanceId) + { + Optional opt = allowanceRepository.findByIdAndUserId(allowanceId, userId); + if (opt.isEmpty()) + { + return false; + } + + Allowance allowance = opt.get(); + long cost = allowance.getBalance(); + String allowanceName = allowance.getName(); + + // Delete the allowance + allowanceRepository.delete(allowance); + + // Add a history entry + History history = new History(); + history.setUserId(userId); + history.setTimestamp(Instant.now().getEpochSecond()); + history.setAmount(-cost); + history.setDescription("Allowance completed: " + allowanceName); + historyRepository.save(history); + + return true; + } + + @Transactional + public boolean addAllowanceAmount(int userId, int allowanceId, AddAllowanceAmountRequest request) + { + long remainingAmount = Math.round(request.amount() * 100); + + // Insert history entry + History history = new History(); + history.setUserId(userId); + history.setTimestamp(Instant.now().getEpochSecond()); + history.setAmount(remainingAmount); + history.setDescription(request.description()); + historyRepository.save(history); + + if (allowanceId == 0) + { + if (remainingAmount < 0) + { + User user = userRepository.findById(userId).orElseThrow(); + if (remainingAmount > user.getBalance()) + { + throw new IllegalArgumentException("cannot remove more than the current balance: " + user.getBalance()); + } + } + User user = userRepository.findById(userId).orElseThrow(); + user.setBalance(user.getBalance() + remainingAmount); + userRepository.save(user); + } + else if (remainingAmount < 0) + { + Allowance allowance = allowanceRepository.findByIdAndUserId(allowanceId, userId).orElse(null); + if (allowance == null) + { + return false; + } + if (remainingAmount > allowance.getBalance()) + { + throw new IllegalArgumentException("cannot remove more than the current allowance balance: " + allowance.getBalance()); + } + allowance.setBalance(allowance.getBalance() + remainingAmount); + allowanceRepository.save(allowance); + } + else + { + Allowance allowance = allowanceRepository.findByIdAndUserId(allowanceId, userId).orElse(null); + if (allowance == null) + { + return false; + } + + long toAdd = remainingAmount; + if (allowance.getBalance() + toAdd > allowance.getTarget()) + { + toAdd = allowance.getTarget() - allowance.getBalance(); + } + remainingAmount -= toAdd; + + if (toAdd > 0) + { + allowance.setBalance(allowance.getBalance() + toAdd); + allowanceRepository.save(allowance); + } + + if (remainingAmount > 0) + { + addDistributedReward(userId, (int) remainingAmount); + } + } + return true; + } + + public void addDistributedReward(int userId, int reward) + { + User user = userRepository.findById(userId).orElseThrow(); + double userWeight = user.getWeight(); + + double sumOfWeights = allowanceRepository.sumPositiveWeights(userId) + userWeight; + + int remainingReward = reward; + + if (sumOfWeights > 0) + { + List allowances = allowanceRepository.findByUserIdWithPositiveWeightOrderByRemainingAsc(userId); + for (Allowance allowance : allowances) + { + int amount = (int) ((allowance.getWeight() / sumOfWeights) * remainingReward); + if (allowance.getBalance() + amount > allowance.getTarget()) + { + amount = (int) (allowance.getTarget() - allowance.getBalance()); + } + sumOfWeights -= allowance.getWeight(); + allowance.setBalance(allowance.getBalance() + amount); + allowanceRepository.save(allowance); + remainingReward -= amount; + } + } + + // Add remaining to user's balance + user = userRepository.findById(userId).orElseThrow(); + user.setBalance(user.getBalance() + remainingReward); + userRepository.save(user); + } + + public List getHistory(int userId) + { + return historyRepository.findByUserIdOrderByIdDesc(userId).stream() + .map(h -> new HistoryDto( + h.getAmount() / 100.0, + Instant.ofEpochSecond(h.getTimestamp()), + h.getDescription())) + .toList(); + } + + @Transactional + public void addHistory(int userId, PostHistoryRequest request) + { + long amount = Math.round(request.allowance() * 100.0); + History history = new History(); + history.setUserId(userId); + history.setTimestamp(Instant.now().getEpochSecond()); + history.setAmount(amount); + history.setDescription(request.description()); + historyRepository.save(history); + } + + private AllowanceDto toDto(Allowance a) + { + return new AllowanceDto( + a.getId(), + a.getName(), + a.getTarget() / 100.0, + a.getBalance() / 100.0, + a.getWeight(), + ColourUtil.convertColourToString(a.getColour())); + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/TaskService.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/TaskService.java new file mode 100644 index 0000000..47dd254 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/TaskService.java @@ -0,0 +1,132 @@ +package be.seeseepuff.allowanceplanner.service; + +import be.seeseepuff.allowanceplanner.dto.*; +import be.seeseepuff.allowanceplanner.entity.History; +import be.seeseepuff.allowanceplanner.entity.Task; +import be.seeseepuff.allowanceplanner.entity.User; +import be.seeseepuff.allowanceplanner.repository.HistoryRepository; +import be.seeseepuff.allowanceplanner.repository.TaskRepository; +import be.seeseepuff.allowanceplanner.repository.UserRepository; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.Instant; +import java.util.List; +import java.util.Optional; + +@Service +public class TaskService +{ + private final TaskRepository taskRepository; + private final UserRepository userRepository; + private final HistoryRepository historyRepository; + private final AllowanceService allowanceService; + + public TaskService(TaskRepository taskRepository, + UserRepository userRepository, + HistoryRepository historyRepository, + AllowanceService allowanceService) + { + this.taskRepository = taskRepository; + this.userRepository = userRepository; + this.historyRepository = historyRepository; + this.allowanceService = allowanceService; + } + + @Transactional + public int createTask(CreateTaskRequest request) + { + Task task = new Task(); + task.setName(request.name()); + task.setReward(Math.round((request.reward() != null ? request.reward() : 0.0) * 100.0)); + task.setAssigned(request.assigned()); + task = taskRepository.save(task); + return task.getId(); + } + + public List getTasks() + { + return taskRepository.findByCompletedIsNull().stream() + .map(this::toDto) + .toList(); + } + + public Optional getTask(int taskId) + { + return taskRepository.findByIdAndCompletedIsNull(taskId) + .map(this::toDto); + } + + @Transactional + public boolean updateTask(int taskId, CreateTaskRequest request) + { + Optional opt = taskRepository.findByIdAndCompletedIsNull(taskId); + if (opt.isEmpty()) + { + return false; + } + Task task = opt.get(); + task.setName(request.name()); + task.setReward(Math.round((request.reward() != null ? request.reward() : 0.0) * 100.0)); + task.setAssigned(request.assigned()); + taskRepository.save(task); + return true; + } + + public boolean hasTask(int taskId) + { + return taskRepository.existsById(taskId); + } + + @Transactional + public void deleteTask(int taskId) + { + taskRepository.deleteById(taskId); + } + + @Transactional + public boolean completeTask(int taskId) + { + Optional opt = taskRepository.findById(taskId); + if (opt.isEmpty()) + { + return false; + } + + Task task = opt.get(); + long reward = task.getReward(); + String rewardName = task.getName(); + + // Give reward to all users + List users = userRepository.findAll(); + for (User user : users) + { + // Add history entry + History history = new History(); + history.setUserId(user.getId()); + history.setTimestamp(Instant.now().getEpochSecond()); + history.setAmount(reward); + history.setDescription("Task completed: " + rewardName); + historyRepository.save(history); + + // Distribute reward + allowanceService.addDistributedReward(user.getId(), (int) reward); + } + + // Mark task as completed + task.setCompleted(Instant.now().getEpochSecond()); + taskRepository.save(task); + + return true; + } + + private TaskDto toDto(Task t) + { + return new TaskDto( + t.getId(), + t.getName(), + t.getReward() / 100.0, + t.getAssigned(), + t.getSchedule()); + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/TransferService.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/TransferService.java new file mode 100644 index 0000000..7b81ba0 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/TransferService.java @@ -0,0 +1,102 @@ +package be.seeseepuff.allowanceplanner.service; + +import be.seeseepuff.allowanceplanner.dto.TransferRequest; +import be.seeseepuff.allowanceplanner.entity.Allowance; +import be.seeseepuff.allowanceplanner.repository.AllowanceRepository; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Optional; + +@Service +public class TransferService +{ + private final AllowanceRepository allowanceRepository; + + public TransferService(AllowanceRepository allowanceRepository) + { + this.allowanceRepository = allowanceRepository; + } + + @Transactional + public TransferResult transfer(TransferRequest request) + { + if (request.from() == request.to()) + { + return TransferResult.success(); + } + + int amountCents = (int) Math.round(request.amount() * 100.0); + if (amountCents <= 0) + { + return TransferResult.badRequest("amount must be positive"); + } + + Optional fromOpt = allowanceRepository.findById(request.from()); + if (fromOpt.isEmpty()) + { + return TransferResult.notFound(); + } + + Optional toOpt = allowanceRepository.findById(request.to()); + if (toOpt.isEmpty()) + { + return TransferResult.notFound(); + } + + Allowance from = fromOpt.get(); + Allowance to = toOpt.get(); + + if (from.getUserId() != to.getUserId()) + { + return TransferResult.badRequest("Allowances do not belong to the same user"); + } + + long remainingTo = to.getTarget() - to.getBalance(); + if (remainingTo <= 0) + { + return TransferResult.badRequest("target already reached"); + } + + int transfer = amountCents; + if (transfer > remainingTo) + { + transfer = (int) remainingTo; + } + + if (from.getBalance() < transfer) + { + return TransferResult.badRequest("Insufficient funds in source allowance"); + } + + from.setBalance(from.getBalance() - transfer); + to.setBalance(to.getBalance() + transfer); + allowanceRepository.save(from); + allowanceRepository.save(to); + + return TransferResult.success(); + } + + public record TransferResult(Status status, String message) + { + public enum Status + { + SUCCESS, BAD_REQUEST, NOT_FOUND + } + + public static TransferResult success() + { + return new TransferResult(Status.SUCCESS, "Transfer successful"); + } + + public static TransferResult badRequest(String message) + { + return new TransferResult(Status.BAD_REQUEST, message); + } + + public static TransferResult notFound() + { + return new TransferResult(Status.NOT_FOUND, "Allowance not found"); + } + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/UserService.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/UserService.java new file mode 100644 index 0000000..ccc74cd --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/service/UserService.java @@ -0,0 +1,42 @@ +package be.seeseepuff.allowanceplanner.service; + +import be.seeseepuff.allowanceplanner.dto.*; +import be.seeseepuff.allowanceplanner.entity.User; +import be.seeseepuff.allowanceplanner.repository.UserRepository; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +@Service +public class UserService +{ + private final UserRepository userRepository; + + public UserService(UserRepository userRepository) + { + this.userRepository = userRepository; + } + + public List getUsers() + { + return userRepository.findAll().stream() + .map(u -> new UserDto(u.getId(), u.getName())) + .toList(); + } + + public Optional getUser(int userId) + { + return userRepository.findById(userId) + .map(u -> + { + long totalAmount = userRepository.sumHistoryAmount(userId); + return new UserWithAllowanceDto(u.getId(), u.getName(), totalAmount / 100.0); + }); + } + + public boolean userExists(int userId) + { + return userRepository.existsById(userId); + } +} diff --git a/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/util/ColourUtil.java b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/util/ColourUtil.java new file mode 100644 index 0000000..6fda514 --- /dev/null +++ b/backend-spring/src/main/java/be/seeseepuff/allowanceplanner/util/ColourUtil.java @@ -0,0 +1,42 @@ +package be.seeseepuff.allowanceplanner.util; + +public class ColourUtil +{ + private ColourUtil() + { + } + + public static int convertStringToColour(String colourStr) + { + if (colourStr == null || colourStr.isEmpty()) + { + return 0xFF0000; // Default colour + } + if (colourStr.charAt(0) == '#') + { + colourStr = colourStr.substring(1); + } + if (colourStr.length() != 6 && colourStr.length() != 3) + { + throw new IllegalArgumentException("colour must be a valid hex string"); + } + int colour = Integer.parseInt(colourStr, 16); + if (colourStr.length() == 3) + { + int r = (colour & 0xF00) >> 8; + int g = (colour & 0x0F0) >> 4; + int b = (colour & 0x00F); + colour = (r << 20) | (g << 12) | (b << 4); + } + return colour; + } + + public static String convertColourToString(Integer colour) + { + if (colour == null) + { + return ""; + } + return String.format("#%06X", colour); + } +} diff --git a/backend-spring/src/main/resources/application.properties b/backend-spring/src/main/resources/application.properties new file mode 100644 index 0000000..35e78e6 --- /dev/null +++ b/backend-spring/src/main/resources/application.properties @@ -0,0 +1,12 @@ +spring.application.name=allowance-planner + +spring.datasource.url=jdbc:postgresql://localhost:5432/allowance_planner +spring.datasource.username=postgres +spring.datasource.password=postgres + +spring.jpa.hibernate.ddl-auto=validate +spring.jpa.open-in-view=false + +spring.flyway.enabled=true + +server.port=8080 diff --git a/backend-spring/src/main/resources/db/migration/V1__initial.sql b/backend-spring/src/main/resources/db/migration/V1__initial.sql new file mode 100644 index 0000000..c956d03 --- /dev/null +++ b/backend-spring/src/main/resources/db/migration/V1__initial.sql @@ -0,0 +1,42 @@ +CREATE TABLE users +( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + weight DOUBLE PRECISION NOT NULL DEFAULT 10.0, + balance BIGINT NOT NULL DEFAULT 0 +); + +CREATE TABLE history +( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + timestamp BIGINT NOT NULL, + amount BIGINT NOT NULL, + description TEXT +); + +CREATE TABLE allowances +( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + name TEXT NOT NULL, + target BIGINT NOT NULL, + balance BIGINT NOT NULL DEFAULT 0, + weight DOUBLE PRECISION NOT NULL, + colour INTEGER +); + +CREATE TABLE tasks +( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + reward BIGINT NOT NULL, + assigned INTEGER, + schedule TEXT, + completed BIGINT, + next_run BIGINT +); + +INSERT INTO users (name) +VALUES ('Seeseemelk'), + ('Huffle'); diff --git a/backend-spring/src/main/resources/templates/index.html b/backend-spring/src/main/resources/templates/index.html new file mode 100644 index 0000000..a199188 --- /dev/null +++ b/backend-spring/src/main/resources/templates/index.html @@ -0,0 +1,122 @@ + + + + Allowance Planner 2000 + + + +

Allowance Planner 2000

+ +
+

Error

+

+
+ +
+

Users

+ + + + + +
+

Allowances

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameProgressTargetWeightActions
Total + + () + + Mark as completed +
+
+ +

Tasks

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAssignedRewardScheduleActions
+ None + + + Mark as completed +
+
+ +

History

+ + + + + + + + + + + + + +
TimestampAllowance
+
+
+ + diff --git a/backend-spring/src/test/java/be/seeseepuff/allowanceplanner/ApiTest.java b/backend-spring/src/test/java/be/seeseepuff/allowanceplanner/ApiTest.java new file mode 100644 index 0000000..1433976 --- /dev/null +++ b/backend-spring/src/test/java/be/seeseepuff/allowanceplanner/ApiTest.java @@ -0,0 +1,1242 @@ +package be.seeseepuff.allowanceplanner; + +import io.restassured.RestAssured; +import io.restassured.http.ContentType; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +import org.flywaydb.core.Flyway; +import org.springframework.beans.factory.annotation.Autowired; + +import java.time.Instant; +import java.util.List; +import java.util.Map; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.*; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@Testcontainers +class ApiTest +{ + private static final String TEST_HISTORY_NAME = "Test History"; + + @Container + static PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:17") + .withDatabaseName("allowance_planner_test") + .withUsername("test") + .withPassword("test"); + + @LocalServerPort + int port; + + @Autowired + Flyway flyway; + + @DynamicPropertySource + static void configureProperties(DynamicPropertyRegistry registry) + { + registry.add("spring.datasource.url", postgres::getJdbcUrl); + registry.add("spring.datasource.username", postgres::getUsername); + registry.add("spring.datasource.password", postgres::getPassword); + registry.add("spring.flyway.clean-disabled", () -> "false"); + } + + @BeforeEach + void setUp() + { + RestAssured.port = port; + RestAssured.basePath = "/api"; + RestAssured.config = RestAssured.config() + .jsonConfig(io.restassured.config.JsonConfig.jsonConfig() + .numberReturnType(io.restassured.path.json.config.JsonPathConfig.NumberReturnType.DOUBLE)); + + // Clean and re-migrate the database before each test + flyway.clean(); + flyway.migrate(); + } + + // ---- User Tests ---- + + @Test + void getUsers() + { + given() + .when() + .get("/users") + .then() + .statusCode(200) + .body("$.size()", is(2)) + .body("[0].name", isA(String.class)) + .body("[1].name", isA(String.class)); + } + + @Test + void getUser() + { + given() + .when() + .get("/user/1") + .then() + .statusCode(200) + .body("name", is("Seeseemelk")) + .body("id", is(1)) + .body("allowance", is(0.0d)); + } + + @Test + void getUserUnknown() + { + given() + .when() + .get("/user/999") + .then() + .statusCode(404); + } + + @Test + void getUserBadId() + { + given() + .when() + .get("/user/bad-id") + .then() + .statusCode(400); + } + + // ---- Allowance Tests ---- + + @Test + void getUserAllowanceWhenNoAllowancePresent() + { + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("$.size()", is(1)) + .body("[0].id", is(0)); + } + + @Test + void getUserAllowance() + { + createAllowance(1, TEST_HISTORY_NAME, 5000, 10); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("$.size()", is(2)) + .body("[1].name", is(TEST_HISTORY_NAME)) + .body("[1].target", is(5000.0d)) + .body("[1].weight", is(10.0d)) + .body("[1].progress", is(0.0d)) + .body("[1]", not(hasKey("user_id"))); + } + + @Test + void getUserAllowanceNoUser() + { + given() + .when() + .get("/user/999/allowance") + .then() + .statusCode(404); + } + + @Test + void getUserAllowanceBadId() + { + given() + .when() + .get("/user/bad-id/allowance") + .then() + .statusCode(400); + } + + @Test + void createUserAllowance() + { + int allowanceId = createAllowance(1, TEST_HISTORY_NAME, 5000, 10); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("$.size()", is(2)) + .body("[1].id", is(allowanceId)) + .body("[1].name", is(TEST_HISTORY_NAME)) + .body("[1].target", is(5000.0d)) + .body("[1].weight", is(10.0d)) + .body("[1].progress", is(0.0d)); + } + + @Test + void createUserAllowanceNoUser() + { + given() + .contentType(ContentType.JSON) + .body(Map.of("name", TEST_HISTORY_NAME, "target", 5000, "weight", 10)) + .when() + .post("/user/999/allowance") + .then() + .statusCode(404); + } + + @Test + void createUserAllowanceInvalidInput() + { + // Empty name + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "", "target", 5000, "weight", 10)) + .when() + .post("/user/1/allowance") + .then() + .statusCode(400); + + // Missing name + given() + .contentType(ContentType.JSON) + .body(Map.of("target", 5000)) + .when() + .post("/user/1/allowance") + .then() + .statusCode(400); + } + + @Test + void createUserAllowanceBadId() + { + given() + .contentType(ContentType.JSON) + .body(Map.of("name", TEST_HISTORY_NAME, "target", 5000, "weight", 10)) + .when() + .post("/user/bad-id/allowance") + .then() + .statusCode(400); + } + + @Test + void deleteUserAllowance() + { + int allowanceId = createAllowance(1, TEST_HISTORY_NAME, 1000, 5); + + given() + .when() + .delete("/user/1/allowance/" + allowanceId) + .then() + .statusCode(200) + .body("message", is("History deleted successfully")); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("$.size()", is(1)); + } + + @Test + void deleteUserRestAllowance() + { + given() + .when() + .delete("/user/1/allowance/0") + .then() + .statusCode(400); + } + + @Test + void deleteUserAllowanceNotFound() + { + given() + .when() + .delete("/user/1/allowance/999") + .then() + .statusCode(404) + .body("error", is("History not found")); + } + + @Test + void deleteUserAllowanceInvalidId() + { + given() + .when() + .delete("/user/1/allowance/invalid-id") + .then() + .statusCode(400) + .body("error", is("Invalid allowance ID")); + } + + // ---- Task Tests ---- + + @Test + void createTask() + { + // Without assigned user + int taskId = given() + .contentType(ContentType.JSON) + .body(Map.of("name", "Test Task", "reward", 100)) + .when() + .post("/tasks") + .then() + .statusCode(201) + .body("id", notNullValue()) + .extract().path("id"); + + given().when().get("/tasks").then().statusCode(200).body("$.size()", is(1)); + + given() + .when() + .get("/task/" + taskId) + .then() + .statusCode(200) + .body("id", is(taskId)) + .body("name", is("Test Task")) + .body("reward", is(100.0d)) + .body("assigned", nullValue()); + + // With assigned user + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "Test Task Assigned", "reward", 200, "assigned", 1)) + .when() + .post("/tasks") + .then() + .statusCode(201) + .body("id", notNullValue()); + } + + @Test + void deleteTask() + { + int taskId = createTestTask(100); + + given().when().delete("/task/" + taskId).then().statusCode(200); + given().when().get("/task/" + taskId).then().statusCode(404); + } + + @Test + void deleteTaskNotFound() + { + given().when().delete("/task/1").then().statusCode(404); + } + + @Test + void createTaskNoName() + { + given() + .contentType(ContentType.JSON) + .body(Map.of("reward", 100)) + .when() + .post("/tasks") + .then() + .statusCode(400); + } + + @Test + void createTaskInvalidAssignedUser() + { + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "Test Task Invalid User", "reward", 100, "assigned", 999)) + .when() + .post("/tasks") + .then() + .statusCode(404) + .body("error", is("User not found")); + } + + @Test + void createTaskInvalidRequestBody() + { + given() + .contentType(ContentType.JSON) + .body(Map.of("reward", 5000)) + .when() + .post("/tasks") + .then() + .statusCode(400); + } + + @Test + void getTaskWhenNoTasks() + { + given() + .when() + .get("/tasks") + .then() + .statusCode(200) + .body("$.size()", is(0)); + } + + @Test + void getTasksWhenTasks() + { + createTestTask(100); + + given() + .when() + .get("/tasks") + .then() + .statusCode(200) + .body("$.size()", is(1)) + .body("[0].name", is("Test Task")) + .body("[0].reward", is(100.0d)) + .body("[0].assigned", nullValue()); + } + + @Test + void getTask() + { + int taskId = createTestTask(100); + + given() + .when() + .get("/task/" + taskId) + .then() + .statusCode(200) + .body("id", is(taskId)) + .body("name", is("Test Task")) + .body("reward", is(100.0d)) + .body("assigned", nullValue()); + } + + @Test + void getTaskInvalidId() + { + createTestTask(100); + // Task ID won't be found since we use auto-increment and there's only one + given().when().get("/task/99999").then().statusCode(404); + } + + @Test + void getTaskBadId() + { + createTestTask(100); + given().when().get("/task/invalid").then().statusCode(400); + } + + @Test + void putTaskModifiesTask() + { + int taskId = createTestTask(100); + + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "Updated Task", "reward", 100)) + .when() + .put("/task/" + taskId) + .then() + .statusCode(200); + + given() + .when() + .get("/task/" + taskId) + .then() + .statusCode(200) + .body("id", is(taskId)) + .body("name", is("Updated Task")) + .body("reward", is(100.0d)); + } + + @Test + void putTaskInvalidTaskId() + { + createTestTask(100); + + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "Updated Task")) + .when() + .put("/task/999") + .then() + .statusCode(404); + } + + // ---- History Tests ---- + + @Test + void postHistory() + { + given() + .contentType(ContentType.JSON) + .body(Map.of("allowance", 100, "description", "Add a 100")) + .when() + .post("/user/1/history") + .then() + .statusCode(200); + + given() + .contentType(ContentType.JSON) + .body(Map.of("allowance", 20, "description", "Lolol")) + .when() + .post("/user/1/history") + .then() + .statusCode(200); + + given() + .contentType(ContentType.JSON) + .body(Map.of("allowance", -10, "description", "Subtracting")) + .when() + .post("/user/1/history") + .then() + .statusCode(200); + + given() + .when() + .get("/user/1") + .then() + .statusCode(200) + .body("allowance", is(110.0d)); + } + + @Test + void postHistoryInvalidUserId() + { + given() + .contentType(ContentType.JSON) + .body(Map.of("allowance", 100, "description", "Good")) + .when() + .post("/user/999/history") + .then() + .statusCode(404); + } + + @Test + void postHistoryInvalidDescription() + { + given() + .contentType(ContentType.JSON) + .body(Map.of("allowance", 100)) + .when() + .post("/user/1/history") + .then() + .statusCode(400); + } + + @Test + void getHistory() + { + Instant before = Instant.now().minusSeconds(2); + Instant after = Instant.now().plusSeconds(2); + + given() + .contentType(ContentType.JSON) + .body(Map.of("allowance", 100, "description", "Add 100")) + .when() + .post("/user/1/history") + .then() + .statusCode(200); + given() + .contentType(ContentType.JSON) + .body(Map.of("allowance", 20, "description", "Add 20")) + .when() + .post("/user/1/history") + .then() + .statusCode(200); + given() + .contentType(ContentType.JSON) + .body(Map.of("allowance", -10, "description", "Subtract 10")) + .when() + .post("/user/1/history") + .then() + .statusCode(200); + + // History is returned newest first (by ID desc) + given() + .when() + .get("/user/1/history") + .then() + .statusCode(200) + .body("$.size()", is(3)) + .body("[0].allowance", is(-10.0d)) + .body("[0].description", is("Subtract 10")) + .body("[1].allowance", is(20.0d)) + .body("[1].description", is("Add 20")) + .body("[2].allowance", is(100.0d)) + .body("[2].description", is("Add 100")); + } + + // ---- Allowance By ID Tests ---- + + @Test + void getUserAllowanceById() + { + int allowanceId = createAllowanceWithColour(1, TEST_HISTORY_NAME, 5000, 10, "#FF5733"); + + given() + .when() + .get("/user/1/allowance/" + allowanceId) + .then() + .statusCode(200) + .body("id", is(allowanceId)) + .body("name", is(TEST_HISTORY_NAME)) + .body("target", is(5000.0d)) + .body("weight", is(10.0d)) + .body("progress", is(0.0d)) + .body("colour", is("#FF5733")); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("$.size()", is(2)) + .body("[1].id", is(allowanceId)) + .body("[1].colour", is("#FF5733")); + } + + @Test + void getUserByAllowanceIdInvalidAllowance() + { + given().when().get("/user/1/allowance/9999").then().statusCode(404); + } + + @Test + void getUserByAllowanceByIdInvalidUserId() + { + given().when().get("/user/999/allowance/1").then().statusCode(404); + } + + @Test + void getUserByAllowanceByIdBadUserId() + { + given().when().get("/user/bad/allowance/1").then().statusCode(400); + } + + @Test + void getUserByAllowanceByIdBadAllowanceId() + { + given().when().get("/user/1/allowance/bad").then().statusCode(400); + } + + @Test + void putAllowanceById() + { + int allowanceId = createAllowanceWithColour(1, TEST_HISTORY_NAME, 5000, 10, "#FF5733"); + + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "Updated Allowance", "target", 6000, "weight", 15, "colour", "#3357FF")) + .when() + .put("/user/1/allowance/" + allowanceId) + .then() + .statusCode(200); + + given() + .when() + .get("/user/1/allowance/" + allowanceId) + .then() + .statusCode(200) + .body("id", is(allowanceId)) + .body("name", is("Updated Allowance")) + .body("target", is(6000.0d)) + .body("weight", is(15.0d)) + .body("colour", is("#3357FF")); + } + + // ---- Complete Task Tests ---- + + @Test + void completeTask() + { + int taskId = createTestTask(101); + + given().when().get("/tasks").then().statusCode(200).body("$.size()", is(1)); + + // Update rest allowance weight + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "", "target", 0, "weight", 25, "colour", "")) + .when() + .put("/user/1/allowance/0") + .then() + .statusCode(200); + + // Create two allowance goals + createAllowance(1, "Test Allowance 1", 100, 50); + createAllowance(1, "Test Allowance 1", 10, 25); + + // Complete the task + given().when().post("/task/" + taskId + "/complete").then().statusCode(200); + + // Verify task is completed + given().when().get("/task/" + taskId).then().statusCode(404); + + // Verify allowances for user 1 + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("$.size()", is(3)) + .body("[0].id", is(0)) + .body("[0].progress", closeTo(30.34, 0.01)) + .body("[1].progress", closeTo(60.66, 0.01)) + .body("[2].progress", closeTo(10.0, 0.01)); + + // Verify allowances for user 2 + given() + .when() + .get("/user/2/allowance") + .then() + .statusCode(200) + .body("$.size()", is(1)) + .body("[0].id", is(0)) + .body("[0].progress", closeTo(101.0, 0.01)); + + // Verify history for both users + for (int userId = 1; userId <= 2; userId++) + { + given() + .when() + .get("/user/" + userId + "/history") + .then() + .statusCode(200) + .body("$.size()", is(1)) + .body("[0].allowance", closeTo(101.0, 0.01)); + } + } + + @Test + void completeTaskWithNoWeights() + { + int taskId = createTestTask(101); + + given().when().get("/tasks").then().statusCode(200).body("$.size()", is(1)); + + // Ensure main allowance has no weight + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "", "target", 0, "weight", 0, "colour", "")) + .when() + .put("/user/1/allowance/0") + .then() + .statusCode(200); + + // Complete the task + given().when().post("/task/" + taskId + "/complete").then().statusCode(200); + + // Verify task is completed + given().when().get("/task/" + taskId).then().statusCode(404); + + // Verify allowances for user 1 + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("$.size()", is(1)) + .body("[0].id", is(0)) + .body("[0].progress", closeTo(101.0, 0.01)); + + // Verify allowances for user 2 + given() + .when() + .get("/user/2/allowance") + .then() + .statusCode(200) + .body("$.size()", is(1)) + .body("[0].id", is(0)) + .body("[0].progress", closeTo(101.0, 0.01)); + } + + @Test + void completeTaskAllowanceWeightsSumTo0() + { + int taskId = createTestTask(101); + + given().when().get("/tasks").then().statusCode(200).body("$.size()", is(1)); + + // Update rest allowance to 0 weight + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "", "target", 0, "weight", 0, "colour", "")) + .when() + .put("/user/1/allowance/0") + .then() + .statusCode(200); + + // Create allowance with 0 weight + createAllowance(1, "Test Allowance 1", 1000, 0); + + // Complete the task + given().when().post("/task/" + taskId + "/complete").then().statusCode(200); + + // Verify allowances for user 1 + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("$.size()", is(2)) + .body("[0].id", is(0)) + .body("[0].progress", closeTo(101.0, 0.01)) + .body("[1].progress", closeTo(0.0, 0.01)); + } + + @Test + void completeTaskInvalidId() + { + given().when().post("/task/999/complete").then().statusCode(404); + } + + // ---- Complete Allowance Tests ---- + + @Test + void completeAllowance() + { + createTestTask(100); + createAllowance(1, "Test Allowance 1", 100, 50); + + // Update base allowance to 0 weight + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "", "target", 0, "weight", 0, "colour", "")) + .when() + .put("/user/1/allowance/0") + .then() + .statusCode(200); + + // Complete the task + given().when().post("/task/1/complete").then().statusCode(200); + + // Get the allowance ID (first named allowance) + int allowanceId = given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .extract() + .path("[1].id"); + + // Complete allowance + given().when().post("/user/1/allowance/" + allowanceId + "/complete").then().statusCode(200); + + // Verify allowance no longer exists + given().when().get("/user/1/allowance/" + allowanceId).then().statusCode(404); + + // Verify history (newest first) + given() + .when() + .get("/user/1/history") + .then() + .statusCode(200) + .body("$.size()", is(2)) + .body("[0].allowance", closeTo(-100.0, 0.01)) + .body("[0].description", is("Allowance completed: Test Allowance 1")) + .body("[1].allowance", closeTo(100.0, 0.01)) + .body("[1].description", is("Task completed: Test Task")); + } + + @Test + void completeAllowanceInvalidUserId() + { + given().when().post("/user/999/allowance/1/complete").then().statusCode(404); + } + + @Test + void completeAllowanceInvalidAllowanceId() + { + given().when().post("/user/1/allowance/999/complete").then().statusCode(404); + } + + // ---- Bulk Update Tests ---- + + @Test + void putBulkAllowance() + { + int id1 = createAllowance(1, "Test Allowance 1", 1000, 1); + int id2 = createAllowance(1, "Test Allowance 2", 1000, 2); + + given() + .contentType(ContentType.JSON) + .body(List.of( + Map.of("id", id1, "weight", 5), + Map.of("id", 0, "weight", 99), + Map.of("id", id2, "weight", 10))) + .when() + .put("/user/1/allowance") + .then() + .statusCode(200); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("$.size()", is(3)) + .body("[0].id", is(0)) + .body("[0].weight", closeTo(99.0, 0.01)) + .body("[1].id", is(id1)) + .body("[1].weight", closeTo(5.0, 0.01)) + .body("[2].id", is(id2)) + .body("[2].weight", closeTo(10.0, 0.01)); + } + + // ---- Add Allowance Amount Tests ---- + + @Test + void addAllowanceSimple() + { + int allowanceId = createAllowance(1, "Test Allowance 1", 1000, 1); + + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", 10, "description", "Added to allowance 1")) + .when() + .post("/user/1/allowance/" + allowanceId + "/add") + .then() + .statusCode(200); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("[1].id", is(allowanceId)) + .body("[1].progress", closeTo(10.0, 0.01)); + + given() + .when() + .get("/user/1/history") + .then() + .statusCode(200) + .body("$.size()", is(1)) + .body("[0].allowance", closeTo(10.0, 0.01)) + .body("[0].description", is("Added to allowance 1")); + } + + @Test + void addAllowanceWithSpillage() + { + int id1 = createAllowance(1, "Test Allowance 1", 5, 1); + int id2 = createAllowance(1, "Test Allowance 2", 5, 1); + given() + .contentType(ContentType.JSON) + .body(Map.of("name", "", "target", 0, "weight", 1, "colour", "")) + .when() + .put("/user/1/allowance/0") + .then() + .statusCode(200); + + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", 10, "description", "Added to allowance 1")) + .when() + .post("/user/1/allowance/" + id1 + "/add") + .then() + .statusCode(200); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("[1].id", is(id1)) + .body("[1].progress", closeTo(5.0, 0.01)) + .body("[2].id", is(id2)) + .body("[2].progress", closeTo(2.5, 0.01)) + .body("[0].id", is(0)) + .body("[0].progress", closeTo(2.5, 0.01)); + + given() + .when() + .get("/user/1/history") + .then() + .statusCode(200) + .body("$.size()", is(1)) + .body("[0].allowance", closeTo(10.0, 0.01)) + .body("[0].description", is("Added to allowance 1")); + } + + @Test + void addAllowanceIdZero() + { + createAllowance(1, "Test Allowance 1", 1000, 1); + + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", 10, "description", "Added to allowance 1")) + .when() + .post("/user/1/allowance/0/add") + .then() + .statusCode(200); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("[0].id", is(0)) + .body("[0].progress", closeTo(10.0, 0.01)); + + given() + .when() + .get("/user/1/history") + .then() + .statusCode(200) + .body("$.size()", is(1)) + .body("[0].allowance", closeTo(10.0, 0.01)) + .body("[0].description", is("Added to allowance 1")); + } + + @Test + void subtractAllowanceSimple() + { + int allowanceId = createAllowance(1, "Test Allowance 1", 1000, 1); + + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", 10, "description", "Added to allowance 1")) + .when() + .post("/user/1/allowance/" + allowanceId + "/add") + .then() + .statusCode(200); + + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", -2.5, "description", "Added to allowance 1")) + .when() + .post("/user/1/allowance/" + allowanceId + "/add") + .then() + .statusCode(200); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("[1].id", is(allowanceId)) + .body("[1].progress", closeTo(7.5, 0.01)); + + given() + .when() + .get("/user/1/history") + .then() + .statusCode(200) + .body("$.size()", is(2)) + .body("[0].allowance", closeTo(-2.5, 0.01)) + .body("[0].description", is("Added to allowance 1")) + .body("[1].allowance", closeTo(10.0, 0.01)) + .body("[1].description", is("Added to allowance 1")); + } + + @Test + void subtractAllowanceIdZero() + { + createAllowance(1, "Test Allowance 1", 1000, 1); + + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", 10, "description", "Added to allowance 1")) + .when() + .post("/user/1/allowance/0/add") + .then() + .statusCode(200); + + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", -2.5, "description", "Added to allowance 1")) + .when() + .post("/user/1/allowance/0/add") + .then() + .statusCode(200); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("[0].id", is(0)) + .body("[0].progress", closeTo(7.5, 0.01)); + + given() + .when() + .get("/user/1/history") + .then() + .statusCode(200) + .body("$.size()", is(2)) + .body("[0].allowance", closeTo(-2.5, 0.01)) + .body("[0].description", is("Added to allowance 1")) + .body("[1].allowance", closeTo(10.0, 0.01)) + .body("[1].description", is("Added to allowance 1")); + } + + // ---- Transfer Tests ---- + + @Test + void transferSuccessful() + { + int id1 = createAllowance(1, "From Allowance", 100, 1); + int id2 = createAllowance(1, "To Allowance", 100, 1); + + // Add 30 to allowance 1 + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", 30, "description", "funds")) + .when() + .post("/user/1/allowance/" + id1 + "/add") + .then() + .statusCode(200); + + // Transfer 10 from 1 to 2 + given() + .contentType(ContentType.JSON) + .body(Map.of("from", id1, "to", id2, "amount", 10)) + .when() + .post("/transfer") + .then() + .statusCode(200) + .body("message", is("Transfer successful")); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("[1].progress", closeTo(20.0, 0.01)) + .body("[2].progress", closeTo(10.0, 0.01)); + } + + @Test + void transferCapsAtTarget() + { + int id1 = createAllowance(1, "From Allowance", 100, 1); + int id2 = createAllowance(1, "To Allowance", 5, 1); + + // Add 10 to allowance 1 + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", 10, "description", "funds")) + .when() + .post("/user/1/allowance/" + id1 + "/add") + .then() + .statusCode(200); + + // Transfer 10, but to only needs 5 + given() + .contentType(ContentType.JSON) + .body(Map.of("from", id1, "to", id2, "amount", 10)) + .when() + .post("/transfer") + .then() + .statusCode(200); + + given() + .when() + .get("/user/1/allowance") + .then() + .statusCode(200) + .body("[1].progress", closeTo(5.0, 0.01)) + .body("[2].progress", closeTo(5.0, 0.01)); + } + + @Test + void transferDifferentUsersFails() + { + int id1 = createAllowance(1, "User1 Allowance", 100, 1); + + // Create allowance for user 2 + int id2 = createAllowance(2, "User2 Allowance", 100, 1); + + // Add to user1 allowance + given() + .contentType(ContentType.JSON) + .body(Map.of("amount", 10, "description", "funds")) + .when() + .post("/user/1/allowance/" + id1 + "/add") + .then() + .statusCode(200); + + // Transfer between different users + given() + .contentType(ContentType.JSON) + .body(Map.of("from", id1, "to", id2, "amount", 5)) + .when() + .post("/transfer") + .then() + .statusCode(400); + } + + @Test + void transferInsufficientFunds() + { + int id1 = createAllowance(1, "From Allowance", 100, 1); + int id2 = createAllowance(1, "To Allowance", 100, 1); + + given() + .contentType(ContentType.JSON) + .body(Map.of("from", id1, "to", id2, "amount", 10)) + .when() + .post("/transfer") + .then() + .statusCode(400) + .body("error", containsStringIgnoringCase("insufficient")); + } + + @Test + void transferNotFound() + { + given() + .contentType(ContentType.JSON) + .body(Map.of("from", 999, "to", 1000, "amount", 1)) + .when() + .post("/transfer") + .then() + .statusCode(404); + } + + // ---- Helpers ---- + + private int createTestTask(int reward) + { + return given() + .contentType(ContentType.JSON) + .body(Map.of("name", "Test Task", "reward", reward)) + .when() + .post("/tasks") + .then() + .statusCode(201) + .extract() + .path("id"); + } + + private int createAllowance(int userId, String name, double target, double weight) + { + return given() + .contentType(ContentType.JSON) + .body(Map.of("name", name, "target", target, "weight", weight)) + .when() + .post("/user/" + userId + "/allowance") + .then() + .statusCode(201) + .extract() + .path("id"); + } + + private int createAllowanceWithColour(int userId, String name, double target, double weight, String colour) + { + return given() + .contentType(ContentType.JSON) + .body(Map.of("name", name, "target", target, "weight", weight, "colour", colour)) + .when() + .post("/user/" + userId + "/allowance") + .then() + .statusCode(201) + .extract() + .path("id"); + } +} diff --git a/backend-spring/src/test/java/be/seeseepuff/allowanceplanner/ColourUtilTest.java b/backend-spring/src/test/java/be/seeseepuff/allowanceplanner/ColourUtilTest.java new file mode 100644 index 0000000..2e7766a --- /dev/null +++ b/backend-spring/src/test/java/be/seeseepuff/allowanceplanner/ColourUtilTest.java @@ -0,0 +1,33 @@ +package be.seeseepuff.allowanceplanner; + +import be.seeseepuff.allowanceplanner.util.ColourUtil; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class ColourUtilTest +{ + @Test + void convertStringToColourWithSign() + { + assertEquals(0x123456, ColourUtil.convertStringToColour("#123456")); + } + + @Test + void convertStringToColourWithoutSign() + { + assertEquals(0x123456, ColourUtil.convertStringToColour("123456")); + } + + @Test + void convertStringToColourWithSignThreeDigits() + { + assertEquals(0xA0B0C0, ColourUtil.convertStringToColour("#ABC")); + } + + @Test + void convertStringToColourWithoutSignThreeDigits() + { + assertEquals(0xA0B0C0, ColourUtil.convertStringToColour("ABC")); + } +}