diff --git a/src/test/java/com/safetypin/authentication/dto/DtoTest.java b/src/test/java/com/safetypin/authentication/dto/DtoTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..645db7e76a61a99dacd97c39b43cf56476fb8d69
--- /dev/null
+++ b/src/test/java/com/safetypin/authentication/dto/DtoTest.java
@@ -0,0 +1,93 @@
+package com.safetypin.authentication.dto;
+
+import org.junit.jupiter.api.Test;
+import static org.assertj.core.api.Assertions.assertThat;
+import jakarta.validation.Validation;
+import jakarta.validation.Validator;
+import jakarta.validation.ValidatorFactory;
+import jakarta.validation.ConstraintViolation;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Set;
+
+public class DtoTest {
+
+    private final Validator validator;
+
+    public DtoTest() {
+        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
+        this.validator = factory.getValidator();
+    }
+
+    @Test
+    void testErrorResponseConstructor() {
+        ErrorResponse errorResponse = new ErrorResponse(404, "Resource not found");
+
+        assertThat(errorResponse.getStatus()).isEqualTo(404);
+        assertThat(errorResponse.getMessage()).isEqualTo("Resource not found");
+        assertThat(errorResponse.getTimestamp()).isNotNull();
+        assertThat(errorResponse.getTimestamp()).isBeforeOrEqualTo(LocalDateTime.now());
+    }
+
+    @Test
+    void testPasswordResetRequestValid() {
+        PasswordResetRequest request = new PasswordResetRequest();
+        request.setEmail("user@example.com");
+
+        Set<ConstraintViolation<PasswordResetRequest>> violations = validator.validate(request);
+        assertThat(violations).isEmpty();
+    }
+
+    @Test
+    void testPasswordResetRequestInvalidEmail() {
+        PasswordResetRequest request = new PasswordResetRequest();
+        request.setEmail("invalid-email");
+
+        Set<ConstraintViolation<PasswordResetRequest>> violations = validator.validate(request);
+        assertThat(violations).isNotEmpty();
+    }
+
+    @Test
+    void testRegistrationRequestValid() {
+        RegistrationRequest request = new RegistrationRequest();
+        request.setEmail("user@example.com");
+        request.setPassword("securePassword");
+        request.setName("John Doe");
+        request.setBirthdate(LocalDate.of(1995, 5, 10));
+
+        Set<ConstraintViolation<RegistrationRequest>> violations = validator.validate(request);
+        assertThat(violations).isEmpty();
+    }
+
+    @Test
+    void testRegistrationRequestMissingFields() {
+        RegistrationRequest request = new RegistrationRequest(); // Missing required fields
+
+        Set<ConstraintViolation<RegistrationRequest>> violations = validator.validate(request);
+        assertThat(violations).isNotEmpty();
+        assertThat(violations).hasSize(4); // Email, password, name, and birthdate should all be invalid
+    }
+
+    @Test
+    void testSocialLoginRequestValid() {
+        SocialLoginRequest request = new SocialLoginRequest();
+        request.setProvider("GOOGLE");
+        request.setSocialToken("validToken");
+        request.setEmail("socialuser@example.com");
+        request.setName("Social User");
+        request.setBirthdate(LocalDate.of(2000, 1, 1));
+        request.setSocialId("123456789");
+
+        Set<ConstraintViolation<SocialLoginRequest>> violations = validator.validate(request);
+        assertThat(violations).isEmpty();
+    }
+
+    @Test
+    void testSocialLoginRequestMissingFields() {
+        SocialLoginRequest request = new SocialLoginRequest(); // Missing required fields
+
+        Set<ConstraintViolation<SocialLoginRequest>> violations = validator.validate(request);
+        assertThat(violations).isNotEmpty();
+        assertThat(violations).hasSize(6); // All fields should be invalid
+    }
+}