Advertisement
jayblanc

File Service Test

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