diff --git a/pom.xml b/pom.xml index 4533817..bdd0587 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,12 @@ - + 4.0.0 org.springframework.boot spring-boot-starter-parent - 3.5.7 + 4.0.0 @@ -23,7 +24,7 @@ it.aboutbits spring-boot-toolbox - 1.7.0 + 2.0.0 @@ -117,12 +118,12 @@ com.puppycrawl.tools checkstyle - 11.1.0 + 12.3.0 it.aboutbits java-checkstyle-config - 1.0.1 + 1.1.0 diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/Delete.java b/src/main/java/it/aboutbits/springboot/testing/web/request/Delete.java index f27bcfe..5547b07 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/Delete.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/Delete.java @@ -1,17 +1,17 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.NonNull; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import tools.jackson.databind.json.JsonMapper; import static org.springframework.http.MediaType.APPLICATION_JSON; public class Delete extends Request { Delete( @NonNull MockMvc mockMvc, - @NonNull ObjectMapper objectMapper, + @NonNull JsonMapper objectMapper, @NonNull String url, @NonNull Object... pathVariables ) { diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/Get.java b/src/main/java/it/aboutbits/springboot/testing/web/request/Get.java index 7949d22..1a0d9d7 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/Get.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/Get.java @@ -1,17 +1,17 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.NonNull; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import tools.jackson.databind.json.JsonMapper; import static org.springframework.http.MediaType.APPLICATION_JSON; public class Get extends Request { Get( @NonNull MockMvc mockMvc, - @NonNull ObjectMapper objectMapper, + @NonNull JsonMapper objectMapper, @NonNull String url, @NonNull Object... pathVariables ) { diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/HttpTestClient.java b/src/main/java/it/aboutbits/springboot/testing/web/request/HttpTestClient.java index e6a12c8..5300b98 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/HttpTestClient.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/HttpTestClient.java @@ -1,45 +1,45 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.NonNull; import lombok.RequiredArgsConstructor; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import tools.jackson.databind.json.JsonMapper; @RequiredArgsConstructor public class HttpTestClient { private final MockMvc mockMvc; - private final ObjectMapper objectMapper; + private final JsonMapper jsonMapper; public Request get(@NonNull String url, Object... pathVariables) { - return new Get(mockMvc, objectMapper, url, pathVariables); + return new Get(mockMvc, jsonMapper, url, pathVariables); } public Request put(@NonNull String url, Object... pathVariables) { - return new Put(mockMvc, objectMapper, url, pathVariables); + return new Put(mockMvc, jsonMapper, url, pathVariables); } public MultipartRequest putMultipart(@NonNull String url, Object... pathVariables) { - return new PutMultipart(mockMvc, objectMapper, url, pathVariables); + return new PutMultipart(mockMvc, jsonMapper, url, pathVariables); } public Request post(@NonNull String url, Object... pathVariables) { - return new Post(mockMvc, objectMapper, url, pathVariables); + return new Post(mockMvc, jsonMapper, url, pathVariables); } public MultipartRequest postMultipart(@NonNull String url, Object... pathVariables) { - return new PostMultipart(mockMvc, objectMapper, url, pathVariables); + return new PostMultipart(mockMvc, jsonMapper, url, pathVariables); } public Request patch(@NonNull String url, Object... pathVariables) { - return new Patch(mockMvc, objectMapper, url, pathVariables); + return new Patch(mockMvc, jsonMapper, url, pathVariables); } public MultipartRequest patchMultipart(@NonNull String url, Object... pathVariables) { - return new PatchMultipart(mockMvc, objectMapper, url, pathVariables); + return new PatchMultipart(mockMvc, jsonMapper, url, pathVariables); } public Request delete(@NonNull String url, Object... pathVariables) { - return new Delete(mockMvc, objectMapper, url, pathVariables); + return new Delete(mockMvc, jsonMapper, url, pathVariables); } } diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/MultipartRequest.java b/src/main/java/it/aboutbits/springboot/testing/web/request/MultipartRequest.java index a98a413..0a4b2d9 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/MultipartRequest.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/MultipartRequest.java @@ -1,11 +1,11 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.NonNull; import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockPart; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder; +import tools.jackson.databind.json.JsonMapper; import java.util.ArrayList; import java.util.List; @@ -18,7 +18,7 @@ public abstract class MultipartRequest extends Request { Patch( @NonNull MockMvc mockMvc, - @NonNull ObjectMapper objectMapper, + @NonNull JsonMapper objectMapper, @NonNull String url, @NonNull Object... pathVariables ) { diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/PatchMultipart.java b/src/main/java/it/aboutbits/springboot/testing/web/request/PatchMultipart.java index d33917e..9cc621d 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/PatchMultipart.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/PatchMultipart.java @@ -1,16 +1,16 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.NonNull; import org.springframework.http.HttpMethod; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import tools.jackson.databind.json.JsonMapper; public class PatchMultipart extends MultipartRequest { PatchMultipart( @NonNull MockMvc mockMvc, - @NonNull ObjectMapper objectMapper, + @NonNull JsonMapper objectMapper, @NonNull String url, @NonNull Object... pathVariables ) { diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/Post.java b/src/main/java/it/aboutbits/springboot/testing/web/request/Post.java index 767927c..404a8a7 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/Post.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/Post.java @@ -1,17 +1,17 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.NonNull; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import tools.jackson.databind.json.JsonMapper; import static org.springframework.http.MediaType.APPLICATION_JSON; public class Post extends Request { Post( @NonNull MockMvc mockMvc, - @NonNull ObjectMapper objectMapper, + @NonNull JsonMapper objectMapper, @NonNull String url, @NonNull Object... pathVariables ) { diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/PostMultipart.java b/src/main/java/it/aboutbits/springboot/testing/web/request/PostMultipart.java index eb49589..c65395f 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/PostMultipart.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/PostMultipart.java @@ -1,16 +1,16 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.NonNull; import org.springframework.http.HttpMethod; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import tools.jackson.databind.json.JsonMapper; public class PostMultipart extends MultipartRequest { PostMultipart( @NonNull MockMvc mockMvc, - @NonNull ObjectMapper objectMapper, + @NonNull JsonMapper objectMapper, @NonNull String url, @NonNull Object... pathVariables ) { diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/Put.java b/src/main/java/it/aboutbits/springboot/testing/web/request/Put.java index a076509..78e3aae 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/Put.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/Put.java @@ -1,17 +1,17 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.NonNull; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import tools.jackson.databind.json.JsonMapper; import static org.springframework.http.MediaType.APPLICATION_JSON; public class Put extends Request { Put( @NonNull MockMvc mockMvc, - @NonNull ObjectMapper objectMapper, + @NonNull JsonMapper objectMapper, @NonNull String url, @NonNull Object... pathVariables ) { diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/PutMultipart.java b/src/main/java/it/aboutbits/springboot/testing/web/request/PutMultipart.java index 05255db..82fd1cc 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/PutMultipart.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/PutMultipart.java @@ -1,16 +1,16 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.NonNull; import org.springframework.http.HttpMethod; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import tools.jackson.databind.json.JsonMapper; public class PutMultipart extends MultipartRequest { PutMultipart( @NonNull MockMvc mockMvc, - @NonNull ObjectMapper objectMapper, + @NonNull JsonMapper objectMapper, @NonNull String url, @NonNull Object... pathVariables ) { diff --git a/src/main/java/it/aboutbits/springboot/testing/web/request/Request.java b/src/main/java/it/aboutbits/springboot/testing/web/request/Request.java index 8221147..ad52b2a 100644 --- a/src/main/java/it/aboutbits/springboot/testing/web/request/Request.java +++ b/src/main/java/it/aboutbits/springboot/testing/web/request/Request.java @@ -1,7 +1,5 @@ package it.aboutbits.springboot.testing.web.request; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import it.aboutbits.springboot.toolbox.web.response.ErrorResponse; import it.aboutbits.springboot.toolbox.web.response.ItemResponse; import it.aboutbits.springboot.toolbox.web.response.ItemResponseWithMeta; @@ -16,7 +14,9 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; -import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import org.springframework.test.web.servlet.request.AbstractMockHttpServletRequestBuilder; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.json.JsonMapper; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; @@ -29,14 +29,14 @@ import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.httpBasic; @Slf4j -public abstract class Request { +public abstract class Request> { protected record UsernameAndPassword(String username, String password) { } protected record UrlWithVariables(String url, Object... pathVariables) { } - protected final ObjectMapper objectMapper; + protected final JsonMapper jsonMapper; protected final MockMvc mockMvc; protected final UrlWithVariables url; protected final MediaType contentType; @@ -50,12 +50,12 @@ protected record UrlWithVariables(String url, Object... pathVariables) { Request( @NonNull MockMvc mockMvc, - @NonNull ObjectMapper objectMapper, + @NonNull JsonMapper jsonMapper, @NonNull String url, @NonNull MediaType contentType, @NonNull Object... pathVariables ) { - this.objectMapper = objectMapper; + this.jsonMapper = jsonMapper; this.mockMvc = mockMvc; this.url = new UrlWithVariables(url, pathVariables); @@ -74,8 +74,8 @@ public Request body(@NonNull Object body) { } try { - this.body = objectMapper.writeValueAsString(body); - } catch (JsonProcessingException e) { + this.body = jsonMapper.writeValueAsString(body); + } catch (JacksonException e) { log.error("Failed to write body as JSON.", e); throw new RuntimeException(e); } @@ -113,12 +113,12 @@ public ItemResponse returnItem(@NonNull Class clazz) { var resString = res.andReturn().getResponse().getContentAsString(StandardCharsets.UTF_8); - var typeFactory = objectMapper.getTypeFactory(); + var typeFactory = jsonMapper.getTypeFactory(); var javaType = typeFactory.constructParametricType(ItemResponse.class, clazz); try { - return objectMapper.readValue(resString, javaType); - } catch (JsonProcessingException e) { + return jsonMapper.readValue(resString, javaType); + } catch (JacksonException e) { log.error("Failed to read response as JSON.", e); throw new RuntimeException(e); } @@ -133,12 +133,12 @@ public ItemResponseWithMeta returnItem( var resString = res.andReturn().getResponse().getContentAsString(StandardCharsets.UTF_8); - var typeFactory = objectMapper.getTypeFactory(); + var typeFactory = jsonMapper.getTypeFactory(); var javaType = typeFactory.constructParametricType(ItemResponseWithMeta.class, clazz, metaClass); try { - return objectMapper.readValue(resString, javaType); - } catch (JsonProcessingException e) { + return jsonMapper.readValue(resString, javaType); + } catch (JacksonException e) { log.error("Failed to read response as JSON.", e); throw new RuntimeException(e); } @@ -150,12 +150,12 @@ public ListResponse returnList(@NonNull Class clazz) { var resString = res.andReturn().getResponse().getContentAsString(StandardCharsets.UTF_8); - var typeFactory = objectMapper.getTypeFactory(); + var typeFactory = jsonMapper.getTypeFactory(); var javaType = typeFactory.constructParametricType(ListResponse.class, clazz); try { - return objectMapper.readValue(resString, javaType); - } catch (JsonProcessingException e) { + return jsonMapper.readValue(resString, javaType); + } catch (JacksonException e) { log.error("Failed to read response as JSON.", e); throw new RuntimeException(e); } @@ -167,12 +167,12 @@ public PagedResponse returnPage(@NonNull Class clazz) { var resString = res.andReturn().getResponse().getContentAsString(StandardCharsets.UTF_8); - var typeFactory = objectMapper.getTypeFactory(); + var typeFactory = jsonMapper.getTypeFactory(); var javaType = typeFactory.constructParametricType(PagedResponse.class, clazz); try { - return objectMapper.readValue(resString, javaType); - } catch (JsonProcessingException e) { + return jsonMapper.readValue(resString, javaType); + } catch (JacksonException e) { log.error("Failed to read response as JSON.", e); throw new RuntimeException(e); } @@ -185,8 +185,8 @@ public ErrorResponse returnError() { var resString = res.andReturn().getResponse().getContentAsString(StandardCharsets.UTF_8); try { - return objectMapper.readValue(resString, ErrorResponse.class); - } catch (JsonProcessingException e) { + return jsonMapper.readValue(resString, ErrorResponse.class); + } catch (JacksonException e) { log.error("Failed to read response as JSON.", e); throw new RuntimeException(e); }