PageRenderTime 51ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/support/cas-server-support-pm/src/test/java/org/apereo/cas/pm/impl/JsonResourcePasswordManagementServiceTests.java

https://github.com/frett/cas
Java | 118 lines | 99 code | 13 blank | 6 comment | 0 complexity | f45a2a8a50c8b246c0c65db69f07cbfe MD5 | raw file
  1. package org.apereo.cas.pm.impl;
  2. import org.apereo.cas.audit.spi.config.CasCoreAuditConfiguration;
  3. import org.apereo.cas.authentication.credential.UsernamePasswordCredential;
  4. import org.apereo.cas.config.CasCoreAuthenticationConfiguration;
  5. import org.apereo.cas.config.CasCoreAuthenticationHandlersConfiguration;
  6. import org.apereo.cas.config.CasCoreAuthenticationMetadataConfiguration;
  7. import org.apereo.cas.config.CasCoreAuthenticationPolicyConfiguration;
  8. import org.apereo.cas.config.CasCoreAuthenticationPrincipalConfiguration;
  9. import org.apereo.cas.config.CasCoreAuthenticationSupportConfiguration;
  10. import org.apereo.cas.config.CasCoreHttpConfiguration;
  11. import org.apereo.cas.config.CasCoreServicesAuthenticationConfiguration;
  12. import org.apereo.cas.config.CasCoreServicesConfiguration;
  13. import org.apereo.cas.config.CasCoreTicketCatalogConfiguration;
  14. import org.apereo.cas.config.CasCoreTicketsConfiguration;
  15. import org.apereo.cas.config.CasCoreUtilConfiguration;
  16. import org.apereo.cas.config.CasCoreWebConfiguration;
  17. import org.apereo.cas.config.CasPersonDirectoryConfiguration;
  18. import org.apereo.cas.config.support.CasWebApplicationServiceFactoryConfiguration;
  19. import org.apereo.cas.pm.PasswordChangeBean;
  20. import org.apereo.cas.pm.PasswordManagementService;
  21. import org.apereo.cas.pm.PasswordValidationService;
  22. import org.apereo.cas.pm.config.PasswordManagementConfiguration;
  23. import lombok.val;
  24. import org.junit.ClassRule;
  25. import org.junit.Rule;
  26. import org.junit.Test;
  27. import org.springframework.beans.factory.annotation.Autowired;
  28. import org.springframework.beans.factory.annotation.Qualifier;
  29. import org.springframework.boot.test.context.SpringBootTest;
  30. import org.springframework.cloud.autoconfigure.RefreshAutoConfiguration;
  31. import org.springframework.test.context.TestPropertySource;
  32. import org.springframework.test.context.junit4.rules.SpringClassRule;
  33. import org.springframework.test.context.junit4.rules.SpringMethodRule;
  34. import static org.junit.Assert.*;
  35. /**
  36. * This is {@link JsonResourcePasswordManagementServiceTests}.
  37. *
  38. * @author Misagh Moayyed
  39. * @since 5.2.0
  40. */
  41. @SpringBootTest(classes = {RefreshAutoConfiguration.class,
  42. CasCoreAuthenticationPrincipalConfiguration.class,
  43. CasCoreAuthenticationPolicyConfiguration.class,
  44. CasCoreAuthenticationMetadataConfiguration.class,
  45. CasCoreAuthenticationSupportConfiguration.class,
  46. CasCoreAuthenticationHandlersConfiguration.class,
  47. CasWebApplicationServiceFactoryConfiguration.class,
  48. CasCoreHttpConfiguration.class,
  49. CasCoreAuditConfiguration.class,
  50. CasCoreTicketCatalogConfiguration.class,
  51. CasCoreTicketsConfiguration.class,
  52. CasPersonDirectoryConfiguration.class,
  53. CasCoreAuthenticationConfiguration.class,
  54. CasCoreServicesAuthenticationConfiguration.class,
  55. CasCoreServicesConfiguration.class,
  56. CasCoreWebConfiguration.class,
  57. CasWebApplicationServiceFactoryConfiguration.class,
  58. CasCoreUtilConfiguration.class,
  59. PasswordManagementConfiguration.class})
  60. @TestPropertySource(locations = {"classpath:/pm.properties"})
  61. public class JsonResourcePasswordManagementServiceTests {
  62. @ClassRule
  63. public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();
  64. @Rule
  65. public final SpringMethodRule springMethodRule = new SpringMethodRule();
  66. @Autowired
  67. @Qualifier("passwordChangeService")
  68. private PasswordManagementService passwordChangeService;
  69. @Autowired
  70. @Qualifier("passwordValidationService")
  71. private PasswordValidationService passwordValidationService;
  72. @Test
  73. public void verifyUserEmailCanBeFound() {
  74. val email = passwordChangeService.findEmail("casuser");
  75. assertEquals("casuser@example.org", email);
  76. }
  77. @Test
  78. public void verifyUserEmailCanNotBeFound() {
  79. val email = passwordChangeService.findEmail("casusernotfound");
  80. assertNull(email);
  81. }
  82. @Test
  83. public void verifyUserQuestionsCanBeFound() {
  84. val questions = passwordChangeService.getSecurityQuestions("casuser");
  85. assertEquals(2, questions.size());
  86. }
  87. @Test
  88. public void verifyUserPasswordChange() {
  89. val c = new UsernamePasswordCredential("casuser", "password");
  90. val bean = new PasswordChangeBean();
  91. bean.setConfirmedPassword("newPassword");
  92. bean.setPassword("newPassword");
  93. val res = passwordChangeService.change(c, bean);
  94. assertTrue(res);
  95. }
  96. @Test
  97. public void verifyPasswordValidationService() {
  98. val c = new UsernamePasswordCredential("casuser", "password");
  99. val bean = new PasswordChangeBean();
  100. bean.setConfirmedPassword("Test@1234");
  101. bean.setPassword("Test@1234");
  102. val isValid = passwordValidationService.isValid(c, bean);
  103. assertTrue(isValid);
  104. }
  105. }