@Test
public void testLogSearchWithSingleComponentNameAndLogLevelParameters() throws Exception {

    stubSolrUrl();
    int testStart = 100;
    int testLimit = 2000;
    List<String> testLogLevels = Collections.singletonList("INFO");
    String testSearchString = "helloworld";
    List<String> testComponentNames = Collections.singletonList("testComponent");
    LogSearchCriteria logSearchCriteria = new LogSearchCriteria.Builder(TEST_APP_ID, TEST_FROM, TEST_TO)
        .setLogLevels(testLogLevels)
        .setSearchString(testSearchString)
        .setComponentNames(testComponentNames)
        .setStart(testStart)
        .setLimit(testLimit)
        .build();
    LogSearchResult result = logSearch.search(logSearchCriteria);
    // note that the result doesn't change given that we just provide same result from file
    verifyLogSearchResults(result);
    // others are covered from testLogSearchWithFullParameters()
    List<LoggedRequest> requests = wireMockRule.findAll(getRequestedFor(urlPathEqualTo(STUB_REQUEST_API_PATH)));
    assertEquals(1, requests.size());
    LoggedRequest request = requests.get(0);
    QueryParameter fqParam = request.queryParameter("fq");
    assertTrue(fqParam.containsValue(COLUMN_NAME_STREAMLINE_COMPONENT_NAME + ":" + testComponentNames.get(0)));
    assertTrue(fqParam.containsValue(COLUMN_NAME_TYPE + ":" + COLUMN_VALUE_TYPE_WORKER_LOG));
    assertTrue(fqParam.containsValue(COLUMN_NAME_LOG_LEVEL + ":" + testLogLevels.get(0)));
}