Advertisement
Guest User

Untitled

a guest
Dec 6th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.99 KB | None | 0 0
  1. package rs.ac.uns.ftn.ktsnvt.service.unit;
  2.  
  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.boot.test.context.SpringBootTest;
  8. import org.springframework.boot.test.mock.mockito.MockBean;
  9. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  10. import org.springframework.test.annotation.Rollback;
  11. import org.springframework.test.context.ActiveProfiles;
  12. import org.springframework.test.context.junit4.SpringRunner;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import rs.ac.uns.ftn.ktsnvt.exception.BadRequestException;
  15. import rs.ac.uns.ftn.ktsnvt.exception.NotFoundException;
  16. import rs.ac.uns.ftn.ktsnvt.model.entity.Account;
  17. import rs.ac.uns.ftn.ktsnvt.model.entity.Administrator;
  18. import rs.ac.uns.ftn.ktsnvt.repository.AccountRepository;
  19. import rs.ac.uns.ftn.ktsnvt.repository.AdministratorRepository;
  20. import rs.ac.uns.ftn.ktsnvt.service.AdministratorService;
  21.  
  22. import static org.junit.Assert.assertEquals;
  23. import static org.junit.Assert.assertNotNull;
  24. import static org.junit.Assert.assertTrue;
  25. import static org.mockito.BDDMockito.given;
  26.  
  27. /**
  28. * Created by Ivana Zeljkovic on 28/11/2017.
  29. */
  30. @RunWith(SpringRunner.class)
  31. @SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT)
  32. public class AdministratorServiceUnitTest {
  33.  
  34. @Autowired
  35. private AdministratorService administratorService;
  36.  
  37. @MockBean
  38. private AdministratorRepository administratorRepository;
  39.  
  40.  
  41. @Before
  42. public void setUp() {
  43. // ADMINISTRATOR, ACCOUNT
  44. Account account = new Account("ivana", "ivana");
  45. Administrator administrator = new Administrator("Ivana", "Zeljkovic", account);
  46.  
  47. given(
  48. this.administratorRepository.findOne(new Long(99))
  49. ).willReturn(
  50. administrator
  51. );
  52.  
  53. given(
  54. this.administratorRepository.findOne(new Long(200))
  55. ).willReturn(
  56. null
  57. );
  58. }
  59.  
  60. @Test
  61. public void testFindOne() {
  62. /*
  63. * Test proverava ispravnost rada metode findOne servisa AdministratorService
  64. * (dobavljanje administrator objekta na osnovu ID-a)
  65. * u slucaju kada postoji administrator sa zadatim ID-em
  66. * */
  67.  
  68. /*
  69. administrator sa ID-em = 99 ima podatke:
  70. ime = Ivana,
  71. prezime = Zeljkovic,
  72. korisnicko ime = ivana
  73. */
  74. Administrator administrator = this.administratorService.findOne(new Long(99));
  75.  
  76. assertNotNull(administrator);
  77. assertEquals("ivana", administrator.getAccount().getUsername());
  78. assertEquals("Ivana", administrator.getFirstName());
  79. assertEquals("Zeljkovic", administrator.getLastName());
  80. }
  81.  
  82. @Test(expected = NotFoundException.class)
  83. public void testFindOneNonexistent() {
  84. /*
  85. * Test proverava ispravnost rada metode findOne servisa AdministratorService
  86. * (dobavljanje administrator objekta na osnovu ID-a)
  87. * u slucaju kada ne postoji administrator sa zadatim ID-em - ocekivano NotFoundException
  88. * */
  89.  
  90. // administrator sa ID-em = 200 ne postoji
  91. Administrator administrator = this.administratorService.findOne(new Long(200));
  92. }
  93.  
  94. @Test
  95. public void testCheckPasswordUpdate() {
  96. /*
  97. * Test proverava ispravnost rada metode checkPasswordUpdate servisa AdministratorService
  98. * (provera prava izmene trenutne vrednosti lozinke)
  99. * u slucaju kada su vrednosti trenutne lozinke i nove lozinke ispravne (nisu null, trenutna vrednost lozinke
  100. * odgovara vrednosti lozinke koja je prezistenta)
  101. * */
  102.  
  103. /*
  104. administrator sa ID-em = 99 ima sledece podatke:\
  105. ime = Ivana,
  106. prezime = Zeljkovic,
  107. korisnicko ime = ivana,
  108. lozinka = ivana
  109. */
  110. Administrator administrator = this.administratorService.findOne(new Long(99));
  111. String current_password = "ivana";
  112. String new_password = "novi";
  113.  
  114. boolean password_changed = this.administratorService.checkPasswordUpdate(administrator, current_password, new_password);
  115.  
  116. BCryptPasswordEncoder crypt = new BCryptPasswordEncoder();
  117. boolean password_matched = crypt.matches(new_password, administrator.getAccount().getPassword());
  118.  
  119. assertTrue(password_changed);
  120. assertTrue(password_matched);
  121. }
  122.  
  123. @Test(expected = BadRequestException.class)
  124. public void testCheckPasswordUpdateMissingNewPass() {
  125. /*
  126. * Test proverava ispravnost rada metode checkPasswordUpdate servisa AdministratorService
  127. * (provera prava izmene trenutne vrednosti lozinke)
  128. * u slucaju kada je vrednost trenutne lozinke ispravna (nije null i odgovara vrednosti lozinke koja je prezistenta)
  129. * i nedostaje vrednost nove lozinke - ocekivano BadRequestException
  130. * */
  131.  
  132. /*
  133. administrator sa ID-em = 99 ima sledece podatke:
  134. ime = Ivana,
  135. prezime = Zeljkovic,
  136. korisnicko ime = ivana,
  137. lozinka = ivana
  138. */
  139. Administrator administrator = this.administratorService.findOne(new Long(99));
  140. String current_password = "ivana";
  141.  
  142. boolean password_changed = this.administratorService.checkPasswordUpdate(administrator, current_password, null);
  143. }
  144.  
  145. @Test(expected = BadRequestException.class)
  146. public void testCheckPasswordUpdateMissingCurrentPass() {
  147. /*
  148. * Test proverava ispravnost rada metode checkPasswordUpdate servisa AdministratorService
  149. * (provera prava izmene trenutne vrednosti lozinke)
  150. * u slucaju kada je vrednost nove lozinke ispravna (nije null)
  151. * i nedostaje vrednost trenutne lozinke - ocekivano BadRequestException
  152. * */
  153.  
  154. /*
  155. administrator sa ID-em = 99 ima sledece podatke:
  156. ime = Ivana,
  157. prezime = Zeljkovic,
  158. korisnicko ime = ivana,
  159. lozinka = ivana
  160. */
  161. Administrator administrator = this.administratorService.findOne(new Long(99));
  162. String new_password = "novi";
  163.  
  164. boolean password_changed = this.administratorService.checkPasswordUpdate(administrator, null, new_password);
  165. }
  166.  
  167. @Test(expected = BadRequestException.class)
  168. public void testCheckPasswordUpdateInvalidCurrentPass() {
  169. /*
  170. * Test proverava ispravnost rada metode checkPasswordUpdate servisa AdministratorService
  171. * (provera prava izmene trenutne vrednosti lozinke)
  172. * u slucaju kada je vrednost trenutne lozinke neispravna (nije null ali ne odgovara vrednosti lozinke koja je prezistenta)
  173. * i vrednost nove lozinke ispravna (nije null) - ocekivano BadRequestException
  174. * */
  175.  
  176. /*
  177. administrator sa ID-em = 99 ima sledece podatke:
  178. ime = Ivana,
  179. prezime = Zeljkovic,
  180. username = ivana,
  181. password = ivana
  182. */
  183. Administrator administrator = this.administratorService.findOne(new Long(99));
  184. String current_password = "nevalidno";
  185. String new_password = "novi";
  186.  
  187. boolean password_changed = this.administratorService.checkPasswordUpdate(administrator, current_password, new_password);
  188. }
  189.  
  190. @Test(expected = NullPointerException.class)
  191. public void testCheckPermissionForCurrentAdmin() {
  192. /*
  193. * Test proverava ispravnost rada metode checkPermissionForCurrentAdmin servisa AdministratorService
  194. * (provera poklapanja ID-a trenutno logovanog administratora i prosledjenog ID-a)
  195. * u slucaju kada nema trenutno ulogovanog administratora na nivou aplikacije - ocekivano NullPointerException
  196. * */
  197.  
  198. // trenutno nema administratora na sesiji
  199. this.administratorService.checkPermissionForCurrentAdmin(new Long(99));
  200. }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement