diff --git a/build.gradle b/build.gradle index 57267157c..e9541e4de 100644 --- a/build.gradle +++ b/build.gradle @@ -16,6 +16,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'io.rest-assured:rest-assured:5.3.1' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' } test { diff --git a/src/main/java/roomescape/controller/ReservationController.java b/src/main/java/roomescape/controller/ReservationController.java new file mode 100644 index 000000000..976734f36 --- /dev/null +++ b/src/main/java/roomescape/controller/ReservationController.java @@ -0,0 +1,34 @@ +package roomescape.controller; + +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import roomescape.dto.Reservation; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@Controller +public class ReservationController { + + Reservation reservation1=new Reservation(1L,"브라운","2023-01-01","10:00"); + Reservation reservation2=new Reservation(2L,"브라운","2023-01-02","11:00"); + private List reservations = new ArrayList<>(Arrays.asList(reservation1,reservation2)); + + @GetMapping("/reservation") + public String reservation(Model model){ + + model.addAttribute(reservations); + return "reservation"; + } + + @GetMapping("/reservations") + @ResponseBody + public List reservations(){ + + return reservations; + } +} diff --git a/src/main/java/roomescape/controller/StartController.java b/src/main/java/roomescape/controller/StartController.java new file mode 100644 index 000000000..73f23f94b --- /dev/null +++ b/src/main/java/roomescape/controller/StartController.java @@ -0,0 +1,18 @@ +package roomescape.controller; + +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class StartController { + + @GetMapping("/") + public String home(){ + return "home"; + } + + + + +} diff --git a/src/main/java/roomescape/dto/Reservation.java b/src/main/java/roomescape/dto/Reservation.java new file mode 100644 index 000000000..58e425107 --- /dev/null +++ b/src/main/java/roomescape/dto/Reservation.java @@ -0,0 +1,20 @@ +package roomescape.dto; + +import java.sql.Date; +import java.sql.Time; +import java.time.LocalDate; +import java.time.LocalTime; + +public class Reservation { + private Long id; + private String name; + private String date; //우선 String으로.. 차후 Date로 형변환 필요하면 교체.. + private String time; //동일!! + + public Reservation(Long id,String name,String date,String time){ + this.id=id; + this.name=name; + this.date=date; + this.time=time; + } +} diff --git a/src/test/java/roomescape/MissionStepTest.java b/src/test/java/roomescape/MissionStepTest.java index cf4efbe91..a1cc39c6e 100644 --- a/src/test/java/roomescape/MissionStepTest.java +++ b/src/test/java/roomescape/MissionStepTest.java @@ -5,6 +5,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.DirtiesContext; +import static org.hamcrest.Matchers.is; + @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) public class MissionStepTest { @@ -16,4 +18,18 @@ public class MissionStepTest { .then().log().all() .statusCode(200); } + + @Test + void 이단계() { + RestAssured.given().log().all() + .when().get("/reservation") + .then().log().all() + .statusCode(200); + + RestAssured.given().log().all() + .when().get("/reservations") + .then().log().all() + .statusCode(200) + .body("size()", is(2)); // 아직 생성 요청이 없으니 Controller에서 임의로 넣어준 Reservation 갯수(=1) 만큼 검증. + } }