// 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.ArrayList;
import java.util.HashMap;
import java.util.Map;
import junit.framework.Assert;
import org.elasticsearch.client.Client;
import org.elasticsearch.common.settings.SettingsException;
import org.elasticsearch.common.xcontent.support.XContentMapValues;
import org.jboss.elasticsearch.tools.content.testtools.TestUtils;
import org.junit.Test;
import org.mockito.Mockito;
		tested.init("Test mapper", client, settings);
		Assert.assertEquals("Test mapper", tested.getName());
		Assert.assertEquals(client, tested.client);
		Assert.assertEquals("source", tested.fieldSource);
		Assert.assertEquals("target", tested.fieldTarget);
		Assert.assertNull(tested.defaultValue);
		Assert.assertNull(tested.valueMap);

		// case - some default value and mapping here
		settings.put(SimpleValueMapMapperPreprocessor.CFG_VALUE_DEFAULT, "Default");
		Map<String, String> mapping = new HashMap<String, String>();
		mapping.put("orig", "new");
		settings.put(SimpleValueMapMapperPreprocessor.CFG_VALUE_MAPPING, mapping);
		tested.init("Test mapper", client, settings);
		Assert.assertEquals("Test mapper", tested.getName());
		Assert.assertEquals(client, tested.client);
		Assert.assertEquals("source", tested.fieldSource);
		Assert.assertEquals("target", tested.fieldTarget);
		Assert.assertEquals("Default", tested.defaultValue);
		Assert.assertNotNull(tested.valueMap);
		Assert.assertEquals(1, tested.valueMap.size());
	}

	@SuppressWarnings("unchecked")
	@Test
	public void preprocessData() {
		Client client = Mockito.mock(Client.class);

		SimpleValueMapMapperPreprocessor tested = new SimpleValueMapMapperPreprocessor();
		tested
// 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/SimpleValueMapMapperPreprocessorTest.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import junit.framework.Assert;
import org.elasticsearch.client.Client;
import org.elasticsearch.common.settings.SettingsException;
import org.elasticsearch.common.xcontent.support.XContentMapValues;
import org.jboss.elasticsearch.tools.content.testtools.TestUtils;
import org.junit.Test;
import org.mockito.Mockito;

		tested.init("Test mapper", client, settings);
		Assert.assertEquals("Test mapper", tested.getName());
		Assert.assertEquals(client, tested.client);
		Assert.assertEquals("source", tested.fieldSource);
		Assert.assertEquals("target", tested.fieldTarget);
		Assert.assertNull(tested.defaultValue);
		Assert.assertNull(tested.valueMap);

		// case - some default value and mapping here
		settings.put(SimpleValueMapMapperPreprocessor.CFG_VALUE_DEFAULT, "Default");
		Map<String, String> mapping = new HashMap<String, String>();
		mapping.put("orig", "new");
		settings.put(SimpleValueMapMapperPreprocessor.CFG_VALUE_MAPPING, mapping);
		tested.init("Test mapper", client, settings);
		Assert.assertEquals("Test mapper", tested.getName());
		Assert.assertEquals(client, tested.client);
		Assert.assertEquals("source", tested.fieldSource);
		Assert.assertEquals("target", tested.fieldTarget);
		Assert.assertEquals("Default", tested.defaultValue);
		Assert.assertNotNull(tested.valueMap);
		Assert.assertEquals(1, tested.valueMap.size());
	}

	@SuppressWarnings("unchecked")
	@Test
	public void preprocessData() {
		Client client = Mockito.mock(Client.class);

		SimpleValueMapMapperPreprocessor tested = new SimpleValueMapMapperPreprocessor();
		tested
				.init("Test mapper", client, TestUtils.loadJSONFromClasspathFile("/SimpleValueMapMapper_preprocessData.json"));