// Path: src/test/java/org/jboss/elasticsearch/tools/content/testtools/TestUtils.java
// public abstract class TestUtils {
// 
// 	/**
// 	 * Assert passed string is same as contnt of given file loaded from classpath.
// 	 * 
// 	 * @param expectedFilePath path to file inside classpath
// 	 * @param actual content to assert
// 	 * @throws IOException
// 	 */
// 	public static void assertStringFromClasspathFile(String expectedFilePath, String actual) throws IOException {
// 		Assert.assertEquals(readStringFromClasspathFile(expectedFilePath), actual);
// 	}
// 
// 	/**
// 	 * Read file from classpath into String. UTF-8 encoding expected.
// 	 * 
// 	 * @param filePath in classpath to read data from.
// 	 * @return file content.
// 	 * @throws IOException
// 	 */
// 	public static String readStringFromClasspathFile(String filePath) throws IOException {
// 		StringWriter stringWriter = new StringWriter();
// 		IOUtils.copy(TestUtils.class.getResourceAsStream(filePath), stringWriter, "UTF-8");
// 		return stringWriter.toString();
// 	}
// 
// 	/**
// 	 * Read JSON file from classpath into Map of Map structure.
// 	 * 
// 	 * @param filePath path in classpath pointing to JSON file to read
// 	 * @return parsed JSON file
// 	 * @throws SettingsException
// 	 */
// 	public static Map<String, Object> loadJSONFromClasspathFile(String filePath) throws SettingsException {
// 		XContentParser parser = null;
// 		try {
// 			parser = XContentFactory.xContent(XContentType.JSON).createParser(TestUtils.class.getResourceAsStream(filePath));
// 			return parser.mapAndClose();
// 		} catch (IOException e) {
// 			throw new SettingsException(e.getMessage(), e);
// 		} finally {
// 			if (parser != null)
// 				parser.close();
// 		}
// 	}
// 
// }


import java.util.List;
import java.util.Map;
import junit.framework.Assert;
import org.elasticsearch.client.Client;
import org.jboss.elasticsearch.tools.content.testtools.TestUtils;
import org.junit.Test;
import static org.mockito.Mockito.mock;
	}

	@Test(expected = IllegalArgumentException.class)
	public void createPreprocessor_class_unknown() {
		Client clientMock = mock(Client.class);

		Map<String, Object> preprocessorConfig = getTestingPreprocessorConfig();
		preprocessorConfig.put(StructuredContentPreprocessorFactory.CFG_CLASS, "org.unknown.Test");
		StructuredContentPreprocessorFactory.createPreprocessor(preprocessorConfig, clientMock);
	}

	@Test(expected = IllegalArgumentException.class)
	public void createPreprocessor_class_badtype() {
		Client clientMock = mock(Client.class);

		Map<String, Object> preprocessorConfig = getTestingPreprocessorConfig();
		preprocessorConfig.put(StructuredContentPreprocessorFactory.CFG_CLASS, "java.lang.String");
		StructuredContentPreprocessorFactory.createPreprocessor(preprocessorConfig, clientMock);
	}

	@Test(expected = IllegalArgumentException.class)
	public void createPreprocessor_settings_badtype() {
		Client clientMock = mock(Client.class);
		Map<String, Object> preprocessorConfig = getTestingPreprocessorConfig();
		preprocessorConfig.put(StructuredContentPreprocessorFactory.CFG_SETTINGS, "");
		StructuredContentPreprocessorFactory.createPreprocessor(preprocessorConfig, clientMock);
	}

	@SuppressWarnings("unchecked")
	private Map<String, Object> getTestingPreprocessorConfig() {
// Path: src/test/java/org/jboss/elasticsearch/tools/content/testtools/TestUtils.java
// public abstract class TestUtils {
// 
// 	/**
// 	 * Assert passed string is same as contnt of given file loaded from classpath.
// 	 * 
// 	 * @param expectedFilePath path to file inside classpath
// 	 * @param actual content to assert
// 	 * @throws IOException
// 	 */
// 	public static void assertStringFromClasspathFile(String expectedFilePath, String actual) throws IOException {
// 		Assert.assertEquals(readStringFromClasspathFile(expectedFilePath), actual);
// 	}
// 
// 	/**
// 	 * Read file from classpath into String. UTF-8 encoding expected.
// 	 * 
// 	 * @param filePath in classpath to read data from.
// 	 * @return file content.
// 	 * @throws IOException
// 	 */
// 	public static String readStringFromClasspathFile(String filePath) throws IOException {
// 		StringWriter stringWriter = new StringWriter();
// 		IOUtils.copy(TestUtils.class.getResourceAsStream(filePath), stringWriter, "UTF-8");
// 		return stringWriter.toString();
// 	}
// 
// 	/**
// 	 * Read JSON file from classpath into Map of Map structure.
// 	 * 
// 	 * @param filePath path in classpath pointing to JSON file to read
// 	 * @return parsed JSON file
// 	 * @throws SettingsException
// 	 */
// 	public static Map<String, Object> loadJSONFromClasspathFile(String filePath) throws SettingsException {
// 		XContentParser parser = null;
// 		try {
// 			parser = XContentFactory.xContent(XContentType.JSON).createParser(TestUtils.class.getResourceAsStream(filePath));
// 			return parser.mapAndClose();
// 		} catch (IOException e) {
// 			throw new SettingsException(e.getMessage(), e);
// 		} finally {
// 			if (parser != null)
// 				parser.close();
// 		}
// 	}
// 
// }


// Path: src/test/java/org/jboss/elasticsearch/tools/content/StructuredContentPreprocessorFactoryTest.java
import java.util.List;
import java.util.Map;
import junit.framework.Assert;
import org.elasticsearch.client.Client;
import org.jboss.elasticsearch.tools.content.testtools.TestUtils;
import org.junit.Test;
import static org.mockito.Mockito.mock;

	}

	@Test(expected = IllegalArgumentException.class)
	public void createPreprocessor_class_unknown() {
		Client clientMock = mock(Client.class);

		Map<String, Object> preprocessorConfig = getTestingPreprocessorConfig();
		preprocessorConfig.put(StructuredContentPreprocessorFactory.CFG_CLASS, "org.unknown.Test");
		StructuredContentPreprocessorFactory.createPreprocessor(preprocessorConfig, clientMock);
	}

	@Test(expected = IllegalArgumentException.class)
	public void createPreprocessor_class_badtype() {
		Client clientMock = mock(Client.class);

		Map<String, Object> preprocessorConfig = getTestingPreprocessorConfig();
		preprocessorConfig.put(StructuredContentPreprocessorFactory.CFG_CLASS, "java.lang.String");
		StructuredContentPreprocessorFactory.createPreprocessor(preprocessorConfig, clientMock);
	}

	@Test(expected = IllegalArgumentException.class)
	public void createPreprocessor_settings_badtype() {
		Client clientMock = mock(Client.class);
		Map<String, Object> preprocessorConfig = getTestingPreprocessorConfig();
		preprocessorConfig.put(StructuredContentPreprocessorFactory.CFG_SETTINGS, "");
		StructuredContentPreprocessorFactory.createPreprocessor(preprocessorConfig, clientMock);
	}

	@SuppressWarnings("unchecked")
	private Map<String, Object> getTestingPreprocessorConfig() {
		List<Map<String, Object>> preprocessorConfigList = (List<Map<String, Object>>) (TestUtils