From ee9370dde129b5f77851f5616533536ff38d72a3 Mon Sep 17 00:00:00 2001 From: kevstevie Date: Mon, 4 Sep 2023 16:02:15 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20map=EC=9C=BC=EB=A1=9C=20url=20-=20c?= =?UTF-8?q?ontroller=20=EB=A7=A4=EC=B9=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jwp/presentation/FrontController.java | 27 ++++++++++--------- .../jwp/db/InMemoryUserRepositoryTest.java | 27 +++++++++++++++++++ 2 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 tomcat/src/test/java/nextstep/jwp/db/InMemoryUserRepositoryTest.java diff --git a/tomcat/src/main/java/nextstep/jwp/presentation/FrontController.java b/tomcat/src/main/java/nextstep/jwp/presentation/FrontController.java index a802611930..64e13c3e71 100644 --- a/tomcat/src/main/java/nextstep/jwp/presentation/FrontController.java +++ b/tomcat/src/main/java/nextstep/jwp/presentation/FrontController.java @@ -1,17 +1,27 @@ package nextstep.jwp.presentation; +import java.util.HashMap; +import java.util.Map; import org.apache.coyote.http11.request.RequestReader; public class FrontController { + private static final Map controllers = new HashMap<>(); + private static final FrontController frontController = new FrontController(); + + static { + controllers.put("/", frontController.mainPageController); + controllers.put("/login", frontController.loginController); + controllers.put("/register", frontController.loginController); + controllers.put("/index", frontController.indexController); + controllers.put("/index.html", frontController.indexController); + } + private final LoginController loginController = new LoginController(); private final MainPageController mainPageController = new MainPageController(); private final IndexController indexController = new IndexController(); private final OtherController otherController = new OtherController(); - - private static final FrontController frontController = new FrontController(); - private FrontController() { } @@ -20,15 +30,6 @@ public static FrontController getInstance() { } public Controller findController(RequestReader requestReader) { - if (requestReader.getRequestUrl().equals("/")) { - return mainPageController; - } - if (requestReader.getRequestUrl().equals("/login") || requestReader.getRequestUrl().equals("/register")) { - return loginController; - } - if (requestReader.getRequestUrl().equals("/index") || requestReader.getRequestUrl().equals("/index.html")) { - return indexController; - } - return otherController; + return controllers.getOrDefault(requestReader.getRequestUrl(), otherController); } } diff --git a/tomcat/src/test/java/nextstep/jwp/db/InMemoryUserRepositoryTest.java b/tomcat/src/test/java/nextstep/jwp/db/InMemoryUserRepositoryTest.java new file mode 100644 index 0000000000..59b178229d --- /dev/null +++ b/tomcat/src/test/java/nextstep/jwp/db/InMemoryUserRepositoryTest.java @@ -0,0 +1,27 @@ +package nextstep.jwp.db; + +import static org.assertj.core.api.Assertions.assertThat; + +import nextstep.jwp.model.User; +import org.junit.jupiter.api.Test; + +class InMemoryUserRepositoryTest { + + @Test + void 저장할_때_마다_순차적으로_아이디가_증가한다() { + InMemoryUserRepository.save(new User("test1", "test", "email@eamil")); + InMemoryUserRepository.save(new User("test2", "test", "email@eamil")); + InMemoryUserRepository.save(new User("test3", "test", "email@eamil")); + + Long id2 = InMemoryUserRepository.findByAccount("test2") + .map(User::getId) + .orElse(0L); + + Long id3 = InMemoryUserRepository.findByAccount("test3") + .map(User::getId) + .orElse(0L); + + assertThat(id3 - id2).isOne(); + } + +}