2.33 s

All in equipment-rental-system: 64 total, 64 passed

  • Collapse |
  • Expand
    /root/.sdkman/candidates/java/25.0.1-open/bin/java -javaagent:/tmp/debugger-agentDnqinG/debugger-agent.jar=file:/tmp/captureOto365.props -ea -Didea.test.cyclic.buffer.size=1048576 -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false -Ddebugger.agent.enable.coroutines=true -Dkotlinx.coroutines.debug.enable.flows.stack.trace=true -Dkotlinx.coroutines.debug.enable.mutable.state.flows.stack.trace=true -Ddebugger.async.stack.trace.for.all.threads=true -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath /root/.m2/repository/org/junit/platform/junit-platform-launcher/6.0.3/junit-platform-launcher-6.0.3.jar:/tmp/y3nvqX/idea_rt.jar:/tmp/8nIixi/junit6-rt.jar:/tmp/8nIixi/junit5-rt.jar:/tmp/8nIixi/junit-rt.jar:/root/IdeaProjects/equipment-rental-system/target/test-classes:/root/IdeaProjects/equipment-rental-system/target/classes:/root/.m2/repository/org/springframework/boot/spring-boot-h2console/4.0.5/spring-boot-h2console-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot/4.0.5/spring-boot-4.0.5.jar:/root/.m2/repository/org/springframework/spring-core/7.0.6/spring-core-7.0.6.jar:/root/.m2/repository/commons-logging/commons-logging/1.3.6/commons-logging-1.3.6.jar:/root/.m2/repository/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar:/root/.m2/repository/org/springframework/spring-context/7.0.6/spring-context-7.0.6.jar:/root/.m2/repository/org/springframework/spring-aop/7.0.6/spring-aop-7.0.6.jar:/root/.m2/repository/org/springframework/spring-beans/7.0.6/spring-beans-7.0.6.jar:/root/.m2/repository/org/springframework/spring-expression/7.0.6/spring-expression-7.0.6.jar:/root/.m2/repository/io/micrometer/micrometer-observation/1.16.4/micrometer-observation-1.16.4.jar:/root/.m2/repository/io/micrometer/micrometer-commons/1.16.4/micrometer-commons-1.16.4.jar:/root/.m2/repository/jakarta/servlet/jakarta.servlet-api/6.1.0/jakarta.servlet-api-6.1.0.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/4.0.5/spring-boot-starter-data-jpa-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter/4.0.5/spring-boot-starter-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-logging/4.0.5/spring-boot-starter-logging-4.0.5.jar:/root/.m2/repository/ch/qos/logback/logback-classic/1.5.32/logback-classic-1.5.32.jar:/root/.m2/repository/ch/qos/logback/logback-core/1.5.32/logback-core-1.5.32.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.25.3/log4j-to-slf4j-2.25.3.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-api/2.25.3/log4j-api-2.25.3.jar:/root/.m2/repository/org/slf4j/jul-to-slf4j/2.0.17/jul-to-slf4j-2.0.17.jar:/root/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/4.0.5/spring-boot-autoconfigure-4.0.5.jar:/root/.m2/repository/jakarta/annotation/jakarta.annotation-api/3.0.0/jakarta.annotation-api-3.0.0.jar:/root/.m2/repository/org/yaml/snakeyaml/2.5/snakeyaml-2.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/4.0.5/spring-boot-starter-jdbc-4.0.5.jar:/root/.m2/repository/com/zaxxer/HikariCP/7.0.2/HikariCP-7.0.2.jar:/root/.m2/repository/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar:/root/.m2/repository/org/springframework/boot/spring-boot-data-jpa/4.0.5/spring-boot-data-jpa-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-data-commons/4.0.5/spring-boot-data-commons-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-persistence/4.0.5/spring-boot-persistence-4.0.5.jar:/root/.m2/repository/org/springframework/data/spring-data-commons/4.0.4/spring-data-commons-4.0.4.jar:/root/.m2/repository/org/springframework/boot/spring-boot-hibernate/4.0.5/spring-boot-hibernate-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-jpa/4.0.5/spring-boot-jpa-4.0.5.jar:/root/.m2/repository/jakarta/persistence/jakarta.persistence-api/3.2.0/jakarta.persistence-api-3.2.0.jar:/root/.m2/repository/org/hibernate/orm/hibernate-core/7.2.7.Final/hibernate-core-7.2.7.Final.jar:/root/.m2/repository/jakarta/transaction/jakarta.transaction-api/2.0.1/jakarta.transaction-api-2.0.1.jar:/root/.m2/repository/org/hibernate/models/hibernate-models/1.0.1/hibernate-models-1.0.1.jar:/root/.m2/repository/org/glassfish/jaxb/jaxb-runtime/4.0.6/jaxb-runtime-4.0.6.jar:/root/.m2/repository/org/glassfish/jaxb/jaxb-core/4.0.6/jaxb-core-4.0.6.jar:/root/.m2/repository/org/eclipse/angus/angus-activation/2.0.3/angus-activation-2.0.3.jar:/root/.m2/repository/org/glassfish/jaxb/txw2/4.0.6/txw2-4.0.6.jar:/root/.m2/repository/com/sun/istack/istack-commons-runtime/4.1.2/istack-commons-runtime-4.1.2.jar:/root/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/root/.m2/repository/org/springframework/spring-orm/7.0.6/spring-orm-7.0.6.jar:/root/.m2/repository/org/springframework/data/spring-data-jpa/4.0.4/spring-data-jpa-4.0.4.jar:/root/.m2/repository/org/springframework/spring-tx/7.0.6/spring-tx-7.0.6.jar:/root/.m2/repository/org/antlr/antlr4-runtime/4.13.2/antlr4-runtime-4.13.2.jar:/root/.m2/repository/org/springframework/spring-aspects/7.0.6/spring-aspects-7.0.6.jar:/root/.m2/repository/org/aspectj/aspectjweaver/1.9.25.1/aspectjweaver-1.9.25.1.jar:/root/.m2/repository/org/springframework/boot/spring-boot-jdbc/4.0.5/spring-boot-jdbc-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-sql/4.0.5/spring-boot-sql-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-transaction/4.0.5/spring-boot-transaction-4.0.5.jar:/root/.m2/repository/org/springframework/spring-jdbc/7.0.6/spring-jdbc-7.0.6.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-thymeleaf/4.0.5/spring-boot-starter-thymeleaf-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-thymeleaf/4.0.5/spring-boot-thymeleaf-4.0.5.jar:/root/.m2/repository/org/thymeleaf/thymeleaf-spring6/3.1.3.RELEASE/thymeleaf-spring6-3.1.3.RELEASE.jar:/root/.m2/repository/org/thymeleaf/thymeleaf/3.1.3.RELEASE/thymeleaf-3.1.3.RELEASE.jar:/root/.m2/repository/org/attoparser/attoparser/2.0.7.RELEASE/attoparser-2.0.7.RELEASE.jar:/root/.m2/repository/org/unbescape/unbescape/1.1.6.RELEASE/unbescape-1.1.6.RELEASE.jar:/root/.m2/repository/org/springframework/spring-web/7.0.6/spring-web-7.0.6.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-validation/4.0.5/spring-boot-starter-validation-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-validation/4.0.5/spring-boot-validation-4.0.5.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/11.0.20/tomcat-embed-el-11.0.20.jar:/root/.m2/repository/org/hibernate/validator/hibernate-validator/9.0.1.Final/hibernate-validator-9.0.1.Final.jar:/root/.m2/repository/jakarta/validation/jakarta.validation-api/3.1.1/jakarta.validation-api-3.1.1.jar:/root/.m2/repository/org/jboss/logging/jboss-logging/3.6.3.Final/jboss-logging-3.6.3.Final.jar:/root/.m2/repository/com/fasterxml/classmate/1.7.3/classmate-1.7.3.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-webmvc/4.0.5/spring-boot-starter-webmvc-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-jackson/4.0.5/spring-boot-starter-jackson-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-jackson/4.0.5/spring-boot-jackson-4.0.5.jar:/root/.m2/repository/tools/jackson/core/jackson-databind/3.1.0/jackson-databind-3.1.0.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.21/jackson-annotations-2.21.jar:/root/.m2/repository/tools/jackson/core/jackson-core/3.1.0/jackson-core-3.1.0.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/4.0.5/spring-boot-starter-tomcat-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat-runtime/4.0.5/spring-boot-starter-tomcat-runtime-4.0.5.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/11.0.20/tomcat-embed-core-11.0.20.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/11.0.20/tomcat-embed-websocket-11.0.20.jar:/root/.m2/repository/org/springframework/boot/spring-boot-tomcat/4.0.5/spring-boot-tomcat-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-http-converter/4.0.5/spring-boot-http-converter-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-webmvc/4.0.5/spring-boot-webmvc-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-servlet/4.0.5/spring-boot-servlet-4.0.5.jar:/root/.m2/repository/org/springframework/spring-webmvc/7.0.6/spring-webmvc-7.0.6.jar:/root/.m2/repository/com/h2database/h2/2.4.240/h2-2.4.240.jar:/root/.m2/repository/org/projectlombok/lombok/1.18.44/lombok-1.18.44.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa-test/4.0.5/spring-boot-starter-data-jpa-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-test/4.0.5/spring-boot-starter-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-test/4.0.5/spring-boot-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-test-autoconfigure/4.0.5/spring-boot-test-autoconfigure-4.0.5.jar:/root/.m2/repository/com/jayway/jsonpath/json-path/2.10.0/json-path-2.10.0.jar:/root/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/4.0.4/jakarta.xml.bind-api-4.0.4.jar:/root/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.4/jakarta.activation-api-2.1.4.jar:/root/.m2/repository/net/minidev/json-smart/2.6.0/json-smart-2.6.0.jar:/root/.m2/repository/net/minidev/accessors-smart/2.6.0/accessors-smart-2.6.0.jar:/root/.m2/repository/org/ow2/asm/asm/9.7.1/asm-9.7.1.jar:/root/.m2/repository/org/assertj/assertj-core/3.27.7/assertj-core-3.27.7.jar:/root/.m2/repository/net/bytebuddy/byte-buddy/1.17.8/byte-buddy-1.17.8.jar:/root/.m2/repository/org/awaitility/awaitility/4.3.0/awaitility-4.3.0.jar:/root/.m2/repository/org/hamcrest/hamcrest/3.0/hamcrest-3.0.jar:/root/.m2/repository/org/junit/jupiter/junit-jupiter/6.0.3/junit-jupiter-6.0.3.jar:/root/.m2/repository/org/junit/jupiter/junit-jupiter-api/6.0.3/junit-jupiter-api-6.0.3.jar:/root/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/root/.m2/repository/org/junit/platform/junit-platform-commons/6.0.3/junit-platform-commons-6.0.3.jar:/root/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/root/.m2/repository/org/junit/jupiter/junit-jupiter-params/6.0.3/junit-jupiter-params-6.0.3.jar:/root/.m2/repository/org/junit/jupiter/junit-jupiter-engine/6.0.3/junit-jupiter-engine-6.0.3.jar:/root/.m2/repository/org/junit/platform/junit-platform-engine/6.0.3/junit-platform-engine-6.0.3.jar:/root/.m2/repository/org/mockito/mockito-core/5.20.0/mockito-core-5.20.0.jar:/root/.m2/repository/net/bytebuddy/byte-buddy-agent/1.17.8/byte-buddy-agent-1.17.8.jar:/root/.m2/repository/org/objenesis/objenesis/3.3/objenesis-3.3.jar:/root/.m2/repository/org/mockito/mockito-junit-jupiter/5.20.0/mockito-junit-jupiter-5.20.0.jar:/root/.m2/repository/org/skyscreamer/jsonassert/1.5.3/jsonassert-1.5.3.jar:/root/.m2/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar:/root/.m2/repository/org/springframework/spring-test/7.0.6/spring-test-7.0.6.jar:/root/.m2/repository/org/xmlunit/xmlunit-core/2.10.4/xmlunit-core-2.10.4.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc-test/4.0.5/spring-boot-starter-jdbc-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-jdbc-test/4.0.5/spring-boot-jdbc-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-data-jpa-test/4.0.5/spring-boot-data-jpa-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-jpa-test/4.0.5/spring-boot-jpa-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-thymeleaf-test/4.0.5/spring-boot-starter-thymeleaf-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-validation-test/4.0.5/spring-boot-starter-validation-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-webmvc-test/4.0.5/spring-boot-starter-webmvc-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-jackson-test/4.0.5/spring-boot-starter-jackson-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-webmvc-test/4.0.5/spring-boot-webmvc-test-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-web-server/4.0.5/spring-boot-web-server-4.0.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-resttestclient/4.0.5/spring-boot-resttestclient-4.0.5.jar com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit6 @w@/tmp/1P2Ycf/idea_working_dirs_junit.tmp @/tmp/1P2Ycf/idea_junit.tmp -socketlocalhost:43741 2026-04-09T20:27:37.551+01:00 INFO 6971 --- [equipment-rental-system] [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' Hibernate: drop table if exists app_user cascade Hibernate: drop table if exists booking cascade Hibernate: drop table if exists category cascade Hibernate: drop table if exists equipment cascade 2026-04-09T20:27:37.571+01:00 INFO 6971 --- [equipment-rental-system] [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' Hibernate: drop table if exists app_user cascade Hibernate: drop table if exists booking cascade Hibernate: drop table if exists category cascade Hibernate: drop table if exists equipment cascade 2026-04-09T20:27:37.580+01:00 INFO 6971 --- [equipment-rental-system] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2026-04-09T20:27:37.584+01:00 INFO 6971 --- [equipment-rental-system] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. Process finished with exit code 0
  • 1.37 s
    EquipmentService Tests
    • 1.33 s
      Status Update Tests (BR-08)
      • 1.32 s
        passedShould update equipment status to AVAILABLE
        • 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 (/root/.m2/repository/net/bytebuddy/byte-buddy-agent/1.17.8/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
          OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
        • 20:27:29.740 [main] INFO com.equipmentrental.equipment_rental_system.service.EquipmentService -- Equipment status updated: 'Dell Laptop' (ID: 1) BOOKED -> AVAILABLE
      • 10 ms
        passedShould update equipment status to BOOKED
        • 20:27:29.756 [main] INFO com.equipmentrental.equipment_rental_system.service.EquipmentService -- Equipment status updated: 'Dell Laptop' (ID: 1) AVAILABLE -> BOOKED
    • 20 ms
      Deletion Tests (BR-07)
      • 4 ms
        passedShould delete equipment with no active bookings
        • 20:27:29.772 [main] INFO com.equipmentrental.equipment_rental_system.service.EquipmentService -- Equipment deleted: 'Dell Laptop' (ID: 1)
      • 5 ms
        passedShould block deletion when active bookings exist
        • 20:27:29.777 [main] WARN com.equipmentrental.equipment_rental_system.service.EquipmentService -- Deletion blocked for equipment 'Dell Laptop' (ID: 1): active bookings exist
      • 6 ms
        passedShould delete equipment with no bookings at all
        • 20:27:29.786 [main] INFO com.equipmentrental.equipment_rental_system.service.EquipmentService -- Equipment deleted: 'Dell Laptop' (ID: 1)
      • 5 ms
        passedShould throw exception when deleting non-existent equipment
    • 16 ms
      Availability Verification Tests (BR-01)
      • 3 ms
        passedShould allow booking for equipment with BOOKED status
      • 5 ms
        passedShould reject booking for unavailable equipment
        • 20:27:29.804 [main] WARN com.equipmentrental.equipment_rental_system.service.EquipmentService -- Booking rejected: equipment 'Dell Laptop' (ID: 1) has status UNAVAILABLE
      • 4 ms
        passedShould allow booking for equipment with AVAILABLE status
      • 4 ms
        passedShould reject booking for equipment under maintenance
        • 20:27:29.816 [main] WARN com.equipmentrental.equipment_rental_system.service.EquipmentService -- Booking rejected: equipment 'Dell Laptop' (ID: 1) has status MAINTENANCE
    • 7 ms
      Search and Filter Tests
      • 1 ms
        passedShould find equipment by category ID
      • 2 ms
        passedShould return empty list when no equipment matches search
      • 2 ms
        passedShould find equipment by status
      • 2 ms
        passedShould search equipment by name (case-insensitive)
  • 575 ms
    BookingRepository Integration Tests
    • 480 ms
      Conflict Detection Query Tests (BR-02)
      • 331 ms
        passedShould not find conflict for different equipment
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.equipment_id=? and b1_0.status='CONFIRMED' and b1_0.date_from<=? and b1_0.date_to>=?
      • 35 ms
        passedShould find multiple conflicting bookings
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.equipment_id=? and b1_0.status='CONFIRMED' and b1_0.date_from<=? and b1_0.date_to>=?
      • 21 ms
        passedShould not find conflict when dates do not overlap
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.equipment_id=? and b1_0.status='CONFIRMED' and b1_0.date_from<=? and b1_0.date_to>=?
      • 26 ms
        passedShould ignore cancelled bookings when checking conflicts
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.equipment_id=? and b1_0.status='CONFIRMED' and b1_0.date_from<=? and b1_0.date_to>=?
      • 26 ms
        passedShould find conflicting booking when dates partially overlap
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.equipment_id=? and b1_0.status='CONFIRMED' and b1_0.date_from<=? and b1_0.date_to>=?
      • 24 ms
        passedShould find conflicting booking on shared boundary date
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.equipment_id=? and b1_0.status='CONFIRMED' and b1_0.date_from<=? and b1_0.date_to>=?
      • 17 ms
        passedShould find conflicting booking when dates fully overlap
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.equipment_id=? and b1_0.status='CONFIRMED' and b1_0.date_from<=? and b1_0.date_to>=?
    • 95 ms
      Query Method Tests
      • 47 ms
        passedShould find bookings by status
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.status=?
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.status=?
      • 28 ms
        passedShould find bookings by user ID
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.user_id=?
      • 20 ms
        passedShould find bookings by equipment ID
        • Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0
          Hibernate: select e1_0.id,e1_0.category_id,e1_0.condition,e1_0.cost_per_day,e1_0.description,e1_0.location,e1_0.name,e1_0.purchase_date,e1_0.status from equipment e1_0
          Hibernate: select u1_0.id,u1_0.department,u1_0.email,u1_0.first_name,u1_0.last_name,u1_0.password,u1_0.phone,u1_0.role,u1_0.username from app_user u1_0
          Hibernate: select c1_0.id,c1_0.description,c1_0.name from category c1_0
          Hibernate: insert into category (description,name,id) values (?,?,default)
          Hibernate: insert into equipment (category_id,condition,cost_per_day,description,location,name,purchase_date,status,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into app_user (department,email,first_name,last_name,password,phone,role,username,id) values (?,?,?,?,?,?,?,?,default)
          Hibernate: insert into booking (created_at,date_from,date_to,equipment_id,purpose,status,user_id,id) values (?,?,?,?,?,?,?,default)
          Hibernate: select b1_0.id,b1_0.created_at,b1_0.date_from,b1_0.date_to,b1_0.equipment_id,b1_0.purpose,b1_0.status,b1_0.user_id from booking b1_0 where b1_0.equipment_id=?
  • 6 ms
    Booking Entity Tests
    • 2 ms
      Duration Calculation Tests
      • 1 ms
        passedShould return correct duration for multi-day booking
      • 1 ms
        passedShould return correct duration for two-day booking
      • passedShould return 1 for same-day booking
    • 4 ms
      Date Conflict Detection Tests
      • 1 ms
        passedShould detect conflict for same-day bookings
      • passedShould detect conflict when one booking fully contains another
      • passedShould detect conflict when bookings share a single boundary date
      • passedShould be symmetric: A conflicts with B means B conflicts with A
      • passedShould detect conflict when date ranges fully overlap
      • 2 ms
        passedShould not detect conflict when bookings are weeks apart
      • 1 ms
        passedShould not detect conflict when date ranges do not overlap
      • passedShould detect conflict when date ranges partially overlap at end
      • passedShould detect conflict when date ranges partially overlap at start
    • Booking Status Tests
      • passedShould set status to CANCELLED when cancel is called
      • passedShould return false for cancelled booking
      • passedShould return true for active booking with CONFIRMED status
  • 264 ms
    BookingService Tests
    • 174 ms
      User Validation Tests (BR-03)
      • 174 ms
        passedShould reject booking when user does not exist
    • 31 ms
      Equipment Availability Tests (BR-01)
      • 10 ms
        passedShould reject booking when equipment is unavailable
      • 6 ms
        passedShould allow booking when equipment status is BOOKED but no date conflict
        • 2026-04-09T20:27:35.342+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking created: ID null, equipment 'Dell Laptop', user 'James Thompson', dates 2026-06-10 to 2026-06-15
      • 9 ms
        passedShould allow booking when equipment status is AVAILABLE
        • 2026-04-09T20:27:35.353+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking created: ID null, equipment 'Dell Laptop', user 'James Thompson', dates 2026-06-10 to 2026-06-15
      • 6 ms
        passedShould reject booking when equipment is under maintenance
    • 16 ms
      Cancel Booking Tests
      • 6 ms
        passedShould throw exception when cancelling non-existent booking
      • 5 ms
        passedShould set booking status to CANCELLED
        • 2026-04-09T20:27:35.374+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking cancelled: ID 1, equipment 'Dell Laptop' (ID: 1)
      • 5 ms
        passedShould revert equipment status to AVAILABLE when no other active bookings remain (BR-08)
        • 2026-04-09T20:27:35.380+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking cancelled: ID 1, equipment 'Dell Laptop' (ID: 1)
    • 8 ms
      Date Validation Tests (BR-05)
      • 5 ms
        passedShould accept booking when start date equals end date
        • 2026-04-09T20:27:35.388+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking created: ID null, equipment 'Dell Laptop', user 'James Thompson', dates 2026-06-15 to 2026-06-15
      • 3 ms
        passedShould reject booking when end date is before start date
        • 2026-04-09T20:27:35.391+01:00 WARN 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking rejected: invalid date range 2026-06-15 to 2026-06-10
    • 13 ms
      Booking Conflict Tests (BR-02)
      • 6 ms
        passedShould reject booking when conflicting booking exists
        • 2026-04-09T20:27:35.399+01:00 WARN 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking rejected: conflict detected for equipment 'Dell Laptop' (ID: 1) on dates 2026-06-10 to 2026-06-15
      • 7 ms
        passedShould allow booking when no conflicting bookings exist
        • 2026-04-09T20:27:35.408+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking created: ID null, equipment 'Dell Laptop', user 'James Thompson', dates 2026-06-10 to 2026-06-15
    • 7 ms
      Find Booking Tests
      • 3 ms
        passedShould throw exception when booking not found by ID
      • 2 ms
        passedShould return booking when found by ID
      • 2 ms
        passedShould return all bookings for a given user
    • 15 ms
      Create Booking Tests
      • 6 ms
        passedShould create booking when all business rules pass
        • 2026-04-09T20:27:35.428+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking created: ID 1, equipment 'Dell Laptop', user 'James Thompson', dates 2026-06-10 to 2026-06-15
      • 9 ms
        passedShould set equipment status to BOOKED after successful booking (BR-08)
        • 2026-04-09T20:27:35.439+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.BookingService : Booking created: ID null, equipment 'Dell Laptop', user 'James Thompson', dates 2026-06-10 to 2026-06-15
  • 2 ms
    EquipmentRentalSystemApplicationTests
    • 2 ms
      passedcontextLoads()
  • 113 ms
    CategoryService Tests
    • 95 ms
      Save Category Tests
      • 95 ms
        passedShould save new category and return it
        • 2026-04-09T20:27:37.517+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.CategoryService : Category saved: 'Photography' (ID: 3)
    • 8 ms
      Find Category Tests
      • 2 ms
        passedShould return all categories
      • 3 ms
        passedShould throw exception when category not found by ID
      • 3 ms
        passedShould return category when found by ID
    • 10 ms
      Deletion Tests (BR-06)
      • 5 ms
        passedShould delete category with no assigned equipment
        • 2026-04-09T20:27:37.537+01:00 INFO 6971 --- [equipment-rental-system] [ main] c.e.e.service.CategoryService : Category deleted: 'Audio Equipment' (ID: 1)
      • 3 ms
        passedShould block deletion when equipment is assigned to category
        • 2026-04-09T20:27:37.541+01:00 WARN 6971 --- [equipment-rental-system] [ main] c.e.e.service.CategoryService : Deletion blocked for category 'Audio Equipment' (ID: 1): equipment items still assigned
      • 2 ms
        passedShould throw exception when deleting non-existent category

Generated by IntelliJ IDEA on 09/04/2026, 20:28