package io.parallec.core.taskbuilder.targethosts; import io.parallec.core.ParallelClient; import io.parallec.core.TestBase; import io.parallec.core.exception.TargetHostsLoadException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.http.util.Asserts; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class TargetHostsBuilderTest extends TestBase { private ITargetHostsBuilder thb; private static ParallelClient pc; @BeforeClass public static void beforeClass() throws Exception { pc = new ParallelClient(); } @AfterClass public static void shutdown() throws Exception { pc.releaseExternalResources(); } @Before public void setUp() throws Exception { thb = new TargetHostsBuilder(); } @Test public void setTargetHostsFromStringTest() { thb.setTargetHostsFromString("www.jeffpei.com www.restcommander.com"); } @Test public void setTargetHostsFromListTest() { List<String> targetHosts = thb.setTargetHostsFromList(Arrays.asList("www.jeffpei.com", "www.restcommander.com")); logger.info("Get list " + targetHosts.size() + " setTargetHostsFromListTest "); Asserts.check(targetHosts.size()>0, "fail test"); } @Test public void setTargetHostsFromListTestDup() { List<String> targetHostsOrg = new ArrayList<String>(); targetHostsOrg.add("www.restcommander.com"); targetHostsOrg.add("www.restcommander.com"); List<String> targetHosts = thb.setTargetHostsFromList(targetHostsOrg); logger.info("Get list " + targetHosts.size() + " setTargetHostsFromListTest "); Asserts.check(targetHosts.size()==1, "fail test"); } @Test public void setTargetHostsFromListBadHostTest() { List<String> targetHostsOrg = new ArrayList<String>(); targetHostsOrg.add("www.restco mmander.com"); List<String> targetHosts = thb.setTargetHostsFromList(targetHostsOrg); logger.info("Get list " + targetHosts.size() + " setTargetHostsFromListTest "); Asserts.check(targetHosts.size()>0, "fail test"); } @Test public void setTargetHostsFromLineByLineText() { List<String> targetHosts = thb.setTargetHostsFromLineByLineText( FILEPATH_TOP_100, SOURCE_LOCAL); logger.info("Get list " + targetHosts.size() + " from " + FILEPATH_TOP_100); Asserts.check(targetHosts.size()>0, "fail test"); // bad path try { thb.setTargetHostsFromLineByLineText("/badpath", SOURCE_LOCAL); } catch (TargetHostsLoadException e) { logger.info("expected exception: " + e); } } @Test public void setTargetHostsFromUrl() { List<String> targetHosts = thb.setTargetHostsFromLineByLineText( URL_TOP_100, SOURCE_URL); logger.info("Get list " + targetHosts.size() + " from " + URL_TOP_100); Asserts.check(targetHosts.size() > 0, "fail setTargetHostsFromLineByLineText setTargetHostsFromUrl"); } // http://www.parallec.io/userdata/sample_target_hosts_json_path.json @Test public void setTargetHostsFromJsonPathTest() { String jsonPath = "$.sample.small-target-hosts[*].hostName"; List<String> targetHosts = thb.setTargetHostsFromJsonPath(jsonPath, URL_JSON_PATH, SOURCE_URL); logger.info("Get list " + targetHosts.size() + " from json path " + jsonPath + " from file " + URL_JSON_PATH); Asserts.check(targetHosts.size() > 0, "fail setTargetHostsFromJsonPathTest"); // try bad try { thb.setTargetHostsFromJsonPath(jsonPath, FILEPATH_JSON_PATH + "bad", SOURCE_LOCAL); } catch (TargetHostsLoadException e) { logger.info("expected error. Get bad list " + " from json path " + jsonPath + " from file " + URL_JSON_PATH); } } @Test public void setTargetHostsFromCmsQueryUrTest() { List<String> targetHosts = thb .setTargetHostsFromCmsQueryUrl(URL_CMS_QUERY_MULTI_PAGE); logger.info("Get list " + targetHosts.size() + " from " + URL_CMS_QUERY_MULTI_PAGE); List<String> targetHostsSg = thb .setTargetHostsFromCmsQueryUrl(URL_CMS_QUERY_SINGLE_PAGE); logger.info("Get list " + targetHostsSg.size() + " from " + URL_CMS_QUERY_SINGLE_PAGE); Asserts.check(targetHosts.size() > 0, "fail targetHosts setTargetHostsFromCmsQueryUrTest"); Asserts.check(targetHostsSg.size() > 0, "fail targetHostsSg setTargetHostsFromCmsQueryUrTest"); // null query try { thb.setTargetHostsFromCmsQueryUrl(null); } catch (TargetHostsLoadException e) { logger.info("expected exception: " + e); } // duplicate hosts thb.setTargetHostsFromCmsQueryUrl( "http://www.parallec.io/cms/repositories/cmsdb/branches" + "/main/query/sample_cms_query_results_single_page_duplicate.json"); // empty hosts thb.setTargetHostsFromCmsQueryUrl( "http://www.parallec.io/cms/repositories/cmsdb/branches" + "/main/query/sample_cms_query_results_single_page_duplicate_empty.json"); // bad query try { thb.setTargetHostsFromCmsQueryUrl("http://1www.parallec.io/cms/repositories/cmsdb/branches" + "/main/query/sample_cms_query_results_single_page.json"); } catch (TargetHostsLoadException e) { logger.info("expected exception: " + e); } // with projection null/empty/wrong projection thb.setTargetHostsFromCmsQueryUrl( "http://www.parallec.io/cms/repositories/cmsdb/branches" + "/main/query/sample_cms_query_results_single_page.json", null); thb.setTargetHostsFromCmsQueryUrl( "http://www.parallec.io/cms/repositories/cmsdb/branches" + "/main/query/sample_cms_query_results_single_page.json", ""); thb.setTargetHostsFromCmsQueryUrl( "http://www.parallec.io/cms/repositories/cmsdb/branches" + "/main/query/sample_cms_query_results_single_page.json", "labelbad"); } }