Skip to content

Commit deab584

Browse files
committed
Improve test coverage
1 parent a5c2288 commit deab584

File tree

5 files changed

+185
-3
lines changed

5 files changed

+185
-3
lines changed

impl/path/src/main/java/com/github/skjolber/jsonfilter/path/RequestResponseJsonFilterFactory.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ protected List<JsonFilterPathMatcher> extract(JsonFilterReplacementsProperties r
6868
JsonFilterPathMatcher m = jsonFilterPathMatcherFactory.createMatcher(matcher, validatingFilter, null, nonvalidatingFilter, null, Integer.MAX_VALUE);
6969
requestFilters.add(m);
7070
} else if(whitespaceStrategy == WhitespaceStrategy.ON_DEMAND) {
71+
// TODO this option does not make sense if also the max size is set
7172
JsonFilter validatingFilter = jacksonJsonFilterFactory.newJsonFilter();
7273
JsonFilter nonvalidatingFilter = nonvalidating.newJsonFilter();
7374

@@ -103,6 +104,7 @@ protected List<JsonFilterPathMatcher> extract(JsonFilterReplacementsProperties r
103104
JsonFilterPathMatcher m = jsonFilterPathMatcherFactory.createMatcher(matcher, validatingFilter, validatingMaxSizeFilter, nonvalidatingFilter, nonvalidatingMaxSizeFilter, maxSize);
104105
requestFilters.add(m);
105106
} else if(whitespaceStrategy == WhitespaceStrategy.ON_DEMAND) {
107+
// TODO this option does not make sense if also the max size is set
106108
JsonFilter validatingFilter = jacksonJsonFilterFactory.newJsonFilter();
107109
JsonFilter nonvalidatingFilter = nonvalidating.newJsonFilter();
108110

impl/path/src/test/java/com/github/skjolber/jsonfilter/path/RequestResponseJsonFilterFactoryTest.java

Lines changed: 174 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.github.skjolber.jsonfilter.path.properties.JsonFilterProperties;
2424
import com.github.skjolber.jsonfilter.path.properties.JsonFilterReplacementsProperties;
2525
import com.github.skjolber.jsonfilter.path.properties.JsonFiltersProperties;
26+
import com.github.skjolber.jsonfilter.path.properties.ProcessingProperties;
2627
import com.github.skjolber.jsonfilter.path.properties.WhitespaceStrategy;
2728

2829
public class RequestResponseJsonFilterFactoryTest {
@@ -33,6 +34,9 @@ public class RequestResponseJsonFilterFactoryTest {
3334
@Test
3435
public void testDefaulConfiguration() {
3536
JsonFiltersProperties properties = new JsonFiltersProperties();
37+
properties.setRequests(new ProcessingProperties(true, WhitespaceStrategy.ON_DEMAND));
38+
properties.setResponses(new ProcessingProperties(false, WhitespaceStrategy.NEVER));
39+
3640
rrFactory.requestResponseJsonFilter(properties);
3741

3842
assertTrue(pathMatcherFactory.createMatcher(null, null, null, null, null, 1024) instanceof AllJsonFilterPathMatcher);
@@ -81,6 +85,7 @@ public void testDisabled1() {
8185
request.setAnonymizes(Arrays.asList("/a"));
8286
request.setPrunes(Arrays.asList("/b"));
8387
request.setMaxPathMatches(1);
88+
request.setMaxStringLength(1024);
8489

8590
p.setRequest(request);
8691

@@ -142,24 +147,65 @@ public void createFilterWithValidation() {
142147
}
143148

144149
@Test
145-
public void createFilterWithoutValidation() {
150+
public void createFilterWithValidationMaxSize() {
146151
JsonFiltersProperties jsonFiltersProperties = new JsonFiltersProperties();
147152

148153
JsonFilterProperties request = new JsonFilterProperties();
149154
request.setAnonymizes(Arrays.asList("/a"));
150155
request.setPrunes(Arrays.asList("/b"));
151156
request.setMaxPathMatches(1);
152-
request.setMaxSize(1024);
153157
request.setEnabled(true);
154158

155159
JsonFilterPathProperties jsonFilterPathProperties = new JsonFilterPathProperties();
156160
jsonFilterPathProperties.setMatcher("/myPath");
157161
jsonFilterPathProperties.setRequest(request);
162+
jsonFilterPathProperties.setResponse(request);
158163

159164
jsonFiltersProperties.getPaths().add(jsonFilterPathProperties);
160165

161166
JsonFilterReplacementsProperties replacements = new JsonFilterReplacementsProperties();
162167

168+
replacements.setPrune("a");
169+
replacements.setAnonymize("b");
170+
replacements.setTruncate("c");
171+
172+
jsonFiltersProperties.setReplacements(replacements);
173+
174+
RequestResponseJsonFilter requestResponseJsonFilter = rrFactory.requestResponseJsonFilter(jsonFiltersProperties);
175+
176+
JsonFilter requestFilter = requestResponseJsonFilter.getRequestFilter("/myPath", true, 1024);
177+
178+
assertTrue(requestFilter instanceof JacksonJsonFilter);
179+
180+
JsonFilter maxSizeFilter = requestResponseJsonFilter.getRequestFilter("/myPath", true, request.getMaxSize() + 1);
181+
assertTrue(maxSizeFilter instanceof JacksonJsonFilter);
182+
183+
AbstractJsonFilter f = (AbstractJsonFilter) maxSizeFilter;
184+
assertEquals(Integer.MAX_VALUE, f.getMaxSize());
185+
186+
JsonFilter responseFilter = requestResponseJsonFilter.getResponseFilter("/myPath", true, 1024);
187+
assertTrue(responseFilter instanceof JacksonJsonFilter);
188+
}
189+
190+
@Test
191+
public void createFilterWithoutValidationMaxSize() {
192+
JsonFiltersProperties jsonFiltersProperties = new JsonFiltersProperties();
193+
194+
JsonFilterProperties request = new JsonFilterProperties();
195+
request.setAnonymizes(Arrays.asList("/a"));
196+
request.setPrunes(Arrays.asList("/b"));
197+
request.setMaxPathMatches(1);
198+
request.setMaxSize(1024);
199+
request.setEnabled(true);
200+
201+
JsonFilterPathProperties jsonFilterPathProperties = new JsonFilterPathProperties();
202+
jsonFilterPathProperties.setMatcher("/myPath");
203+
jsonFilterPathProperties.setRequest(request);
204+
205+
jsonFiltersProperties.setPaths(Arrays.asList(jsonFilterPathProperties));
206+
207+
JsonFilterReplacementsProperties replacements = new JsonFilterReplacementsProperties();
208+
163209
replacements.setPrune("a");
164210
replacements.setAnonymize("b");
165211
replacements.setTruncate("c");
@@ -182,10 +228,95 @@ public void createFilterWithoutValidation() {
182228

183229
}
184230

231+
@Test
232+
public void createFilterWithoutValidation() {
233+
JsonFiltersProperties jsonFiltersProperties = new JsonFiltersProperties();
234+
235+
JsonFilterProperties request = new JsonFilterProperties();
236+
request.setAnonymizes(Arrays.asList("/a"));
237+
request.setPrunes(Arrays.asList("/b"));
238+
request.setMaxPathMatches(1);
239+
request.setEnabled(true);
240+
241+
JsonFilterPathProperties jsonFilterPathProperties = new JsonFilterPathProperties();
242+
jsonFilterPathProperties.setMatcher("/myPath");
243+
jsonFilterPathProperties.setRequest(request);
244+
245+
jsonFiltersProperties.getPaths().add(jsonFilterPathProperties);
246+
247+
JsonFilterReplacementsProperties replacements = new JsonFilterReplacementsProperties();
248+
249+
replacements.setPrune("a");
250+
replacements.setAnonymize("b");
251+
replacements.setTruncate("c");
252+
253+
jsonFiltersProperties.setReplacements(replacements);
254+
255+
RequestResponseJsonFilter requestResponseJsonFilter = rrFactory.requestResponseJsonFilter(jsonFiltersProperties);
256+
257+
JsonFilter filter = requestResponseJsonFilter.getRequestFilter("/myPath", false, 1024);
258+
assertFalse(filter instanceof JacksonJsonFilter);
259+
260+
JsonFilter maxSizeFilter = requestResponseJsonFilter.getRequestFilter("/myPath", false, request.getMaxSize() + 1);
261+
assertFalse(maxSizeFilter instanceof JacksonJsonFilter);
262+
263+
AbstractJsonFilter f = (AbstractJsonFilter) maxSizeFilter;
264+
assertEquals(f.getMaxSize(), Integer.MAX_VALUE);
265+
266+
assertFalse(filter.isRemovingWhitespace());
267+
268+
// TODO on-demand does not make sense if also the max size is set
269+
assertFalse(maxSizeFilter.isRemovingWhitespace());
270+
271+
}
272+
273+
185274
@Test
186275
public void createFilterWithoutValidationAlwaysRemoveWhitespace() {
187276
JsonFiltersProperties jsonFiltersProperties = new JsonFiltersProperties();
188277

278+
JsonFilterProperties request = new JsonFilterProperties();
279+
request.setAnonymizes(Arrays.asList("/a"));
280+
request.setPrunes(Arrays.asList("/b"));
281+
request.setMaxPathMatches(1);
282+
request.setEnabled(true);
283+
284+
JsonFilterPathProperties jsonFilterPathProperties = new JsonFilterPathProperties();
285+
jsonFilterPathProperties.setMatcher("/myPath");
286+
jsonFilterPathProperties.setRequest(request);
287+
288+
jsonFiltersProperties.getPaths().add(jsonFilterPathProperties);
289+
jsonFiltersProperties.getRequests().setWhitespaceStrategy(WhitespaceStrategy.ALWAYS);
290+
assertTrue(jsonFiltersProperties.getRequests().hasWhitespaceStrategy());
291+
292+
JsonFilterReplacementsProperties replacements = new JsonFilterReplacementsProperties();
293+
294+
replacements.setPrune("a");
295+
replacements.setAnonymize("b");
296+
replacements.setTruncate("c");
297+
298+
jsonFiltersProperties.setReplacements(replacements);
299+
300+
RequestResponseJsonFilter requestResponseJsonFilter = rrFactory.requestResponseJsonFilter(jsonFiltersProperties);
301+
302+
JsonFilter filter = requestResponseJsonFilter.getRequestFilter("/myPath", false, 1024);
303+
assertFalse(filter instanceof JacksonJsonFilter);
304+
305+
JsonFilter maxSizeFilter = requestResponseJsonFilter.getRequestFilter("/myPath", false, request.getMaxSize() + 1);
306+
assertFalse(maxSizeFilter instanceof JacksonJsonFilter);
307+
308+
AbstractJsonFilter f = (AbstractJsonFilter) maxSizeFilter;
309+
assertEquals(f.getMaxSize(), Integer.MAX_VALUE);
310+
311+
assertTrue(filter.isRemovingWhitespace());
312+
assertTrue(maxSizeFilter.isRemovingWhitespace());
313+
}
314+
315+
316+
@Test
317+
public void createFilterWithoutValidationAlwaysRemoveWhitespaceMaxSize() {
318+
JsonFiltersProperties jsonFiltersProperties = new JsonFiltersProperties();
319+
189320
JsonFilterProperties request = new JsonFilterProperties();
190321
request.setAnonymizes(Arrays.asList("/a"));
191322
request.setPrunes(Arrays.asList("/b"));
@@ -223,11 +354,51 @@ public void createFilterWithoutValidationAlwaysRemoveWhitespace() {
223354
assertTrue(filter.isRemovingWhitespace());
224355
assertTrue(maxSizeFilter.isRemovingWhitespace());
225356
}
226-
357+
227358
@Test
228359
public void createFilterWithoutValidationNeverRemoveWhitespace() {
229360
JsonFiltersProperties jsonFiltersProperties = new JsonFiltersProperties();
230361

362+
JsonFilterProperties request = new JsonFilterProperties();
363+
request.setAnonymizes(Arrays.asList("/a"));
364+
request.setPrunes(Arrays.asList("/b"));
365+
request.setMaxPathMatches(1);
366+
request.setEnabled(true);
367+
368+
JsonFilterPathProperties jsonFilterPathProperties = new JsonFilterPathProperties();
369+
jsonFilterPathProperties.setMatcher("/myPath");
370+
jsonFilterPathProperties.setRequest(request);
371+
372+
jsonFiltersProperties.getPaths().add(jsonFilterPathProperties);
373+
jsonFiltersProperties.getRequests().setWhitespaceStrategy(WhitespaceStrategy.NEVER);
374+
375+
JsonFilterReplacementsProperties replacements = new JsonFilterReplacementsProperties();
376+
377+
replacements.setPrune("a");
378+
replacements.setAnonymize("b");
379+
replacements.setTruncate("c");
380+
381+
jsonFiltersProperties.setReplacements(replacements);
382+
383+
RequestResponseJsonFilter requestResponseJsonFilter = rrFactory.requestResponseJsonFilter(jsonFiltersProperties);
384+
385+
JsonFilter filter = requestResponseJsonFilter.getRequestFilter("/myPath", false, 1024);
386+
assertFalse(filter instanceof JacksonJsonFilter);
387+
388+
JsonFilter maxSizeFilter = requestResponseJsonFilter.getRequestFilter("/myPath", false, request.getMaxSize() + 1);
389+
assertFalse(maxSizeFilter instanceof JacksonJsonFilter);
390+
391+
AbstractJsonFilter f = (AbstractJsonFilter) maxSizeFilter;
392+
assertEquals(f.getMaxSize(), Integer.MAX_VALUE);
393+
394+
assertFalse(filter.isRemovingWhitespace());
395+
assertFalse(maxSizeFilter.isRemovingWhitespace());
396+
}
397+
398+
@Test
399+
public void createFilterWithoutValidationNeverRemoveWhitespaceMaxSize() {
400+
JsonFiltersProperties jsonFiltersProperties = new JsonFiltersProperties();
401+
231402
JsonFilterProperties request = new JsonFilterProperties();
232403
request.setAnonymizes(Arrays.asList("/a"));
233404
request.setPrunes(Arrays.asList("/b"));

impl/path/src/test/java/com/github/skjolber/jsonfilter/path/matcher/PrefixJsonFilterPathMatcherTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public void testMatching() {
3030

3131
assertThat(matcher.matches("/abcdef")).isTrue();
3232
assertThat(matcher.matches("/cdef")).isFalse();
33+
assertThat(matcher.matches(null)).isFalse();
3334

3435
assertSame(matcher.getFilter(false, 2), nonvalidatingFilter);
3536
assertSame(matcher.getFilter(true, 2), validatingFilter);

impl/path/src/test/java/com/github/skjolber/jsonfilter/path/properties/JsonFilterReplacementsPropertiesTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.github.skjolber.jsonfilter.path.properties;
22

33
import static org.junit.Assert.assertTrue;
4+
import static org.junit.jupiter.api.Assertions.assertFalse;
45

56
import org.junit.jupiter.api.Test;
67

@@ -10,12 +11,15 @@ public class JsonFilterReplacementsPropertiesTest {
1011
public void test() {
1112
JsonFilterReplacementsProperties properties = new JsonFilterReplacementsProperties();
1213

14+
assertFalse(properties.hasPrune());
1315
properties.setPrune("*");
1416
assertTrue(properties.hasPrune());
1517

18+
assertFalse(properties.hasAnonymize());
1619
properties.setAnonymize("**");
1720
assertTrue(properties.hasAnonymize());
1821

22+
assertFalse(properties.hasTruncate());
1923
properties.setTruncate("XXX");
2024
assertTrue(properties.hasTruncate());
2125
}

impl/path/src/test/java/com/github/skjolber/jsonfilter/path/properties/ProcessingPropertiesTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.assertTrue;
5+
import static org.junit.jupiter.api.Assertions.assertFalse;
56

67
import org.junit.jupiter.api.Test;
78

@@ -11,13 +12,16 @@ public class ProcessingPropertiesTest {
1112
public void test() {
1213
ProcessingProperties properties = new ProcessingProperties();
1314

15+
assertFalse(properties.hasMaxSize());
1416
properties.setMaxSize(1);
1517
assertTrue(properties.hasMaxSize());
1618
assertEquals(1, properties.getMaxSize());
1719

20+
assertFalse(properties.hasWhitespaceStrategy());
1821
properties.setWhitespaceStrategy(WhitespaceStrategy.NEVER);
1922
assertTrue(properties.hasWhitespaceStrategy());
2023

24+
assertFalse(properties.isValidate());
2125
properties.setValidate(true);
2226
assertTrue(properties.isValidate());
2327
}

0 commit comments

Comments
 (0)