// Path: src/main/java/com/sajo/teamkerbell/configuration/JpaConfig.java
// @Configuration
// @EnableJpaRepositories(basePackages = "com.sajo.teamkerbell.repository")
// @EnableTransactionManagement
// @PropertySource("classpath:spring.properties")
// @EnableAspectJAutoProxy
// @ComponentScan({"com.sajo.teamkerbell.service", "com.sajo.teamkerbell.aspect"})
// public class JpaConfig {
// 
//     @Bean
//     public DataSource dataSource(Environment env) {
//         DriverManagerDataSource dataSource = new DriverManagerDataSource();
//         dataSource.setDriverClassName(Objects.requireNonNull(env.getProperty("app.jdbc.driverClassName")));
//         dataSource.setUrl(env.getProperty("app.jdbc.url"));
//         dataSource.setUsername(env.getProperty("app.jdbc.username"));
//         dataSource.setPassword(env.getProperty("app.jdbc.password"));
//         return dataSource;
//     }
// 
//     @Bean
//     public EntityManagerFactory entityManagerFactory(Environment env) {
//         HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
//         vendorAdapter.setGenerateDdl(true);
//         LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
//         factory.setJpaVendorAdapter(vendorAdapter);
//         factory.setPersistenceProvider(new HibernatePersistenceProvider());
//         factory.setPackagesToScan("com.sajo.teamkerbell.entity");
//         factory.setDataSource(dataSource(env));
//         Properties jpaProperties = new Properties();
//         jpaProperties.put("hibernate.show_sql", true);
//         jpaProperties.put("hibernate.hbm2ddl.auto", "update");
//         jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
//         jpaProperties.put("hibernate.connection.characterEncoding", "utf8");
//         jpaProperties.put("hibernate.connection.CharSet", "utf8");
//         factory.setJpaProperties(jpaProperties);
//         factory.afterPropertiesSet();
//         return factory.getObject();
//     }
// 
//     @Bean
//     public PlatformTransactionManager transactionManager(Environment env) {
//         JpaTransactionManager txManager = new JpaTransactionManager();
//         txManager.setEntityManagerFactory(entityManagerFactory(env));
//         return txManager;
//     }
// }
// 
// Path: src/main/java/com/sajo/teamkerbell/vo/MinuteVO.java
// @Data
// @NoArgsConstructor
// public class MinuteVO {
//     @NotNull
//     private String content;
//     @NotNull
//     private LocalDate date;
// 
//     public MinuteVO(String content, LocalDate now) {
//         this.content = content;
//         this.date = now;
//     }
// }
// 
// Path: src/main/java/com/sajo/teamkerbell/vo/ScheduleVO.java
// @Data
// @NoArgsConstructor
// public class ScheduleVO {
//     @NotNull
//     private String content;
//     @NotNull
//     private String place;
//     @NotNull
//     private Time time;
//     @NotNull
//     private LocalDate startDate;
//     @NotNull
//     private LocalDate endDate;
// 
//     public ScheduleVO(String content, String place, Time time, LocalDate startDate, LocalDate endDate) {
//         this.content = content;
//         this.place = place;
//         this.time = time;
//         this.startDate = startDate;
//         this.endDate = endDate;
//     }
// }
// 
// Path: src/main/java/com/sajo/teamkerbell/vo/TodoListVO.java
// @Data
// @NoArgsConstructor
// public class TodoListVO {
//     @NotNull
//     private String content;
//     @NotNull
//     private LocalDate startDate;
//     @NotNull
//     private LocalDate endDate;
//     private Integer userId;
// 
//     public TodoListVO(String content, LocalDate startDate, LocalDate endDate, Integer userId) {
//         this.content = content;
//         this.startDate = startDate;
//         this.endDate = endDate;
//         this.userId = userId;
//     }
// }
// 
// Path: src/main/java/com/sajo/teamkerbell/vo/UserVO.java
// @Data
// @NoArgsConstructor
// public class UserVO {
//     @NotNull
//     @Size(min = 4, max = 10)
//     private String id;
//     @NotNull
//     @Size(min = 4, max = 10)
//     private String pw;
//     @NotNull
//     private String name;
// 
//     public UserVO(String id, String pw, String name) {
//         this.id = id;
//         this.pw = pw;
//         this.name = name;
//     }
// }


import com.sajo.teamkerbell.configuration.JpaConfig;
import com.sajo.teamkerbell.entity.*;
import com.sajo.teamkerbell.repository.*;
import com.sajo.teamkerbell.vo.MinuteVO;
import com.sajo.teamkerbell.vo.ScheduleVO;
import com.sajo.teamkerbell.vo.TodoListVO;
import com.sajo.teamkerbell.vo.UserVO;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Time;
import java.time.LocalDate;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
package com.sajo.teamkerbell;




@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {JpaConfig.class})
@Transactional
@Slf4j
// Path: src/main/java/com/sajo/teamkerbell/configuration/JpaConfig.java
// @Configuration
// @EnableJpaRepositories(basePackages = "com.sajo.teamkerbell.repository")
// @EnableTransactionManagement
// @PropertySource("classpath:spring.properties")
// @EnableAspectJAutoProxy
// @ComponentScan({"com.sajo.teamkerbell.service", "com.sajo.teamkerbell.aspect"})
// public class JpaConfig {
// 
//     @Bean
//     public DataSource dataSource(Environment env) {
//         DriverManagerDataSource dataSource = new DriverManagerDataSource();
//         dataSource.setDriverClassName(Objects.requireNonNull(env.getProperty("app.jdbc.driverClassName")));
//         dataSource.setUrl(env.getProperty("app.jdbc.url"));
//         dataSource.setUsername(env.getProperty("app.jdbc.username"));
//         dataSource.setPassword(env.getProperty("app.jdbc.password"));
//         return dataSource;
//     }
// 
//     @Bean
//     public EntityManagerFactory entityManagerFactory(Environment env) {
//         HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
//         vendorAdapter.setGenerateDdl(true);
//         LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
//         factory.setJpaVendorAdapter(vendorAdapter);
//         factory.setPersistenceProvider(new HibernatePersistenceProvider());
//         factory.setPackagesToScan("com.sajo.teamkerbell.entity");
//         factory.setDataSource(dataSource(env));
//         Properties jpaProperties = new Properties();
//         jpaProperties.put("hibernate.show_sql", true);
//         jpaProperties.put("hibernate.hbm2ddl.auto", "update");
//         jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
//         jpaProperties.put("hibernate.connection.characterEncoding", "utf8");
//         jpaProperties.put("hibernate.connection.CharSet", "utf8");
//         factory.setJpaProperties(jpaProperties);
//         factory.afterPropertiesSet();
//         return factory.getObject();
//     }
// 
//     @Bean
//     public PlatformTransactionManager transactionManager(Environment env) {
//         JpaTransactionManager txManager = new JpaTransactionManager();
//         txManager.setEntityManagerFactory(entityManagerFactory(env));
//         return txManager;
//     }
// }
// 
// Path: src/main/java/com/sajo/teamkerbell/vo/MinuteVO.java
// @Data
// @NoArgsConstructor
// public class MinuteVO {
//     @NotNull
//     private String content;
//     @NotNull
//     private LocalDate date;
// 
//     public MinuteVO(String content, LocalDate now) {
//         this.content = content;
//         this.date = now;
//     }
// }
// 
// Path: src/main/java/com/sajo/teamkerbell/vo/ScheduleVO.java
// @Data
// @NoArgsConstructor
// public class ScheduleVO {
//     @NotNull
//     private String content;
//     @NotNull
//     private String place;
//     @NotNull
//     private Time time;
//     @NotNull
//     private LocalDate startDate;
//     @NotNull
//     private LocalDate endDate;
// 
//     public ScheduleVO(String content, String place, Time time, LocalDate startDate, LocalDate endDate) {
//         this.content = content;
//         this.place = place;
//         this.time = time;
//         this.startDate = startDate;
//         this.endDate = endDate;
//     }
// }
// 
// Path: src/main/java/com/sajo/teamkerbell/vo/TodoListVO.java
// @Data
// @NoArgsConstructor
// public class TodoListVO {
//     @NotNull
//     private String content;
//     @NotNull
//     private LocalDate startDate;
//     @NotNull
//     private LocalDate endDate;
//     private Integer userId;
// 
//     public TodoListVO(String content, LocalDate startDate, LocalDate endDate, Integer userId) {
//         this.content = content;
//         this.startDate = startDate;
//         this.endDate = endDate;
//         this.userId = userId;
//     }
// }
// 
// Path: src/main/java/com/sajo/teamkerbell/vo/UserVO.java
// @Data
// @NoArgsConstructor
// public class UserVO {
//     @NotNull
//     @Size(min = 4, max = 10)
//     private String id;
//     @NotNull
//     @Size(min = 4, max = 10)
//     private String pw;
//     @NotNull
//     private String name;
// 
//     public UserVO(String id, String pw, String name) {
//         this.id = id;
//         this.pw = pw;
//         this.name = name;
//     }
// }


// Path: src/test/java/com/sajo/teamkerbell/RepositoryTest.java
import com.sajo.teamkerbell.configuration.JpaConfig;
import com.sajo.teamkerbell.entity.*;
import com.sajo.teamkerbell.repository.*;
import com.sajo.teamkerbell.vo.MinuteVO;
import com.sajo.teamkerbell.vo.ScheduleVO;
import com.sajo.teamkerbell.vo.TodoListVO;
import com.sajo.teamkerbell.vo.UserVO;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Time;
import java.time.LocalDate;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;

package com.sajo.teamkerbell;




@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {JpaConfig.class})
@Transactional
@Slf4j
public class RepositoryTest {