Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 KB | None | 0 0
  1. package com.bookstore.dao;
  2. import org.junit.Assert;
  3. import org.junit.Before;
  4. import org.junit.Test;
  5. import org.junit.runner.RunWith;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.test.annotation.Rollback;
  8. import org.springframework.test.context.ContextConfiguration;
  9. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  10. import com.bookstore.domain.Book;
  11.  
  12. @RunWith(SpringJUnit4ClassRunner.class)
  13. @ContextConfiguration(locations = { "classpath:**/applicationContext-test.xml"})
  14. public class BookDaoImplTest {
  15.  
  16. private BookDao bookDao;
  17. private Book book;
  18.  
  19. @Before
  20. public void setup() {
  21. book = new Book();
  22. book.setBookName("Some Book Name");
  23. book.setBookCategory("Fiction");
  24. book.setBookPrice(11.11);
  25. // more properties here (not relevant for the question)
  26. }
  27.  
  28. @Test
  29. @Rollback(true)
  30. public void testBookInsert() {
  31. bookDao.bookInsert(book);
  32. final int bookId = book.getBookId();
  33. Book insertedBook = bookDao.getBookById(bookId);
  34. Assert.assertEquals(insertedBook.getBookName(), book.getBookName());
  35. }
  36. }
  37.  
  38. package com.bookstore.dao;
  39. import org.hibernate.Query;
  40. import org.hibernate.Session;
  41. import org.hibernate.SessionFactory;
  42. import org.springframework.beans.factory.annotation.Autowired;
  43. import org.springframework.stereotype.Repository;
  44. import org.springframework.transaction.annotation.Transactional;
  45. import java.util.List;
  46. import com.bookstore.domain.Book;
  47. import com.bookstore.exception.BookNotFoundException;
  48.  
  49. @Repository
  50. @Transactional
  51. public class BookDaoImpl implements BookDao {
  52.  
  53. @Autowired
  54. private SessionFactory sessionFactory;
  55. private Session session = null;
  56.  
  57. public List<Book> getAllBooks() {
  58. session = sessionFactory.getCurrentSession();
  59. Query query = session.createQuery("FROM Book");
  60. List<Book> books = query.list();
  61. session.flush();
  62. return books;
  63. }
  64.  
  65. public Book getBookById(int bookId) {
  66. session = sessionFactory.getCurrentSession();
  67. Book bookById = (Book) session.get(Book.class, bookId);
  68. session.flush();
  69. if (bookById == null) {
  70. throw new BookNotFoundException(bookId);
  71. }
  72. return bookById;
  73. }
  74.  
  75. public void bookInsert(Book book) {
  76. session = sessionFactory.getCurrentSession();
  77. session.saveOrUpdate(book);
  78. session.flush();
  79. }
  80.  
  81. // more methods here (not relevant for the question)
  82. }
  83.  
  84. <?xml version="1.0" encoding="UTF-8"?>
  85. <beans xmlns="http://www.springframework.org/schema/beans"
  86. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  87. xsi:schemaLocation="http://www.springframework.org/schema/beans
  88. http://www.springframework.org/schema/beans/spring-beans.xsd">
  89. <bean id="dataSource"
  90. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  91. <property name="driverClassName" value="org.h2.Driver" />
  92. <property name="url" value="jdbc:h2:tcp://localhost/~/test" />
  93. <property name="username" value="sa" />
  94. <property name="password" value="" />
  95. </bean>
  96. <bean id="sessionFactory"
  97. class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  98. <property name="dataSource" ref="dataSource" />
  99. <property name="hibernateProperties">
  100. <props>
  101. <prop key="hibernate.Dialect">
  102. org.hibernate.dialect.H2Dialect</prop>
  103. <prop key="hibernate.hbm2ddl.auto">update</prop>
  104. <prop key="hibernate.show_sql">false</prop>
  105. <prop key="hibernate.format_sql">true</prop>
  106. </props>
  107. </property>
  108. <property name="packagesToScan">
  109. <list><value>com.bookstore</value></list>
  110. </property>
  111. </bean>
  112. <bean id="transactionManager"
  113. class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  114. <property name="sessionFactory" ref="sessionFactory" />
  115. </bean>
  116. </beans>
  117.  
  118. INFO: HHH000232: Schema update complete
  119. Dec 08, 2016 9:13:11 PM org.springframework.orm.hibernate4.HibernateTransactionManager afterPropertiesSet
  120. INFO: Using DataSource [org.springframework.jdbc.datasource.DriverManagerDataSource@5db250b4] of Hibernate SessionFactory for HibernateTransactionManager
  121. Dec 08, 2016 9:13:11 PM org.springframework.test.context.transaction.TransactionContext startTransaction
  122. INFO: Began transaction (1) for test context [DefaultTestContext@2160e52a testClass = BookDaoImplTest, testInstance = com.bookstore.dao.BookDaoImplTest@29f0802c, testMethod = testBookInsert@BookDaoImplTest, testException = [null], mergedContextConfiguration = [MergedContextConfiguration@32639b12 testClass = BookDaoImplTest, locations = '{classpath:**/applicationContext-test.xml}', classes = '{}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{}', contextCustomizers = set[[empty]], contextLoader = 'org.springframework.test.context.support.DelegatingSmartContextLoader', parent = [null]]]; transaction manager [org.springframework.orm.hibernate4.HibernateTransactionManager@d2387c8]; rollback [true]
  123. Dec 08, 2016 9:13:11 PM org.springframework.test.context.transaction.TransactionContext endTransaction
  124. INFO: Rolled back transaction for test context [DefaultTestContext@2160e52a testClass = BookDaoImplTest, testInstance = com.bookstore.dao.BookDaoImplTest@29f0802c, testMethod = testBookInsert@BookDaoImplTest, testException = java.lang.NullPointerException, mergedContextConfiguration = [MergedContextConfiguration@32639b12 testClass = BookDaoImplTest, locations = '{classpath:**/applicationContext-test.xml}', classes = '{}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{}', contextCustomizers = set[[empty]], contextLoader = 'org.springframework.test.context.support.DelegatingSmartContextLoader', parent = [null]]].
  125. Dec 08, 2016 9:13:11 PM org.springframework.context.support.GenericApplicationContext doClose
  126. INFO: Closing org.springframework.context.support.GenericApplicationContext@100fc185: startup date [Thu Dec 08 21:13:08 GMT 2016]; root of context hierarchy
  127.  
  128. @Autowired
  129. private BookDao bookDao;
  130.  
  131. @Before
  132. public void setup() {
  133. bookDao = new BookDaoImpl();
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement