/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.index.config; import java.util.List; import org.jdom.Document; import org.jdom.input.SAXBuilder; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class IndexDefinitionBuilderTest { private IndexDefinitionBuilder builder; private Document inputDoc; private Document loadTestDocument() throws Exception { SAXBuilder builder = new SAXBuilder(); return builder.build( getClass().getResourceAsStream( getClass().getSimpleName() + ".xml" ) ); } @Before public void init() throws Exception { this.builder = new IndexDefinitionBuilder(); this.inputDoc = loadTestDocument(); } @Test public void testBuilder() { List<IndexDefinition> result = this.builder.buildList( this.inputDoc.getRootElement() ); Assert.assertEquals( 9, result.size() ); assertEquals( result.get( 0 ), "data/person/firstName", "contentdata/person/firstName" ); assertEquals( result.get( 1 ), "data/colorCount", "count(//favouriteColor)" ); assertEquals( result.get( 2 ), "data/colorList", "string-join(saxon:sort(//favouriteColor), ',')" ); assertEquals( result.get( 3 ), "data/a", "contentdata/a" ); assertEquals( result.get( 4 ), "data/b", "contentdata/b" ); assertEquals( result.get( 5 ), "data/c", "c" ); assertEquals( result.get( 6 ), "data/d", "contentdata/d" ); assertEquals( result.get( 7 ), "data/e", "contentdata/e" ); assertEquals( result.get( 8 ), "data/f", "contentdata/f" ); } private void assertEquals( IndexDefinition def, String name, String xpath ) { Assert.assertNotNull( def ); Assert.assertEquals( name, def.getName() ); Assert.assertEquals( xpath, def.getXPath() ); } }