From ffb27bc02c9612f616ba45671a5e798b57360ee6 Mon Sep 17 00:00:00 2001 From: Tatjana Date: Thu, 9 Apr 2026 21:35:57 +0200 Subject: [PATCH] Test:chore: add unit tests for Vet entity - Test constructor initialization - Test getters and setters - Verify default state - Align tests with JPA ID generation (@GeneratedValue, @MapsId) --- .../org/example/vet1177/entities/VetTest.java | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/test/java/org/example/vet1177/entities/VetTest.java diff --git a/src/test/java/org/example/vet1177/entities/VetTest.java b/src/test/java/org/example/vet1177/entities/VetTest.java new file mode 100644 index 00000000..abc792bd --- /dev/null +++ b/src/test/java/org/example/vet1177/entities/VetTest.java @@ -0,0 +1,91 @@ +package org.example.vet1177.entities; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class VetTest { + + @Test + void shouldCreateVetWithConstructor() { + // Arrange + User user = new User(); + user.setName("Test User"); + user.setEmail("test@test.com"); + user.setPasswordHash("123"); + user.setRole(Role.VET); + + String licenseId = "LIC123"; + String specialization = "Surgery"; + String bookingInfo = "Available weekdays"; + + // Act + Vet vet = new Vet(user, licenseId, specialization, bookingInfo); + + // Assert + assertEquals(user, vet.getUser()); + assertEquals(licenseId, vet.getLicenseId()); + assertEquals(specialization, vet.getSpecialization()); + assertEquals(bookingInfo, vet.getBookingInfo()); + } + + @Test + void shouldSetAndGetFieldsCorrectly() { + // Arrange + Vet vet = new Vet(); + User user = new User(); + user.setName("Test User"); + user.setEmail("test@test.com"); + user.setPasswordHash("123"); + user.setRole(Role.VET); + + // Act + vet.setUser(user); + vet.setLicenseId("LIC456"); + vet.setSpecialization("Dentistry"); + vet.setBookingInfo("Evenings only"); + + // Assert + assertEquals(user, vet.getUser()); + assertEquals("LIC456", vet.getLicenseId()); + assertEquals("Dentistry", vet.getSpecialization()); + assertEquals("Evenings only", vet.getBookingInfo()); + } + + @Test + void shouldHaveNullFieldsWhenEmptyConstructorUsed() { + // Act + Vet vet = new Vet(); + + // Assert + assertNull(vet.getUser()); + assertNull(vet.getLicenseId()); + assertNull(vet.getSpecialization()); + assertNull(vet.getBookingInfo()); + } + + @Test + void userIdShouldBeNullBeforePersist() { + // Arrange + User user = new User(); + user.setName("Test User"); + user.setEmail("test@test.com"); + user.setPasswordHash("123"); + user.setRole(Role.VET); + + Vet vet = new Vet(); + vet.setUser(user); + + // Assert + assertNull(vet.getUserId()); // viktigt test + } +} + + + +//Testa: +// +//Konstruktor med alla fält sätter user, licenseId, specialization och bookingInfo korrekt +//getUserId() returnerar null innan persist +//getUser() är null när inte satt +//Setters fungerar för licenseId, specialization och bookingInfo \ No newline at end of file