Skip to content

Commit

Permalink
Merge pull request #340 from pascalgrimaud/exception-translator-merge…
Browse files Browse the repository at this point in the history
…-test-and-it

Merge ExceptionTranslatorTest into IT
  • Loading branch information
pascalgrimaud authored Dec 18, 2021
2 parents b87a184 + 069dd42 commit 8d4c8bc
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 136 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ public void addExceptionHandler(Project project) {

templateToExceptionHandler(project, packageNamePath, "test", "BadRequestAlertExceptionTest.java", TEST_JAVA);
templateToExceptionHandler(project, packageNamePath, "test", "ExceptionTranslatorIT.java", TEST_JAVA);
templateToExceptionHandler(project, packageNamePath, "test", "ExceptionTranslatorTest.java", TEST_JAVA);
templateToExceptionHandler(project, packageNamePath, "test", "ExceptionTranslatorTestController.java", TEST_JAVA);
templateToExceptionHandler(project, packageNamePath, "test", "FieldErrorDTOTest.java", TEST_JAVA);
templateToExceptionHandler(project, packageNamePath, "test", "HeaderUtilTest.java", TEST_JAVA);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,28 @@
package {{packageName}}.technical.infrastructure.primary.exception;

import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import static org.zalando.problem.Status.BAD_REQUEST;

import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.http.HttpStatus;
import org.springframework.context.ApplicationContext;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.validation.FieldError;
import org.springframework.web.context.request.NativeWebRequest;
import org.zalando.problem.Problem;
import org.zalando.problem.violations.ConstraintViolationProblem;
import org.zalando.problem.violations.Violation;
import {{packageName}}.IntegrationTest;

/**
Expand All @@ -35,6 +45,44 @@ class ExceptionTranslatorIT {
exceptionTranslator = (ExceptionTranslator) applicationContext.getBean("securityExceptionTranslator");
}

@Test
void shouldProcessNullEntity() {
NativeWebRequest request = Mockito.mock(NativeWebRequest.class);
assertThat(exceptionTranslator.process(null, request)).isNull();
}

@Test
void shouldProcessConstraintViolationProblem() {
// Given
NativeWebRequest request = Mockito.mock(NativeWebRequest.class);
List<Violation> violations = List.of();
ConstraintViolationProblem problem = new ConstraintViolationProblem(BAD_REQUEST, violations);
// When
ResponseEntity<Problem> result = exceptionTranslator.process(ResponseEntity.badRequest().body(problem), request);
// Then
assertThat(result).isNotNull();
assertThat(result.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
assertThat(result.getStatusCodeValue()).isEqualTo(400);
assertThat(result.getBody()).isNotNull();
assertThat(result.getBody().getTitle()).isEqualTo("Constraint Violation");
}

@Test
void shouldGetMessageWithDefaultMessage() {
FieldError f = new FieldError("test", "test", "defaultMessage");
String result = ReflectionTestUtils.invokeMethod(exceptionTranslator, "getMessage", f);
assertThat(result).isEqualTo("defaultMessage");
}

@Test
void shouldGetMessageWithCode() {
FieldError f = new FieldError("test", "test", null, false, new String[] { "400" }, null, null);
String result = ReflectionTestUtils.invokeMethod(exceptionTranslator, "getMessage", f);
assertThat(result).isEqualTo("400");
}

@Test
void shouldHandleMethodArgumentNotValid() throws Exception {
mockMvc
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,6 @@ private void assertExceptionHandlerFiles(Project project) {
List<String> listTestClass = List.of(
"BadRequestAlertExceptionTest.java",
"ExceptionTranslatorIT.java",
"ExceptionTranslatorTest.java",
"ExceptionTranslatorTestController.java",
"FieldErrorDTOTest.java",
"HeaderUtilTest.java"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
package tech.jhipster.lite.technical.infrastructure.primary.exception;

import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import static org.zalando.problem.Status.BAD_REQUEST;

import java.util.List;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.validation.FieldError;
import org.springframework.web.context.request.NativeWebRequest;
import org.zalando.problem.Problem;
import org.zalando.problem.violations.ConstraintViolationProblem;
import org.zalando.problem.violations.Violation;
import tech.jhipster.lite.IntegrationTest;

/**
Expand All @@ -26,6 +36,44 @@ class ExceptionTranslatorIT {
@Autowired
private MockMvc mockMvc;

@Test
void shouldProcessNullEntity() {
NativeWebRequest request = Mockito.mock(NativeWebRequest.class);
assertThat(exceptionTranslator.process(null, request)).isNull();
}

@Test
void shouldProcessConstraintViolationProblem() {
// Given
NativeWebRequest request = Mockito.mock(NativeWebRequest.class);
List<Violation> violations = List.of();
ConstraintViolationProblem problem = new ConstraintViolationProblem(BAD_REQUEST, violations);

// When
ResponseEntity<Problem> result = exceptionTranslator.process(ResponseEntity.badRequest().body(problem), request);

// Then
assertThat(result).isNotNull();
assertThat(result.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
assertThat(result.getStatusCodeValue()).isEqualTo(400);
assertThat(result.getBody()).isNotNull();
assertThat(result.getBody().getTitle()).isEqualTo("Constraint Violation");
}

@Test
void shouldGetMessageWithDefaultMessage() {
FieldError f = new FieldError("test", "test", "defaultMessage");
String result = ReflectionTestUtils.invokeMethod(exceptionTranslator, "getMessage", f);
assertThat(result).isEqualTo("defaultMessage");
}

@Test
void shouldGetMessageWithCode() {
FieldError f = new FieldError("test", "test", null, false, new String[] { "400" }, null, null);
String result = ReflectionTestUtils.invokeMethod(exceptionTranslator, "getMessage", f);
assertThat(result).isEqualTo("400");
}

@Test
void shouldHandleMethodArgumentNotValid() throws Exception {
mockMvc
Expand Down

This file was deleted.

0 comments on commit 8d4c8bc

Please sign in to comment.