Skip to content

Commit

Permalink
SHIBUI-2165
Browse files Browse the repository at this point in the history
Adjustment object mapper to make tests more consistent
  • Loading branch information
chasegawa committed Oct 11, 2021
1 parent 923e62b commit e8f9a48
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package edu.internet2.tier.shibboleth.admin.ui
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer
import edu.internet2.tier.shibboleth.admin.ui.configuration.CustomPropertiesConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.ShibUIConfiguration
Expand All @@ -23,6 +24,10 @@ import org.springframework.context.annotation.ComponentScan
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Import
import org.springframework.context.annotation.Primary
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL

Expand Down Expand Up @@ -68,10 +73,12 @@ class BaseDataJpaTestConfiguration {

@Bean
ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper()
JavaTimeModule module = new JavaTimeModule()
LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS"))
module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer)
ObjectMapper mapper = Jackson2ObjectMapperBuilder.json().modules(module).featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build()
mapper.enable(SerializationFeature.INDENT_OUTPUT)
mapper.setSerializationInclusion(NON_NULL)
mapper.registerModule(new JavaTimeModule())
mapper.registerModule(new StringTrimModule())
return mapper
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,21 @@
package edu.internet2.tier.shibboleth.admin.ui.security.controller

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer
import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest
import edu.internet2.tier.shibboleth.admin.ui.controller.support.RestControllersSupport
import edu.internet2.tier.shibboleth.admin.ui.security.model.Group
import edu.internet2.tier.shibboleth.admin.ui.security.model.User
import edu.internet2.tier.shibboleth.admin.ui.util.WithMockAdmin
import groovy.json.JsonOutput
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.TestConfiguration
import org.springframework.context.annotation.Bean
import org.springframework.http.MediaType
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder
import org.springframework.test.annotation.Rollback
import org.springframework.test.context.ContextConfiguration
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.setup.MockMvcBuilders
import org.springframework.transaction.annotation.Transactional
import org.springframework.web.client.HttpClientErrorException
import org.springframework.web.util.NestedServletException

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch
Expand All @@ -34,7 +24,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status

@ContextConfiguration(classes=[UCILocalConfig])
@Rollback
class UsersControllerIntegrationTests extends AbstractBaseDataJpaTest {
@Autowired
Expand Down Expand Up @@ -311,16 +300,4 @@ class UsersControllerIntegrationTests extends AbstractBaseDataJpaTest {
then:
result.andExpect(status().isNotFound())
}

@TestConfiguration
private static class UCILocalConfig {
@Bean
ObjectMapper objectMapper() {
JavaTimeModule module = new JavaTimeModule()
LocalDateTimeDeserializer localDateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS"))
module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer)

return Jackson2ObjectMapperBuilder.json().modules(module).featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build()
}
}
}
}

0 comments on commit e8f9a48

Please sign in to comment.