jayblanc

Untitled

Oct 1st, 2016
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. package org.filestore.ejb.file;
  2.  
  3. import static org.junit.Assert.assertEquals;
  4. import static org.junit.Assert.assertNotNull;
  5. import static org.junit.Assert.fail;
  6.  
  7. import java.sql.DriverManager;
  8. import java.sql.SQLNonTransientConnectionException;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. import java.util.logging.Level;
  12. import java.util.logging.Logger;
  13.  
  14. import javax.persistence.EntityManager;
  15. import javax.persistence.EntityManagerFactory;
  16. import javax.persistence.Persistence;
  17. import javax.persistence.RollbackException;
  18.  
  19. import org.filestore.ejb.file.entity.FileItem;
  20. import org.junit.AfterClass;
  21. import org.junit.BeforeClass;
  22. import org.junit.Test;
  23.  
  24. public class FileServiceTest {
  25.  
  26. private static Logger LOGGER = Logger.getLogger(FileServiceTest.class.getName());
  27.  
  28. private static EntityManagerFactory factory;
  29. private static EntityManager em;
  30. private static FileService service;
  31.  
  32. @BeforeClass
  33. public static void setUp() throws Exception {
  34. try {
  35. LOGGER.log(Level.INFO, "Starting memory database for unit tests");
  36. Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
  37. DriverManager.getConnection("jdbc:derby:memory:unit-testing-jpa;create=true").close();
  38. } catch (Exception e) {
  39. LOGGER.log(Level.SEVERE, "unable to start database", e);
  40. fail("Exception during database startup.");
  41. }
  42. try {
  43. LOGGER.log(Level.INFO, "Building Hibernate EntityManager for unit tests");
  44. factory = Persistence.createEntityManagerFactory("testPU");
  45. em = factory.createEntityManager();
  46. } catch (Exception ex) {
  47. ex.printStackTrace();
  48. fail("Exception during JPA EntityManager instanciation.");
  49. }
  50. LOGGER.log(Level.INFO, "Building FileService");
  51. service = new FileServiceBean();
  52. ((FileServiceBean)service).em = em;
  53. }
  54.  
  55. @AfterClass
  56. public static void tearDown() throws Exception {
  57. LOGGER.log(Level.INFO, "Shuting Hibernate JPA layer.");
  58. if (em != null) {
  59. em.close();
  60. }
  61. if (factory != null) {
  62. factory.close();
  63. }
  64. LOGGER.log(Level.INFO, "Stopping memory database.");
  65. try {
  66. DriverManager.getConnection("jdbc:derby:memory:unit-testing-jpa;shutdown=true").close();
  67. } catch (SQLNonTransientConnectionException ex) {
  68. if (ex.getErrorCode() != 45000) {
  69. throw ex;
  70. }
  71. }
  72. }
  73.  
  74. @Test
  75. public void testPostAndDeleteFile() throws FileServiceException {
  76. try {
  77. em.getTransaction().begin();
  78.  
  79. List<String> receivers = new ArrayList<String> ();
  80. receivers.add("sheldon@test.com");
  81. receivers.add("rajesh@test.com");
  82. receivers.add("penny@test.com");
  83. String key = service.postFile("jayblanc@gmail.com", receivers, "Bazinga", "The.Big.Bang.Theory.S06E01.mkv", "this should be a uuid");
  84. assertNotNull(key);
  85.  
  86. FileItem item = service.getFile(key);
  87. assertEquals("jayblanc@gmail.com", item.getOwner());
  88. assertEquals("Bazinga", item.getMessage());
  89. assertEquals("The.Big.Bang.Theory.S06E01.mkv", item.getName());
  90.  
  91. service.deleteFile(key);
  92. try {
  93. item = service.getFile(key);
  94. fail("The file should not exists anymore !!");
  95. } catch ( FileServiceException e ) {
  96. //
  97. }
  98.  
  99. em.getTransaction().commit();
  100. } catch (IllegalStateException | RollbackException e) {
  101. em.getTransaction().rollback();
  102. LOGGER.log(Level.SEVERE, "error during testing file service", e);
  103. fail("Exception during testing file service");
  104. }
  105. }
  106.  
  107. }
Add Comment
Please, Sign In to add comment