From 39ad00351e6c0296b6ddd549083255aa97f0d2aa Mon Sep 17 00:00:00 2001 From: Application-drop-up Date: Fri, 3 Jul 2026 20:21:18 +0900 Subject: [PATCH 1/3] feat: add deleteUser to UserRepositroyInterface --- src/app/Packages/Domains/Interface/UserRepositroyInterface.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/app/Packages/Domains/Interface/UserRepositroyInterface.php b/src/app/Packages/Domains/Interface/UserRepositroyInterface.php index cad8f5e..5c9af12 100644 --- a/src/app/Packages/Domains/Interface/UserRepositroyInterface.php +++ b/src/app/Packages/Domains/Interface/UserRepositroyInterface.php @@ -12,4 +12,6 @@ public function createUser(UserEntity $entity): UserDto; public function findById(int $id): ?UserDto; public function updateUser(UserEntity $entity): UserDto; + + public function deleteUser(int $id): void; } \ No newline at end of file From f086bc05b02292aa391f71d6476f192ace8a00c2 Mon Sep 17 00:00:00 2001 From: Application-drop-up Date: Fri, 3 Jul 2026 20:21:21 +0900 Subject: [PATCH 2/3] feat: implement deleteUser in UserRepository --- src/app/Packages/Domains/UserRepository.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/app/Packages/Domains/UserRepository.php b/src/app/Packages/Domains/UserRepository.php index 87166cd..8794058 100644 --- a/src/app/Packages/Domains/UserRepository.php +++ b/src/app/Packages/Domains/UserRepository.php @@ -66,4 +66,15 @@ public function updateUser(UserEntity $entity): UserDto return UserDtoFactory::build($user->toArray()); } + + public function deleteUser(int $id): void + { + $user = $this->userModel->find($id); + + if ($user === null) { + throw new Exception('User not found.'); + } + + $user->delete(); + } } \ No newline at end of file From dd244d5f86059cb3b9e286b0f5943ab9a3e17ec1 Mon Sep 17 00:00:00 2001 From: Application-drop-up Date: Fri, 3 Jul 2026 20:21:23 +0900 Subject: [PATCH 3/3] test: add deleteUser integration tests to UserRepositoryTest --- .../Domains/Tests/UserRepositoryTest.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/app/Packages/Domains/Tests/UserRepositoryTest.php b/src/app/Packages/Domains/Tests/UserRepositoryTest.php index 9262cfd..96c3be0 100644 --- a/src/app/Packages/Domains/Tests/UserRepositoryTest.php +++ b/src/app/Packages/Domains/Tests/UserRepositoryTest.php @@ -121,4 +121,21 @@ public function test_updateUser_throws_exception_when_user_not_found(): void $this->repository()->updateUser($entity); } + + public function test_deleteUser_removes_user_when_exists(): void + { + $user = $this->seedUser(); + + $this->repository()->deleteUser($user->id); + + $this->assertDatabaseMissing('users', ['id' => $user->id]); + } + + public function test_deleteUser_throws_exception_when_user_not_found(): void + { + $this->expectException(\Exception::class); + $this->expectExceptionMessage('User not found.'); + + $this->repository()->deleteUser(999999); + } } \ No newline at end of file