Skip to content

Commit

Permalink
refactor: map으로 url - controller 매칭
Browse files Browse the repository at this point in the history
  • Loading branch information
kevstevie committed Sep 4, 2023
1 parent 2339099 commit ee9370d
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 13 deletions.
27 changes: 14 additions & 13 deletions tomcat/src/main/java/nextstep/jwp/presentation/FrontController.java
Original file line number Diff line number Diff line change
@@ -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<String, Controller> 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() {
}

Expand All @@ -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);
}
}
Original file line number Diff line number Diff line change
@@ -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();
}

}

0 comments on commit ee9370d

Please sign in to comment.