use of org.apache.directory.api.ldap.model.subtree.ItemRefinement in project directory-ldap-api by apache.
the class SubtreeSpecificationParserTest method testSpecWithRefinement.
/**
* Tests the parser with a valid specification with refinement set.
*/
@Test
public void testSpecWithRefinement() throws Exception {
SubtreeSpecification ss = parser.parse(SPEC_WITH_REFINEMENT);
// The items
Refinement topItem = new ItemRefinement(topOC);
Refinement aliasItem = new ItemRefinement(aliasOC);
Refinement personItem = new ItemRefinement(personOC);
Refinement countryItem = new ItemRefinement(countryOC);
// The inner OR refinement or:{item:2.5.6.1, item:person}
List<Refinement> orList = new ArrayList<Refinement>();
orList.add(aliasItem);
orList.add(personItem);
Refinement orRefinement = new OrRefinement(orList);
// The inner AND refinement and:{ item:2.5.6.0, or:... }
List<Refinement> innerAndList = new ArrayList<Refinement>();
innerAndList.add(topItem);
innerAndList.add(orRefinement);
Refinement innerAndRefinement = new AndRefinement(innerAndList);
// The NOT refinement not:item:2.5.6.2
Refinement notRefinement = new NotRefinement(countryItem);
// The outer AND refinement and:{and:..., not:...}
List<Refinement> outerAndList = new ArrayList<Refinement>();
outerAndList.add(innerAndRefinement);
outerAndList.add(notRefinement);
StringBuilder buffer = new StringBuilder();
ss.getRefinement().printRefinementToBuffer(buffer);
// assertEquals( outerAndRefinement.toString(), buffer );
assertEquals("and: { and: { item: 2.5.6.0, or: { item: 2.5.6.1, item: person } }, not: item: 2.5.6.2 }", buffer.toString());
}
Aggregations