Spring Test: модульный тест для успешной аутентификации - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть служба аутентификации, Response и Provider (класс Java), которая имеет функцию аутентификации, которая отвечает за получение authenticatedToken после предоставления действительных имени пользователя / паролей и grant_type.

Ниже приведен Класс обслуживания какой метод аутентификации для внешней службы аутентификации.

Public interface AuthenticationService {

     * @param username

     * @param password

     * @return

     * @throws LoginAuthenticationException

     */

   AuthenticationResponse authenticate(String username, String password) throws LoginAuthenticationException;

}

Ниже приведена функция внутри Класс ответа :

   @Override

        public AuthenticationResponse authenticate(String username, String password) {


                String AuthenticationRequest = GRANT_TYPE + DELIMITER_EQ + AuthConfig.getAuth().getGrantType()

                        + DELIMITER_AMP + USERNAME + DELIMITER_EQ + username

                        + DELIMITER_AMP + password + DELIMITER_EQ + password;



                HttpEntity<String> request = new HttpEntity<>(AuthenticationRequest, buildHeaders(AuthConfig.getAuth().getUsername(), AuthConfig.getAuth().getPassword()));

                ResponseEntity<AuthenticationResponse> response = restTemplate

                        .exchange(AuthConfig.getAuth().getUrl(), HttpMethod.POST, request, AuthenticationResponse.class); 
       return response.getBody();}

Ниже находится функция внутри Класс провайдера для аутентификации:

 @Override

    public Authentication authenticate(Authentication authentication) throws AuthenticationException {

        try {

            AuthenticationResponse AuthenticationResponse = this.AuthenticationService.authenticate((String) authentication.getPrincipal(), (String) authentication.getCredentials());

            UsernamePasswordAuthenticationToken authenticatedToken = new UsernamePasswordAuthenticationToken(authentication.getPrincipal(), null, createGrantedAuthorities(Role.ADMIN, Role.USER));

            authenticatedToken.setDetails(AuthenticationResponse);

            return authenticatedToken;

        } catch (LoginAuthenticationException ex) {

            // todo handle exceptions

            LOGGER.error(Error.UNABLE_TO_AUTHENTICATE_USER.getErrorLogEvent(), ex);

            throw ex;

        } catch (Exception ex) {

            LOGGER.error(Error.UNABLE_TO_AUTHENTICATE_USER.getErrorLogEvent(), ex);

            throw ex;

        }

    }

Я пытаюсь написать модульный тест для всех трех вышеуказанных методов.ниже тестовый файл, с которого я начал .. но застрял в самой начальной точке: - (

Модульный тест для функции внутри Класс обслуживания Открытый класс AuthenticationServiceImpl {

@InjectMocks

AuthenticationServiceImpl AuthenticationService;



@Test

public void testAuthenticate_success() throws Exception {

    // ?????? Not sure how to start here?

}

} Модульный тест для функции внутри Класс отклика:

  @InjectMocks

    AuthenticationRepositoryImpl AuthenticationRepository;


    @Test

    public void testAuthenticate_success() throws Exception {

        // again not sure how to start here 

    }

Модульный тест для функции внутри Класс провайдера :

import static org.junit.Assert.*;



@RunWith(MockitoJUnitRunner.class)

public class AuthenticationProviderTest {


    @InjectMocks

    AuthenticationProvider authenticationProvider;



    @Mock

    private AuthenticationService authenticationService;



    @Test

    public void testAuthenticate_success() throws Exception {
           AuthenticationProvider test = new authenticationProvider();
           assertEquals("True", authenticationProvider.authenticate(), ""Mix of number and A-Z/a-z);

        assertNotNull(authenticationProvider.authenticate);

         ??????????????????????????????????????????????????????????

    }

}

Iзнаете, это стало более длинным, но у меня есть простые сомнения, как написать примеры модульных тестов выше трех файлов (AuthenticationService, AuthenticationResponse и AuthenticationProvider)? Как новичок в Java любые предложения и помощь будут оценены: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...