diff --git a/src/main/java/deepple/deepple/member/command/application/member/AdminMemberService.java b/src/main/java/deepple/deepple/member/command/application/member/AdminMemberService.java index 44b8c3571..bbc1e2c1b 100644 --- a/src/main/java/deepple/deepple/member/command/application/member/AdminMemberService.java +++ b/src/main/java/deepple/deepple/member/command/application/member/AdminMemberService.java @@ -1,7 +1,6 @@ package deepple.deepple.member.command.application.member; import deepple.deepple.member.command.application.member.exception.MemberNotFoundException; -import deepple.deepple.member.command.domain.member.ActivityStatus; import deepple.deepple.member.command.domain.member.Grade; import deepple.deepple.member.command.domain.member.Member; import deepple.deepple.member.command.domain.member.MemberCommandRepository; @@ -19,12 +18,9 @@ public class AdminMemberService { @Transactional public void updateMemberSetting(long memberId, AdminMemberSettingUpdateRequest request) { Grade grade = Grade.from(request.grade()); - ActivityStatus activityStatus = ActivityStatus.from(request.activityStatus()); Member member = getMember(memberId); member.updateSetting( grade, - request.isProfilePublic(), - activityStatus, request.isVip(), request.isPushNotificationEnabled() ); diff --git a/src/main/java/deepple/deepple/member/command/domain/member/Member.java b/src/main/java/deepple/deepple/member/command/domain/member/Member.java index d6e91a64f..1c64ccb82 100644 --- a/src/main/java/deepple/deepple/member/command/domain/member/Member.java +++ b/src/main/java/deepple/deepple/member/command/domain/member/Member.java @@ -168,14 +168,10 @@ public void updateGrade(@NonNull Grade grade) { public void updateSetting( @NonNull Grade grade, - boolean isProfilePublic, - @NonNull ActivityStatus activityStatus, boolean isVip, boolean isPushNotificationEnabled ) { this.grade = grade; - this.isProfilePublic = isProfilePublic; - changeActivityStatus(activityStatus); this.isVip = isVip; Events.raise(MemberSettingUpdatedEvent.of(id, isPushNotificationEnabled)); } diff --git a/src/main/java/deepple/deepple/member/presentation/member/dto/AdminMemberSettingUpdateRequest.java b/src/main/java/deepple/deepple/member/presentation/member/dto/AdminMemberSettingUpdateRequest.java index 6fbc4ca3e..cf10c19bd 100644 --- a/src/main/java/deepple/deepple/member/presentation/member/dto/AdminMemberSettingUpdateRequest.java +++ b/src/main/java/deepple/deepple/member/presentation/member/dto/AdminMemberSettingUpdateRequest.java @@ -1,15 +1,11 @@ package deepple.deepple.member.presentation.member.dto; -import deepple.deepple.member.command.domain.member.ActivityStatus; import deepple.deepple.member.command.domain.member.Grade; import io.swagger.v3.oas.annotations.media.Schema; public record AdminMemberSettingUpdateRequest( @Schema(implementation = Grade.class) String grade, - boolean isProfilePublic, - @Schema(implementation = ActivityStatus.class) - String activityStatus, boolean isVip, boolean isPushNotificationEnabled ) { diff --git a/src/test/java/deepple/deepple/member/command/application/member/AdminMemberServiceTest.java b/src/test/java/deepple/deepple/member/command/application/member/AdminMemberServiceTest.java index 723abda40..4ce1e23cb 100644 --- a/src/test/java/deepple/deepple/member/command/application/member/AdminMemberServiceTest.java +++ b/src/test/java/deepple/deepple/member/command/application/member/AdminMemberServiceTest.java @@ -1,7 +1,6 @@ package deepple.deepple.member.command.application.member; import deepple.deepple.member.command.application.member.exception.MemberNotFoundException; -import deepple.deepple.member.command.domain.member.ActivityStatus; import deepple.deepple.member.command.domain.member.Grade; import deepple.deepple.member.command.domain.member.Member; import deepple.deepple.member.command.domain.member.MemberCommandRepository; @@ -33,7 +32,7 @@ void updateMemberSetting() { // given long memberId = 1L; AdminMemberSettingUpdateRequest request = new AdminMemberSettingUpdateRequest( - Grade.SILVER.name(), true, ActivityStatus.ACTIVE.name(), true, true + Grade.SILVER.name(), true, true ); final Member member = mock(Member.class); when(memberCommandRepository.findById(memberId)).thenReturn(Optional.of(member)); @@ -42,8 +41,7 @@ void updateMemberSetting() { adminMemberService.updateMemberSetting(memberId, request); // then - verify(member).updateSetting(Grade.from(request.grade()), request.isProfilePublic(), - ActivityStatus.from(request.activityStatus()), request.isVip(), request.isPushNotificationEnabled()); + verify(member).updateSetting(Grade.from(request.grade()), request.isVip(), request.isPushNotificationEnabled()); } @Test @@ -52,7 +50,7 @@ void updateMemberSetting_MemberNotFound() { // given long memberId = 1L; AdminMemberSettingUpdateRequest request = new AdminMemberSettingUpdateRequest( - Grade.SILVER.name(), true, ActivityStatus.ACTIVE.name(), true, true + Grade.SILVER.name(), true, true ); when(memberCommandRepository.findById(memberId)).thenReturn(Optional.empty()); @@ -60,4 +58,4 @@ void updateMemberSetting_MemberNotFound() { assertThatThrownBy(() -> adminMemberService.updateMemberSetting(memberId, request)) .isInstanceOf(MemberNotFoundException.class); } -} \ No newline at end of file +} diff --git a/src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java b/src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java index 15720bfd0..c13ed0521 100644 --- a/src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java +++ b/src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java @@ -4,6 +4,7 @@ import deepple.deepple.heart.command.domain.hearttransaction.vo.HeartAmount; import deepple.deepple.heart.command.domain.hearttransaction.vo.HeartBalance; import deepple.deepple.member.command.domain.member.event.MemberProfileInitializedEvent; +import deepple.deepple.member.command.domain.member.event.MemberSettingUpdatedEvent; import deepple.deepple.member.command.domain.member.vo.KakaoId; import deepple.deepple.member.command.domain.member.vo.MemberProfile; import deepple.deepple.member.command.domain.member.vo.Nickname; @@ -172,24 +173,27 @@ class UpdateSettingMethodTest { @Test @DisplayName("멤버의 설정을 업데이트합니다.") void shouldUpdateMemberSettings() { - // Given - Member member = Member.fromPhoneNumber("01012345678"); - Long memberId = 1L; - setField(member, "id", memberId); - Grade grade = Grade.GOLD; - final boolean isProfilePublic = true; - ActivityStatus activityStatus = ActivityStatus.DORMANT; - final boolean isVip = true; - final boolean isPushNotificationEnabled = false; + try (MockedStatic eventsMock = mockStatic(Events.class)) { + // Given + Member member = Member.fromPhoneNumber("01012345678"); + Long memberId = 1L; + setField(member, "id", memberId); + Grade grade = Grade.GOLD; + final boolean isVip = true; + final boolean isPushNotificationEnabled = false; - // When - member.updateSetting(grade, isProfilePublic, activityStatus, isVip, isPushNotificationEnabled); + // When + member.updateSetting(grade, isVip, isPushNotificationEnabled); - // Then - Assertions.assertThat(member.getGrade()).isEqualTo(grade); - Assertions.assertThat(member.isProfilePublic()).isEqualTo(isProfilePublic); - Assertions.assertThat(member.getActivityStatus()).isEqualTo(activityStatus); - Assertions.assertThat(member.isVip()).isEqualTo(isVip); + // Then + Assertions.assertThat(member.getGrade()).isEqualTo(grade); + Assertions.assertThat(member.isVip()).isEqualTo(isVip); + eventsMock.verify(() -> Events.raise(argThat(event -> + event instanceof MemberSettingUpdatedEvent && + ((MemberSettingUpdatedEvent) event).getMemberId() == memberId && + !((MemberSettingUpdatedEvent) event).isPushNotificationEnabled() + ))); + } } }