diff --git a/src/main/java/net/slipp/todo_list/TodoManager.java b/src/main/java/net/slipp/todo_list/TodoManager.java index 55f91d6..4958d01 100644 --- a/src/main/java/net/slipp/todo_list/TodoManager.java +++ b/src/main/java/net/slipp/todo_list/TodoManager.java @@ -33,7 +33,7 @@ public void create(Todo todo) { notify_silently(todo.getTitle()); } catch (RepositoryFailedException e) { - throw new RuntimeException(); + throw new RuntimeException(e); } } diff --git a/src/test/java/net/slipp/todo_list/TodoManagerTest.java b/src/test/java/net/slipp/todo_list/TodoManagerTest.java index ebb8e59..4de222e 100644 --- a/src/test/java/net/slipp/todo_list/TodoManagerTest.java +++ b/src/test/java/net/slipp/todo_list/TodoManagerTest.java @@ -305,6 +305,29 @@ public NotiManager notiManager() { todoManager.create(todo); } + @Test + public void TodoRepository_store_호출_시에_Exception을_던지면_TodoManager_Create_에서_cause_포함하는지_확인 () { + String TITLE = "TITLE"; + String CONTENT = "CONTENT"; + + Todo todo = new Todo(); + todo.setTitle(TITLE); + todo.setContent(CONTENT); + + MockTodoRepository.exception = new RepositoryFailedException(); + + RuntimeException todoManangerException = null; + + try { + todoManager.create(todo); + } catch (RuntimeException e) { + todoManangerException = e; + } + + assertNotNull(todoManangerException); + assertNotNull(todoManangerException.getCause()); + } + private static class MockTodoRepository extends TodoRepository { private static Todo passedTodo; @@ -331,10 +354,10 @@ private static class MockNotiManager extends NotiManager { @Override public void notify(String title) throws RuntimeException { + passedTitle = title; if(exception!=null && exception.getClass()==RuntimeException.class) { throw (RuntimeException)exception; } - passedTitle = title; } } } \ No newline at end of file