added WrongServiceTypeException
This commit is contained in:
@@ -8,6 +8,7 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import com.vaessl.app.dto.ConnectionRequest;
|
import com.vaessl.app.dto.ConnectionRequest;
|
||||||
import com.vaessl.app.dto.ConnectionResponse;
|
import com.vaessl.app.dto.ConnectionResponse;
|
||||||
|
import com.vaessl.app.exception.WrongServiceTypeException;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ConnectionService {
|
public class ConnectionService {
|
||||||
@@ -26,6 +27,10 @@ public class ConnectionService {
|
|||||||
|
|
||||||
ConnectionProvider provider = providerRegistry.get(request.serviceType());
|
ConnectionProvider provider = providerRegistry.get(request.serviceType());
|
||||||
|
|
||||||
|
if (provider == null) {
|
||||||
|
throw new WrongServiceTypeException();
|
||||||
|
}
|
||||||
|
|
||||||
provider.checkCredentials(request);
|
provider.checkCredentials(request);
|
||||||
|
|
||||||
ConnectionResponse response = provider.authenticate(request);
|
ConnectionResponse response = provider.authenticate(request);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ public enum ErrorMessage {
|
|||||||
BAD_REQUEST_EMPTY_FIELDS(HttpStatus.BAD_REQUEST, "Fields must not be empty."), UNAUTHORIZED_WRONG_LOGIN(
|
BAD_REQUEST_EMPTY_FIELDS(HttpStatus.BAD_REQUEST, "Fields must not be empty."), UNAUTHORIZED_WRONG_LOGIN(
|
||||||
HttpStatus.UNAUTHORIZED, "Invalid username or password."), SERVICE_UNAVAILABLE_UNREACHABLE_URL(
|
HttpStatus.UNAUTHORIZED, "Invalid username or password."), SERVICE_UNAVAILABLE_UNREACHABLE_URL(
|
||||||
HttpStatus.SERVICE_UNAVAILABLE, "The target URL is unreachable."), SERVER_ERROR_GENERAL(
|
HttpStatus.SERVICE_UNAVAILABLE, "The target URL is unreachable."), SERVER_ERROR_GENERAL(
|
||||||
"The external app returned a server error: "), WRONG_SERVICE_TYPE(HttpStatus.BAD_REQUEST,
|
"The external app returned a server error: "), WRONG_SERVICE_TYPE(HttpStatus.NOT_FOUND,
|
||||||
"No such service type.");
|
"No such service type.");
|
||||||
|
|
||||||
private final HttpStatus status;
|
private final HttpStatus status;
|
||||||
|
|||||||
@@ -48,6 +48,11 @@ public class GlobalExceptionHandler {
|
|||||||
SERVER_ERROR_GENERAL.getMessage() + e.getStatusText());
|
SERVER_ERROR_GENERAL.getMessage() + e.getStatusText());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ExceptionHandler(WrongServiceTypeException.class)
|
||||||
|
public ProblemDetail handleWrongServiceType(WrongServiceTypeException e) {
|
||||||
|
return ProblemDetail.forStatusAndDetail(WRONG_SERVICE_TYPE.getStatus(), WRONG_SERVICE_TYPE.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
@ExceptionHandler(EmptyCredentialsException.class)
|
@ExceptionHandler(EmptyCredentialsException.class)
|
||||||
public ProblemDetail handleEmptyCredentials(EmptyCredentialsException e) {
|
public ProblemDetail handleEmptyCredentials(EmptyCredentialsException e) {
|
||||||
return ProblemDetail.forStatusAndDetail(BAD_REQUEST_EMPTY_FIELDS.getStatus(),
|
return ProblemDetail.forStatusAndDetail(BAD_REQUEST_EMPTY_FIELDS.getStatus(),
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package com.vaessl.app.exception;
|
||||||
|
|
||||||
|
public class WrongServiceTypeException extends RuntimeException {
|
||||||
|
}
|
||||||
@@ -145,7 +145,7 @@ class HomeboxIntegrationTest {
|
|||||||
* Test the custom ProviderNotFound exception.
|
* Test the custom ProviderNotFound exception.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
void shouldReturnProviderNotFound() {
|
void shouldReturnWrongServiceTypeException() {
|
||||||
ConnectionRequest wrongServiceTypeReq = new ConnectionRequest(
|
ConnectionRequest wrongServiceTypeReq = new ConnectionRequest(
|
||||||
MOCK_URL,
|
MOCK_URL,
|
||||||
"wrong-service-type",
|
"wrong-service-type",
|
||||||
@@ -155,7 +155,7 @@ class HomeboxIntegrationTest {
|
|||||||
ResponseEntity<String> response = restTemplate.postForEntity(LOGIN.getValue(), wrongServiceTypeReq,
|
ResponseEntity<String> response = restTemplate.postForEntity(LOGIN.getValue(), wrongServiceTypeReq,
|
||||||
String.class);
|
String.class);
|
||||||
|
|
||||||
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
|
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
|
||||||
assertThat(response.getBody()).contains(WRONG_SERVICE_TYPE.getMessage());
|
assertThat(response.getBody()).contains(WRONG_SERVICE_TYPE.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user