moreiramota

Untitled

Apr 11th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.26 KB | None | 0 0
  1. package lapr.project.controller;
  2.  
  3. import java.lang.reflect.Constructor;
  4. import java.lang.reflect.InvocationTargetException;
  5. import java.lang.reflect.Modifier;
  6. import java.sql.Timestamp;
  7. import lapr.project.data.RouteDB;
  8. import lapr.project.model.Location;
  9. import lapr.project.model.Route;
  10. import static org.junit.jupiter.api.Assertions.assertEquals;
  11. import static org.junit.jupiter.api.Assertions.assertNull;
  12. import static org.junit.jupiter.api.Assertions.assertThrows;
  13. import static org.junit.jupiter.api.Assertions.assertTrue;
  14. import org.junit.jupiter.api.Test;
  15. import org.mockito.Mock;
  16. import org.mockito.Mockito;
  17. import static org.mockito.Mockito.when;
  18. import org.mockito.MockitoAnnotations;
  19.  
  20. /**
  21. *
  22. * @author morei
  23. */
  24. public class RouteControllerTest {
  25.  
  26. @Mock
  27. private RouteDB db;
  28.  
  29. public RouteControllerTest() {
  30. }
  31.  
  32. @org.junit.jupiter.api.Test
  33. public void testConstructorIsPublic() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
  34. Constructor<RouteController> constructor = RouteController.class.getDeclaredConstructor();
  35. assertEquals(true, Modifier.isPrivate(constructor.getModifiers()));
  36. constructor.setAccessible(true);
  37. constructor.newInstance();
  38. }
  39.  
  40. /**
  41. * Test of createJourney method, of class RouteController.
  42. */
  43. @Test
  44. public void testCreateJourney() {
  45. System.out.println("createJourney");
  46. Timestamp visitDate = new Timestamp(10);
  47. double energy = 10.0;
  48. Route expResult = new Route(visitDate, energy);
  49. RouteController instance = new RouteController(expResult);
  50. Route result = instance.createJourney(visitDate, energy);
  51. assertEquals(expResult, result);
  52. }
  53.  
  54. /**
  55. *
  56. */
  57. @Test
  58. public void testRouteNull() {
  59. RouteController rcont = new RouteController(null);
  60. assertNull(rcont.updateEnergy(0));
  61. assertNull(rcont.updateVistDate(null));
  62. assertNull(rcont.save());
  63. }
  64.  
  65. /**
  66. * Test of updateEnergy method, of class RouteController.
  67. */
  68. @Test
  69. public void testUpdateEnergy() {
  70. System.out.println("updateEnergy");
  71. double energy = 0.0;
  72. Route expResult = new Route(new Timestamp(15), 10);
  73. RouteController instance = new RouteController(expResult);
  74. Route result = instance.updateEnergy(energy);
  75. assertEquals(expResult, result);
  76.  
  77. assertEquals(expResult, instance.updateEnergy(10));
  78. assertTrue(10 == expResult.getEnergy());
  79.  
  80. assertEquals(expResult, instance.updateEnergy(0));
  81. assertTrue(10 == expResult.getEnergy());
  82.  
  83. }
  84.  
  85. /**
  86. * Test of updateVistDate method, of class RouteController.
  87. */
  88. @Test
  89. public void testUpdateVistDate() {
  90. System.out.println("updateVistDate");
  91. Timestamp visitDate = new Timestamp(10);
  92. Route expResult = new Route(new Timestamp(15), 10);
  93. RouteController instance = new RouteController(expResult);
  94. Route result = instance.updateVistDate(visitDate);
  95. assertEquals(expResult, result);
  96. assertEquals(visitDate, expResult.getVisitDate());
  97. }
  98.  
  99. /**
  100. * Test of createJourney method, of class RouteController.
  101. */
  102. @Test
  103. public void testCreateJourney_4args() {
  104. System.out.println("createJourney");
  105. int idReservation = 1;
  106. Timestamp visitDate = new Timestamp(10);
  107. double energy = 0.0;
  108. Route expResult = new Route(new Location(0, 0, 0), idReservation, visitDate, energy);
  109. RouteController instance = new RouteController(expResult);
  110. Route result = instance.createJourney(new Location(0, 0, 0), idReservation, visitDate, energy);
  111. assertEquals(expResult, result);
  112. }
  113.  
  114. @Test
  115. public void updateEnergyBiggerThenZero() {
  116. Route instance2 = new Route(new Location(0, 0, 0), 1, new Timestamp(10), 1.0f);
  117. RouteController inst = new RouteController(instance2);
  118. double price2 = 10;
  119. inst.updateEnergy(price2);
  120. assertEquals(price2, instance2.getEnergy());
  121. }
  122.  
  123. @Test
  124. public void updateEnergyLessZero() {
  125. Route instance2 = new Route(new Location( 0, 0, 0), 1, new Timestamp(10), 1.0f);
  126. RouteController inst = new RouteController(instance2);
  127. int price2 = -1;
  128. inst.updateEnergy(price2);
  129. assertEquals(1, instance2.getEnergy());
  130. }
  131.  
  132. @Test
  133. public void testDBRemove() {
  134. MockitoAnnotations.initMocks(this);
  135. Route.setDB(db);
  136. //TEST REMOVE
  137. Route route = new Route();
  138. when(db.getRoute(new Location(0,0,0), 0)).thenReturn(route);
  139. Mockito.doNothing().when(db).removeRoute(new Location(0,0,0), 0);
  140. assertEquals(RouteController.remove(new Location(0,0,0), 0), route);
  141.  
  142. //ENSURE DELETE IS CALLED
  143. Mockito.doThrow(new IndexOutOfBoundsException()).when(db).removeRoute(new Location(0,0,0), 0);
  144.  
  145. IndexOutOfBoundsException exceptionGet = assertThrows(IndexOutOfBoundsException.class, () -> {
  146. RouteController.remove(new Location(0,0,0), 0);
  147. });
  148. assertTrue(exceptionGet.getMessage()==null);
  149.  
  150. //TEST NO ELEMENT FOUND
  151. when(db.getRoute(new Location(0,0,0), 0)).thenThrow(new IllegalArgumentException());
  152. assertTrue(RouteController.remove(new Location(0,0,0), 0) == null);
  153.  
  154. Route.setDB(null);
  155. assertTrue(Route.getCurrentDB()==null);
  156. RouteController rc=new RouteController(route);
  157. assertTrue(Route.getCurrentDB()!=null);
  158. }
  159.  
  160. @Test
  161. public void testDBSave() {
  162. MockitoAnnotations.initMocks(this);
  163. //TEST REMOVE
  164. Route route = new Route();
  165. RouteController rc=new RouteController(route);
  166. //ENSURE SAVE IS CALLED
  167. Route.setDB(db);
  168.  
  169. Mockito.doThrow(new IndexOutOfBoundsException()).when(db).updateRoute(route);
  170. IndexOutOfBoundsException exceptionGet = assertThrows(IndexOutOfBoundsException.class, () -> {
  171. rc.save();
  172. });
  173. assertTrue(exceptionGet.getMessage()==null);
  174.  
  175. Mockito.doNothing().when(db).updateRoute(route);
  176. assertTrue(rc.save().equals(route));
  177. }
  178. }
Advertisement
Add Comment
Please, Sign In to add comment