@Test void testSetIncludes() { JsonSerializer serializer = new JsonSerializer(); serializer.include("people.hobbies", "phones", "home", "people.resume"); assertEquals(4, serializer.rules.totalRules()); assertEquals("[people.hobbies]", serializer.rules.getRule(0).toString()); assertEquals("[phones]", serializer.rules.getRule(1).toString()); assertEquals("[home]", serializer.rules.getRule(2).toString()); assertEquals("[people.resume]", serializer.rules.getRule(3).toString()); }
@Test void testStrictMode() { Cook cook = new Cook(); JsonAnnotationManager jam = JsonAnnotationManager.get(); TypeData typeData = jam.lookupTypeData(Cook.class); assertEquals(1, typeData.rules.totalIncludeRules()); assertEquals(1, typeData.rules.totalExcludeRules()); assertEquals("ccc", typeData.rules.getRule(0)); assertEquals("bbb", typeData.rules.getRule(1)); JsonSerializer jsonSerializer = new JsonSerializer(); String json = jsonSerializer.serialize(cook); assertTrue(json.contains("\"aaa\"")); assertFalse(json.contains("\"bbb\"")); assertTrue(json.contains("\"ccc\"")); // now, strict = true, serialize only annotated properties! MasterCook masterCook = new MasterCook(); typeData = jam.lookupTypeData(MasterCook.class); assertEquals(1, typeData.rules.totalIncludeRules()); assertEquals(1, typeData.rules.totalExcludeRules()); assertEquals("ccc", typeData.rules.getRule(0)); assertEquals("bbb", typeData.rules.getRule(1)); json = jsonSerializer.serialize(masterCook); assertFalse(json.contains("\"aaa\"")); assertFalse(json.contains("\"bbb\"")); assertTrue(json.contains("\"ccc\"")); }