1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.bremersee.geojson.spring.boot.autoconfigure.jackson;
18
19 import static org.mockito.ArgumentMatchers.any;
20 import static org.mockito.Mockito.atLeast;
21 import static org.mockito.Mockito.mock;
22 import static org.mockito.Mockito.spy;
23 import static org.mockito.Mockito.verify;
24 import static org.mockito.Mockito.when;
25
26 import org.bremersee.geojson.GeoJsonGeometryFactory;
27 import org.bremersee.geojson.GeoJsonObjectMapperModule;
28 import org.bremersee.geojson.spring.boot.autoconfigure.GeoJsonProperties;
29 import org.junit.jupiter.api.Test;
30 import org.springframework.beans.factory.ObjectProvider;
31 import tools.jackson.databind.json.JsonMapper;
32
33
34
35
36
37
38 class GeoJsonJacksonJsonMapperBuilderCustomizerTest {
39
40 private GeoJsonJacksonJsonMapperBuilderCustomizer newInstance(GeoJsonProperties properties) {
41
42 ObjectProvider<GeoJsonGeometryFactory> objectProvider = mock(ObjectProvider.class);
43 when(objectProvider.getIfAvailable(any())).thenReturn(new GeoJsonGeometryFactory());
44 return new GeoJsonJacksonJsonMapperBuilderCustomizer(properties, objectProvider);
45 }
46
47
48
49
50 @Test
51 void init() {
52 GeoJsonProperties properties = new GeoJsonProperties();
53 properties.setUseBigDecimal(true);
54 properties.setWithBoundingBox(true);
55 properties = spy(properties);
56 GeoJsonJacksonJsonMapperBuilderCustomizer target = newInstance(properties);
57 target.init();
58 verify(properties, atLeast(1)).isUseBigDecimal();
59 verify(properties, atLeast(1)).isWithBoundingBox();
60 }
61
62
63
64
65 @Test
66 void customize() {
67 GeoJsonProperties properties = new GeoJsonProperties();
68 properties.setUseBigDecimal(false);
69 properties.setWithBoundingBox(false);
70 properties = spy(properties);
71 GeoJsonJacksonJsonMapperBuilderCustomizer target = newInstance(properties);
72 JsonMapper.Builder builder = mock(JsonMapper.Builder.class);
73 target.customize(builder);
74 verify(builder).addModules(any(GeoJsonObjectMapperModule.class));
75 verify(properties, atLeast(1)).isUseBigDecimal();
76 verify(properties, atLeast(1)).isWithBoundingBox();
77 }
78 }