Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.33 KB | None | 0 0
  1. package com.fractals.controllers;
  2.  
  3. import com.fractals.backingbeans.ShoppingCart;
  4. import com.fractals.backingbeans.UserBacking;
  5. import com.fractals.beans.Album;
  6. import com.fractals.beans.Artist;
  7. import com.fractals.beans.Track;
  8. import com.fractals.beanvalidators.EmailCheck;
  9. import com.fractals.controllers.exceptions.IllegalOrphanException;
  10. import com.fractals.controllers.exceptions.RollbackFailureException;
  11. import com.fractals.converters.LocalDateAttributeConverter;
  12. import com.fractals.jsf.util.PaginationHelper;
  13. import com.fractals.rss.FeedMessage;
  14. import com.fractals.utilities.DatabaseSeedManager;
  15. import com.fractals.utilities.SecurityHelper;
  16. import org.junit.runner.RunWith;
  17. import org.jboss.arquillian.container.test.api.Deployment;
  18. import org.jboss.arquillian.junit.Arquillian;
  19. import org.jboss.shrinkwrap.api.ShrinkWrap;
  20. import org.jboss.shrinkwrap.api.asset.EmptyAsset;
  21. import org.jboss.shrinkwrap.api.spec.WebArchive;
  22. import org.jboss.shrinkwrap.resolver.api.maven.Maven;
  23. import org.junit.Before;
  24. import org.junit.Test;
  25. import javax.annotation.Resource;
  26. import javax.inject.Inject;
  27. import javax.sql.DataSource;
  28. import java.io.*;
  29. import java.sql.SQLException;
  30.  
  31. import static org.assertj.core.api.Assertions.assertThat;
  32. import org.junit.Ignore;
  33.  
  34. @Ignore
  35. /**
  36. * Tests ShoppingCart backing bean.
  37. * @author Aline Shulzhenko
  38. */
  39. @RunWith(Arquillian.class)
  40. public class ShoppingCartTest {
  41. @Deployment
  42. public static WebArchive deploy() {
  43.  
  44. //Use an alternative to the JUnit assert library called AssertJ
  45. final File[] dependencies = Maven
  46. .resolver()
  47. .loadPomFromFile("pom.xml")
  48. .resolve("org.assertj:assertj-core").withoutTransitivity()
  49. .asFile();
  50.  
  51. // For testing Arquillian prefers a resources.xml file over a context.xml
  52. // Actual file name is resources-mysql-ds.xml in the test/resources folder
  53. final WebArchive webArchive = ShrinkWrap.create(WebArchive.class, "test.war")
  54. .setWebXML(new File("src/main/webapp/WEB-INF/web.xml"))
  55. .addPackage(SearchJPAController.class.getPackage())
  56. .addPackage(Album.class.getPackage())
  57. .addPackage(UserBacking.class.getPackage())
  58. .addPackage(EmailCheck.class.getPackage())
  59. .addPackage(RollbackFailureException.class.getPackage())
  60. .addPackage(IllegalOrphanException.class.getPackage())
  61. .addPackage(PaginationHelper.class.getPackage())
  62. .addPackage(FeedMessage.class.getPackage())
  63. .addPackage(LocalDateAttributeConverter.class.getPackage())
  64. .addPackage(SecurityHelper.class.getPackage())
  65. .addPackage(DatabaseSeedManager.class.getPackage())
  66. .addPackage(org.primefaces.model.StreamedContent.class.getPackage())
  67. .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
  68. .addAsWebInfResource(new File("src/main/webapp/WEB-INF/glassfish-resources.xml"), "glassfish-resources.xml")
  69. .addAsResource(new File("src/main/resources/META-INF/persistence.xml"), "META-INF/persistence.xml")
  70. .addAsResource("schema.sql")
  71. .addAsResource("setup.sql")
  72. .addAsResource("Bundle.properties")
  73. .addAsLibraries(dependencies);
  74.  
  75. return webArchive;
  76. }
  77.  
  78. @Inject
  79. private ShoppingCart cart;
  80. @Inject
  81. private AlbumJpaController albumJpa;
  82. @Inject
  83. private TrackJpaController trackJpa;
  84. @Inject
  85. private ArtistJpaController artistJpa;
  86.  
  87. @Resource(name = "java:app/jdbc/musicstore")
  88. private DataSource ds;
  89.  
  90. private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger("SearchJPAController.class");
  91.  
  92. @Test
  93. public void getAllTracksTest() throws SQLException {
  94. cart.add(trackJpa.findTrack(1));
  95. cart.add(trackJpa.findTrack(2));
  96. cart.add(trackJpa.findTrack(3));
  97. assertThat(cart.getAllTracks()).hasSize(3);
  98. }
  99.  
  100. @Test
  101. public void getAllAlbumsTest() throws SQLException {
  102. cart.add(albumJpa.findAlbum(1));
  103. cart.add(albumJpa.findAlbum(2));
  104. assertThat(cart.getAllAlbums()).hasSize(2);
  105. }
  106.  
  107. @Test
  108. public void totalItemsTest() throws SQLException {
  109. cart.add(albumJpa.findAlbum(1));
  110. cart.add(trackJpa.findTrack(2));
  111. cart.add(trackJpa.findTrack(3));
  112. assertThat(cart.totalItems()).isEqualTo(3);
  113. }
  114.  
  115. @Test
  116. public void getArtistTest() throws SQLException {
  117. Artist artist = artistJpa.findArtist(1);
  118. Album album = albumJpa.findAlbum(1);
  119. cart.add(album);
  120. cart.add(albumJpa.findAlbum(2));
  121. assertThat(cart.getArtist(album)).isEqualTo(artist);
  122. }
  123.  
  124. @Test
  125. public void getArtistNullTest() throws SQLException {
  126. cart.add(albumJpa.findAlbum(1));
  127. cart.add(albumJpa.findAlbum(2));
  128. assertThat(cart.getArtist(null)).isNull();
  129. }
  130.  
  131. @Test
  132. public void getCoverTest() throws SQLException {
  133. Album album = albumJpa.findAlbum(11);
  134. cart.add(album);
  135. cart.add(albumJpa.findAlbum(2));
  136. cart.add(trackJpa.findTrack(3));
  137. assertThat(cart.getCover(album)).isEqualTo("led_zeppelin_iii.jpg");
  138. }
  139.  
  140. @Test
  141. public void getTypeTest() throws SQLException {
  142. Album album = albumJpa.findAlbum(11);
  143. cart.add(album);
  144. cart.add(albumJpa.findAlbum(2));
  145. cart.add(trackJpa.findTrack(3));
  146. assertThat(cart.getType(album)).isEqualTo("Album");
  147. }
  148.  
  149. @Test
  150. public void getDetailsLinkTest() throws SQLException {
  151. Album album = albumJpa.findAlbum(11);
  152. cart.add(album);
  153. cart.add(albumJpa.findAlbum(2));
  154. cart.add(trackJpa.findTrack(3));
  155. assertThat(cart.getDetailsLink(album)).isEqualTo("Album.xhtml");
  156. }
  157.  
  158. @Test
  159. public void emptyTest() throws SQLException {
  160. cart.add(albumJpa.findAlbum(11));
  161. cart.add(albumJpa.findAlbum(2));
  162. cart.add(trackJpa.findTrack(3));
  163. cart.add(trackJpa.findTrack(1));
  164. cart.add(trackJpa.findTrack(2));
  165. cart.add(trackJpa.findTrack(27));
  166. cart.empty();
  167. assertThat(cart.totalItems()).isEqualTo(0);
  168. }
  169.  
  170. @Test
  171. public void addTest() throws SQLException {
  172. Album album = albumJpa.findAlbum(2);
  173. Track track = trackJpa.findTrack(3);
  174. cart.add(albumJpa.findAlbum(11));
  175. cart.add(album);
  176. cart.add(track);
  177. cart.add(track);
  178. cart.add(track);
  179. cart.add(album);
  180. assertThat(cart.totalItems()).isEqualTo(3);
  181. }
  182.  
  183. @Test
  184. public void addAlbumWithTracksTest() throws SQLException {
  185. //add two tracks that form one album will add this album to the cart
  186. cart.add(trackJpa.findTrack(33));
  187. cart.add(trackJpa.findTrack(8));
  188. assertThat(cart.getAllAlbums()).hasSize(1);
  189. assertThat(cart.getAllTracks()).hasSize(0);
  190. }
  191.  
  192. @Test
  193. public void addTrackFirstThenSameAlbumTest() throws SQLException {
  194. //track should be deleted since the whole album is added to the cart
  195. cart.add(trackJpa.findTrack(1));
  196. cart.add(albumJpa.findAlbum(1));
  197. assertThat(cart.getAllAlbums()).hasSize(1);
  198. assertThat(cart.getAllTracks()).hasSize(0);
  199. }
  200.  
  201. @Test
  202. public void removeTest() throws SQLException {
  203. Album album = albumJpa.findAlbum(2);
  204. Track track = trackJpa.findTrack(3);
  205. cart.add(albumJpa.findAlbum(11));
  206. cart.add(album);
  207. cart.add(track);
  208. cart.remove(album);
  209. cart.remove(track);
  210. assertThat(cart.totalItems()).isEqualTo(1);
  211. }
  212.  
  213. @Test
  214. public void isEmptyTest() throws SQLException {
  215. Album album = albumJpa.findAlbum(2);
  216. Track track = trackJpa.findTrack(3);
  217. cart.add(album);
  218. cart.add(track);
  219. cart.remove(album);
  220. cart.remove(track);
  221. assertThat(cart.isEmpty()).isTrue();
  222. }
  223.  
  224.  
  225. /**
  226. * Creates the appropriate tables and seeds the database with test values.
  227. */
  228. @Before
  229. public void seedDatabase() {
  230. DatabaseSeedManager db = new DatabaseSeedManager(ds);
  231. db.seed();
  232. }
  233. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement