Advertisement
Guest User

Untitled

a guest
Dec 1st, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. @Configuration
  2. @EnableJpaRepositories(basePackages = {
  3. "com.me"
  4. })
  5. @EnableTransactionManagement
  6. @ComponentScan({ "com.websystique.spring.configuration" })
  7. @PropertySource(value = { "classpath:application.properties" })
  8. public class HibernateConfiguration {
  9.  
  10. @Autowired
  11. protected Environment environment;
  12.  
  13. /**
  14. * Creates LocalContainerEntityManagerFactoryBean, sets it's DataSource,
  15. * packages to scan, JpaVendorAdapter and it's properties
  16. *
  17. * @return LocalContainerEntityManagerFactoryBean
  18. */
  19. @Bean
  20. public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) {
  21. LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
  22. entityManagerFactory.setDataSource(dataSource);
  23. entityManagerFactory.setPackagesToScan(new String[] { "com.altkom.model" });
  24. JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
  25. entityManagerFactory.setJpaVendorAdapter(vendorAdapter);
  26. entityManagerFactory.setJpaProperties(hibernateProperties());
  27. return entityManagerFactory;
  28. }
  29.  
  30. /**
  31. * Creates DataSource object, sets it's driver, url, username and password
  32. * basing on properties from application.properties file
  33. *
  34. * @return DataSource
  35. */
  36. @Bean
  37. public DataSource dataSource() {
  38. BasicDataSource dataSource = new BasicDataSource();
  39. dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
  40. dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
  41. dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
  42. dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
  43. return dataSource;
  44. }
  45.  
  46. /**
  47. * Creates JpaTransactionManager and sets it's entityManagerFactory
  48. *
  49. * @param entityManagerFactory
  50. * param for method setEntityManagerFactory()
  51. * @return JpaTransactionManager
  52. */
  53. @Bean
  54. @Autowired
  55. public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
  56. JpaTransactionManager transactionManager = new JpaTransactionManager();
  57. transactionManager.setEntityManagerFactory(entityManagerFactory);
  58. return transactionManager;
  59. }
  60.  
  61. @Bean
  62. public DefaultLobHandler lobHandler() {
  63. DefaultLobHandler lobHandler = new DefaultLobHandler();
  64. return lobHandler;
  65. }
  66.  
  67. /**
  68. * Gets Hibernate properties from application.properties file
  69. *
  70. * @return Properties
  71. */
  72. private Properties hibernateProperties() {
  73. Properties properties = new Properties();
  74. properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
  75. properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
  76. properties.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql"));
  77. properties.put("hibernate.hbm2ddl.auto", environment.getRequiredProperty("hibernate.hbm2ddl.auto"));
  78. return properties;
  79. }
  80.  
  81. }
  82.  
  83. @Configuration
  84. @PropertySource(value = { "classpath:test.properties" })
  85. public class TestConfiguration extends HibernateConfiguration {
  86.  
  87. @Bean(destroyMethod = "shutdown")
  88. public DataSource dataSource() {
  89. EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
  90. EmbeddedDatabase dataBase = builder.setType(EmbeddedDatabaseType.H2).addScript("classpath:import.sql").build();
  91. return dataBase;
  92. }
  93.  
  94. }
  95.  
  96. jdbc.driverClassName = org.h2.Driver
  97. jdbc.url = jdbc:h2:me:dataSource
  98. jdbc.username = sa
  99. jdbc.password =
  100. hibernate.dialect = org.hibernate.dialect.H2Dialect
  101. hibernate.show_sql = true
  102. hibernate.format_sql = true
  103. hibernate.hbm2ddl.auto = create
  104.  
  105. @ContextConfiguration(classes = { TestConfiguration.class })
  106. @Transactional
  107. public class BorrowerServiceTest extends AbstractTestNGSpringContextTests {
  108.  
  109. @Autowired
  110. DataSource dataSource;
  111.  
  112. @PersistenceContext
  113. EntityManager entityManager;
  114.  
  115. @Mock
  116. BorrowerDAOImpl borrowerDAO;
  117.  
  118. @InjectMocks
  119. BorrowerService borrowerService = new BorrowerService();
  120.  
  121. @BeforeMethod
  122. @BeforeClass
  123. public void setUp() {
  124. MockitoAnnotations.initMocks(this);
  125. }
  126.  
  127. @Test
  128. @Transactional
  129. public void getBorrowersTest() {
  130. List<Borrower> borrowerList = borrowerService.getBorrowers();
  131. System.out.println(borrowerList);
  132. Assert.assertEquals(borrowerService.getBorrowers(), borrowerList.get(0));
  133. }
  134.  
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement