From 729bab66fe851d8bbda69d4f289392ef6e4e39e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9A=B0=EC=9E=AC?= Date: Tue, 12 Oct 2021 23:37:30 +0900 Subject: [PATCH] =?UTF-8?q?[#54]=20test:=20Following=20=EC=9D=B8=EC=8A=A4?= =?UTF-8?q?=ED=84=B4=EC=8A=A4=20add()=EC=97=90=20null=20=EC=9E=85=EB=A0=A5?= =?UTF-8?q?=EC=8B=9C=20=EC=8B=A4=ED=8C=A8=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../realworld/domain/follow/domain/Followings.java | 8 +++++--- .../error/exception/FollowBusinessException.java | 9 +++++++++ .../error/exception/FollowNullPointerException.java | 11 +++++++++++ .../domain/follow/domain/FollowingsTest.java | 13 ++++++++++++- 4 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/study/realworld/domain/follow/error/exception/FollowBusinessException.java create mode 100644 src/main/java/com/study/realworld/domain/follow/error/exception/FollowNullPointerException.java diff --git a/src/main/java/com/study/realworld/domain/follow/domain/Followings.java b/src/main/java/com/study/realworld/domain/follow/domain/Followings.java index a4a85e65..73bc5cba 100644 --- a/src/main/java/com/study/realworld/domain/follow/domain/Followings.java +++ b/src/main/java/com/study/realworld/domain/follow/domain/Followings.java @@ -1,5 +1,7 @@ package com.study.realworld.domain.follow.domain; +import com.study.realworld.domain.follow.error.exception.FollowNullPointerException; + import javax.persistence.CascadeType; import javax.persistence.Embeddable; import javax.persistence.OneToMany; @@ -17,13 +19,13 @@ public Followings() { } public void addFollowing(final Follow following) { - validateArgumentNull(following); + validateFollowNull(following); followings.add(following); } - private void validateArgumentNull(final Follow following) { + private void validateFollowNull(final Follow following) { if(Objects.isNull(following)) { - throw new IllegalArgumentException(); + throw new FollowNullPointerException(); } } diff --git a/src/main/java/com/study/realworld/domain/follow/error/exception/FollowBusinessException.java b/src/main/java/com/study/realworld/domain/follow/error/exception/FollowBusinessException.java new file mode 100644 index 00000000..7b8b756b --- /dev/null +++ b/src/main/java/com/study/realworld/domain/follow/error/exception/FollowBusinessException.java @@ -0,0 +1,9 @@ +package com.study.realworld.domain.follow.error.exception; + +public class FollowBusinessException extends RuntimeException { + + public FollowBusinessException(final String message) { + super(message); + } + +} diff --git a/src/main/java/com/study/realworld/domain/follow/error/exception/FollowNullPointerException.java b/src/main/java/com/study/realworld/domain/follow/error/exception/FollowNullPointerException.java new file mode 100644 index 00000000..306ec6fb --- /dev/null +++ b/src/main/java/com/study/realworld/domain/follow/error/exception/FollowNullPointerException.java @@ -0,0 +1,11 @@ +package com.study.realworld.domain.follow.error.exception; + +public class FollowNullPointerException extends FollowBusinessException { + + private static final String MESSAGE = "Follow 가 null 입니다."; + + public FollowNullPointerException() { + super(MESSAGE); + } + +} \ No newline at end of file diff --git a/src/test/java/com/study/realworld/domain/follow/domain/FollowingsTest.java b/src/test/java/com/study/realworld/domain/follow/domain/FollowingsTest.java index c73055b1..4bb427ac 100644 --- a/src/test/java/com/study/realworld/domain/follow/domain/FollowingsTest.java +++ b/src/test/java/com/study/realworld/domain/follow/domain/FollowingsTest.java @@ -1,5 +1,6 @@ package com.study.realworld.domain.follow.domain; +import com.study.realworld.domain.follow.error.exception.FollowNullPointerException; import com.study.realworld.domain.user.domain.persist.User; import com.study.realworld.domain.user.domain.vo.*; import org.junit.jupiter.api.DisplayName; @@ -13,6 +14,7 @@ import static com.study.realworld.domain.user.domain.vo.NameTest.USERNAME; import static com.study.realworld.domain.user.domain.vo.PasswordTest.PASSWORD; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.*; class FollowingsTest { @@ -30,7 +32,7 @@ void constructor_test() { @DisplayName("Following 인스턴스 add 테스트") @Test - void add_fail_test() { + void add_test() { final Followings followings = new Followings(); final User user1 = userBuilder(new Email(EMAIL), new Name(USERNAME), new Password(PASSWORD), new Bio(BIO), new Image(IMAGE)); final User user2 = userBuilder(new Email("email1"), new Name("username1"), new Password("password1"), new Bio("bio1"), new Image("image1")); @@ -40,4 +42,13 @@ void add_fail_test() { assertThat(followings.getFollowings().size()).isEqualTo(1); } + @DisplayName("Following 인스턴스 add()에 null 입력시 실패 테스트") + @Test + void add_fail_test() { + final Followings followings = new Followings(); + assertThatThrownBy(() -> followings.addFollowing(null)) + .isInstanceOf(FollowNullPointerException.class) + .hasMessage("Follow 가 null 입니다."); + } + } \ No newline at end of file