diff --git a/build.gradle b/build.gradle index 8d52aebc6..9bc129a0e 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' - implementation 'org.springframework.boot:spring-boot-starter-jdbc' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'dev.akkinoc.spring.boot:logback-access-spring-boot-starter:4.0.0' diff --git a/src/main/java/roomescape/DataLoader.java b/src/main/java/roomescape/DataLoader.java new file mode 100644 index 000000000..57b6f3f1b --- /dev/null +++ b/src/main/java/roomescape/DataLoader.java @@ -0,0 +1,28 @@ +package roomescape; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +import roomescape.member.Member; +import roomescape.member.MemberRepository; + +@Component +@Profile("product") +public class DataLoader implements CommandLineRunner { + + private final MemberRepository memberRepository; + + public DataLoader(MemberRepository memberRepository) { + this.memberRepository = memberRepository; + + } + + @Override + public void run(String... args) { + Member admin = new Member("어드민", "admin@email.com", "password", "ADMIN"); + Member brown = new Member("브라운", "brown@email.com", "password", "USER"); + memberRepository.save(admin); + memberRepository.save(brown); + } +} diff --git a/src/main/java/roomescape/TestDataLoader.java b/src/main/java/roomescape/TestDataLoader.java new file mode 100644 index 000000000..c653cac0d --- /dev/null +++ b/src/main/java/roomescape/TestDataLoader.java @@ -0,0 +1,66 @@ +package roomescape; + +import java.util.Arrays; +import java.util.List; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +import roomescape.member.Member; +import roomescape.member.MemberRepository; +import roomescape.reservation.Reservation; +import roomescape.reservation.ReservationRepository; +import roomescape.theme.Theme; +import roomescape.theme.ThemeRepository; +import roomescape.time.Time; +import roomescape.time.TimeRepository; + +@Component +@Profile("test") +public class TestDataLoader implements CommandLineRunner { + + private final MemberRepository memberRepository; + private final ThemeRepository themeRepository; + private final TimeRepository timeRepository; + private final ReservationRepository reservationRepository; + + public TestDataLoader(MemberRepository memberRepository, ThemeRepository themeRepository, + TimeRepository timeRepository, ReservationRepository reservationRepository) { + this.memberRepository = memberRepository; + this.themeRepository = themeRepository; + this.timeRepository = timeRepository; + this.reservationRepository = reservationRepository; + } + + @Override + public void run(String... args) { + Member admin = new Member("어드민", "admin@email.com", "password", "ADMIN"); + Member brown = new Member("브라운", "brown@email.com", "password", "USER"); + memberRepository.saveAll(Arrays.asList(admin, brown)); + + Theme theme1 = new Theme("테마1", "테마1입니다."); + Theme theme2 = new Theme("테마2", "테마2입니다."); + Theme theme3 = new Theme("테마3", "테마3입니다."); + themeRepository.saveAll(Arrays.asList(theme1, theme2, theme3)); + + List