package org.jai.search.parts.one; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ExecutionException; import org.elasticsearch.action.admin.cluster.node.info.NodesInfoRequest; import org.elasticsearch.client.Client; import org.jai.search.config.ElasticSearchIndexConfig; import org.jai.search.model.Product; import org.jai.search.test.AbstractSearchJUnit4SpringContextTests; import org.junit.Ignore; import org.junit.Test; public class ElasticSearchPart1Test extends AbstractSearchJUnit4SpringContextTests { @Test public void testGetClient() { Client client = searchClientService.getClient(); assertNotNull(client); } @Test public void setupAllIndices() { //no parent stuff // setupIndexService.setupAllIndices(false); //no child stuff // setupIndexService.setupAllIndices(true); } @Test public void indexHandling() { ElasticSearchIndexConfig config = ElasticSearchIndexConfig.NL_WEBSITE; if(setupIndexService.deleteIndex(config.getIndexAliasName())) { //create new index setupIndexService.createIndex(config); //check index exists assertTrue(setupIndexService.isIndexExists(config.getIndexAliasName())); //delete Index assertTrue(setupIndexService.deleteIndex(config.getIndexAliasName())); } } @Test @Ignore public void indexNodesHandling() { //create new index String nodeName = "server3"; searchClientService.addNewNode(nodeName); //Get total nodes try { NodesInfoRequest request = new NodesInfoRequest(); request.nodesIds(); assertEquals(3, searchClientService.getClient().admin().cluster().nodesInfo(request).get().getNodes().length); searchClientService.removeNode(nodeName); assertEquals(2, searchClientService.getClient().admin().cluster().nodesInfo(request).get().getNodes().length); } catch (InterruptedException e) { fail(); } catch (ExecutionException e) { fail(); } } @Test public void indexSettingsHandling() { //Only ElasticSearchIndexConfig config = ElasticSearchIndexConfig.COM_WEBSITE; assertNull(setupIndexService.getIndexSettings(config, "settingname")); String settingToUpdate = "index.number_of_replicas"; assertEquals("1", setupIndexService.getIndexSettings(config, settingToUpdate)); Map<String, Object> settings = new HashMap<String, Object>(); settings.put(settingToUpdate, 2); //create new index document type setupIndexService.updateIndexSettings(config, settings); assertEquals("2", setupIndexService.getIndexSettings(config, settingToUpdate)); } @Test public void indexDocumentTypeHandling() { ElasticSearchIndexConfig config = ElasticSearchIndexConfig.COM_WEBSITE; setupIndexService.deleteIndex(config.getIndexAliasName()); //have index in place first. setupIndexService.createIndex(config); //create new index document type setupIndexService.updateDocumentTypeMapping(config, null, "testDocumentType", false); } @Test public void indexDocumentHandling() { ElasticSearchIndexConfig config = ElasticSearchIndexConfig.COM_WEBSITE; Long productId = 123456l; assertFalse(indexProductData.isProductExists(config, productId)); Product product = new Product(); product.setId(productId); product.setTitle("blah blah"); product.setPrice(BigDecimal.valueOf(5)); product.setAvailableOn(new Date()); indexProductData.indexProduct(config, null, product); assertTrue(indexProductData.isProductExists(config, productId)); indexProductData.deleteProduct(config, product.getId()); assertFalse(indexProductData.isProductExists(config, productId)); } @Test public void aliasHandling() { ElasticSearchIndexConfig config = ElasticSearchIndexConfig.COM_WEBSITE; assertFalse(setupIndexService.isAliasExists("aliasetc")); assertTrue(setupIndexService.isAliasExists(config.getIndexAliasName())); } }