Java Code Examples for com.github.tomakehurst.wiremock.verification.LoggedRequest#queryParameter()

The following examples show how to use com.github.tomakehurst.wiremock.verification.LoggedRequest#queryParameter() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AmbariInfraWithStormLogSearchTest.java    From streamline with Apache License 2.0 5 votes vote down vote up
@Test
public void testLogSearchWithMinimumParameters() throws Exception {
    stubSolrUrl();

    LogSearchCriteria logSearchCriteria = new LogSearchCriteria.Builder(TEST_APP_ID, TEST_FROM, TEST_TO).build();
    LogSearchResult result = logSearch.search(logSearchCriteria);
    verifyLogSearchResults(result);

    // please note that space should be escaped to '+' since Wiremock doesn't handle it when matching...
    String dateRangeValue = "%s:[%s+TO+%s]";

    Instant fromInstant = Instant.ofEpochMilli(TEST_FROM);
    Instant toInstant = Instant.ofEpochMilli(TEST_TO);

    dateRangeValue = String.format(dateRangeValue, COLUMN_NAME_LOG_TIME, fromInstant.toString(), toInstant.toString());

    String expectedLogLevels = "(" + String.join("+OR+", AmbariInfraWithStormLogSearch.DEFAULT_LOG_LEVELS) + ")";

    List<LoggedRequest> requests = wireMockRule.findAll(getRequestedFor(urlPathEqualTo(STUB_REQUEST_API_PATH)));
    assertEquals(1, requests.size());

    LoggedRequest request = requests.get(0);

    QueryParameter qParam = request.queryParameter("q");
    assertTrue(qParam.containsValue(COLUMN_NAME_LOG_MESSAGE + ":*"));

    QueryParameter fqParam = request.queryParameter("fq");
    assertTrue(fqParam.containsValue(COLUMN_NAME_STREAMLINE_TOPOLOGY_ID + ":" + TEST_APP_ID));
    assertTrue(fqParam.containsValue(COLUMN_NAME_TYPE + ":" + COLUMN_VALUE_TYPE_WORKER_LOG));
    assertTrue(fqParam.containsValue(dateRangeValue));
    assertTrue(fqParam.containsValue(COLUMN_NAME_LOG_LEVEL + ":" + expectedLogLevels));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_COMPONENT_NAME)));

    QueryParameter sortParam = request.queryParameter("sort");
    assertTrue(sortParam.containsValue(COLUMN_NAME_LOG_TIME + "+asc"));
}
 
Example 2
Source File: AmbariInfraWithStormLogSearchTest.java    From streamline with Apache License 2.0 5 votes vote down vote up
@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)));
}
 
Example 3
Source File: AmbariInfraWithStormLogSearchTest.java    From streamline with Apache License 2.0 5 votes vote down vote up
@Test
public void testEventSearchWithMinimumParameters() throws Exception {
    stubSolrUrl();

    EventSearchCriteria eventSearchCriteria = new EventSearchCriteria.Builder(TEST_APP_ID, TEST_FROM, TEST_TO).build();
    EventSearchResult result = logSearch.searchEvent(eventSearchCriteria);
    verifyEventSearchResults(result);

    // please note that space should be escaped to '+' since Wiremock doesn't handle it when matching...
    String dateRangeValue = "%s:[%s+TO+%s]";

    Instant fromInstant = Instant.ofEpochMilli(TEST_FROM);
    Instant toInstant = Instant.ofEpochMilli(TEST_TO);

    dateRangeValue = String.format(dateRangeValue, COLUMN_NAME_LOG_TIME, fromInstant.toString(), toInstant.toString());

    List<LoggedRequest> requests = wireMockRule.findAll(getRequestedFor(urlPathEqualTo(STUB_REQUEST_API_PATH)));
    assertEquals(1, requests.size());

    LoggedRequest request = requests.get(0);

    QueryParameter qParam = request.queryParameter("q");
    assertTrue(qParam.containsValue(COLUMN_NAME_STREAMLINE_EVENT_ID + ":*"));

    QueryParameter fqParam = request.queryParameter("fq");
    assertTrue(fqParam.containsValue(COLUMN_NAME_TYPE + ":" + COLUMN_VALUE_TYPE_EVENT));
    assertTrue(fqParam.containsValue(COLUMN_NAME_STREAMLINE_TOPOLOGY_ID + ":" + TEST_APP_ID));
    assertTrue(fqParam.containsValue(dateRangeValue));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_COMPONENT_NAME)));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_EVENT_ID)));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_EVENT_ROOT_ID_SET)));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_EVENT_PARENT_ID_SET)));

    QueryParameter sortParam = request.queryParameter("sort");
    assertTrue(sortParam.containsValue(COLUMN_NAME_LOG_TIME + "+asc"));
}
 
Example 4
Source File: AmbariInfraWithStormLogSearchTest.java    From streamline with Apache License 2.0 4 votes vote down vote up
@Test
public void testLogSearchWithFullParameters() throws Exception {
    stubSolrUrl();

    int testStart = 100;
    int testLimit = 2000;
    List<String> testLogLevels = Lists.newArrayList("INFO", "DEBUG");
    String testSearchString = "helloworld";
    List<String> testComponentNames = Lists.newArrayList("testComponent", "testComponent2");

    LogSearchCriteria logSearchCriteria = new LogSearchCriteria.Builder(TEST_APP_ID, TEST_FROM, TEST_TO)
        .setLogLevels(testLogLevels)
        .setSearchString(testSearchString)
        .setComponentNames(testComponentNames)
        .setStart(testStart)
        .setLimit(testLimit)
        .setAscending(false)
        .build();

    LogSearchResult result = logSearch.search(logSearchCriteria);

    // note that the result doesn't change given that we just provide same result from file
    verifyLogSearchResults(result);

    // please note that space should be escaped to '+' since Wiremock doesn't handle it when matching...
    String dateRangeValue = "%s:[%s+TO+%s]";

    Instant fromInstant = Instant.ofEpochMilli(TEST_FROM);
    Instant toInstant = Instant.ofEpochMilli(TEST_TO);

    dateRangeValue = String.format(dateRangeValue, COLUMN_NAME_LOG_TIME, fromInstant.toString(), toInstant.toString());

    String expectedComponentNames = "(" + String.join("+OR+", testComponentNames) + ")";
    String expectedLogLevels = "(" + String.join("+OR+", testLogLevels) + ")";

    List<LoggedRequest> requests = wireMockRule.findAll(getRequestedFor(urlPathEqualTo(STUB_REQUEST_API_PATH)));
    assertEquals(1, requests.size());

    LoggedRequest request = requests.get(0);

    QueryParameter qParam = request.queryParameter("q");
    assertTrue(qParam.containsValue(COLUMN_NAME_LOG_MESSAGE + ":" + testSearchString));

    QueryParameter fqParam = request.queryParameter("fq");
    assertTrue(fqParam.containsValue(COLUMN_NAME_STREAMLINE_TOPOLOGY_ID + ":" + TEST_APP_ID));
    assertTrue(fqParam.containsValue(COLUMN_NAME_TYPE + ":" + COLUMN_VALUE_TYPE_WORKER_LOG));
    assertTrue(fqParam.containsValue(COLUMN_NAME_STREAMLINE_COMPONENT_NAME + ":" + expectedComponentNames));
    assertTrue(fqParam.containsValue(COLUMN_NAME_LOG_LEVEL + ":" + expectedLogLevels));
    assertTrue(fqParam.containsValue(dateRangeValue));

    QueryParameter sortParam = request.queryParameter("sort");
    assertTrue(sortParam.containsValue(COLUMN_NAME_LOG_TIME + "+desc"));

    QueryParameter startParam = request.queryParameter("start");
    assertTrue(startParam.containsValue(String.valueOf(testStart)));

    QueryParameter rowsParam = request.queryParameter("rows");
    assertTrue(rowsParam.containsValue(String.valueOf(testLimit)));
}
 
Example 5
Source File: AmbariInfraWithStormLogSearchTest.java    From streamline with Apache License 2.0 4 votes vote down vote up
@Test
public void testEventSearchWithComponentNamesAndStartAndLimitAndDescendingParameters() throws Exception {
    stubSolrUrl();

    int testStart = 100;
    int testLimit = 2000;
    List<String> testComponentNames = Collections.singletonList("SOURCE");

    EventSearchCriteria eventSearchCriteria = new EventSearchCriteria.Builder(TEST_APP_ID, TEST_FROM, TEST_TO)
            .setComponentNames(testComponentNames).setAscending(false).setStart(testStart).setLimit(testLimit).build();
    EventSearchResult result = logSearch.searchEvent(eventSearchCriteria);
    verifyEventSearchResults(result);

    // please note that space should be escaped to '+' since Wiremock doesn't handle it when matching...
    String dateRangeValue = "%s:[%s+TO+%s]";

    Instant fromInstant = Instant.ofEpochMilli(TEST_FROM);
    Instant toInstant = Instant.ofEpochMilli(TEST_TO);

    dateRangeValue = String.format(dateRangeValue, COLUMN_NAME_LOG_TIME, fromInstant.toString(), toInstant.toString());

    List<LoggedRequest> requests = wireMockRule.findAll(getRequestedFor(urlPathEqualTo(STUB_REQUEST_API_PATH)));
    assertEquals(1, requests.size());

    LoggedRequest request = requests.get(0);

    QueryParameter qParam = request.queryParameter("q");
    assertTrue(qParam.containsValue(COLUMN_NAME_STREAMLINE_EVENT_ID + ":*"));

    QueryParameter fqParam = request.queryParameter("fq");
    assertTrue(fqParam.containsValue(COLUMN_NAME_TYPE + ":" + COLUMN_VALUE_TYPE_EVENT));
    assertTrue(fqParam.containsValue(COLUMN_NAME_STREAMLINE_TOPOLOGY_ID + ":" + TEST_APP_ID));
    assertTrue(fqParam.containsValue(dateRangeValue));
    assertTrue(fqParam.containsValue(COLUMN_NAME_STREAMLINE_COMPONENT_NAME + ":" + testComponentNames.get(0)));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_EVENT_ID)));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_EVENT_ROOT_ID_SET)));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_EVENT_PARENT_ID_SET)));

    QueryParameter sortParam = request.queryParameter("sort");
    assertTrue(sortParam.containsValue(COLUMN_NAME_LOG_TIME + "+desc"));

    QueryParameter startParam = request.queryParameter("start");
    assertTrue(startParam.containsValue(String.valueOf(testStart)));

    QueryParameter rowsParam = request.queryParameter("rows");
    assertTrue(rowsParam.containsValue(String.valueOf(testLimit)));
}
 
Example 6
Source File: AmbariInfraWithStormLogSearchTest.java    From streamline with Apache License 2.0 4 votes vote down vote up
@Test
public void testEventSearchWithEventId() throws Exception {
    stubSolrUrl();

    String testEventId = "b7715c60-74ad-43dd-814a-8a40403a31bc";

    EventSearchCriteria eventSearchCriteria = new EventSearchCriteria.Builder(TEST_APP_ID, TEST_FROM, TEST_TO)
            .setSearchEventId(testEventId).build();
    EventSearchResult result = logSearch.searchEvent(eventSearchCriteria);
    verifyEventSearchResults(result);

    // please note that space should be escaped to '+' since Wiremock doesn't handle it when matching...
    String dateRangeValue = "%s:[%s+TO+%s]";

    Instant fromInstant = Instant.ofEpochMilli(TEST_FROM);
    Instant toInstant = Instant.ofEpochMilli(TEST_TO);

    dateRangeValue = String.format(dateRangeValue, COLUMN_NAME_LOG_TIME, fromInstant.toString(), toInstant.toString());

    List<LoggedRequest> requests = wireMockRule.findAll(getRequestedFor(urlPathEqualTo(STUB_REQUEST_API_PATH)));
    assertEquals(1, requests.size());

    LoggedRequest request = requests.get(0);

    QueryParameter qParam = request.queryParameter("q");
    assertTrue(qParam.containsValue(COLUMN_NAME_STREAMLINE_EVENT_ID + ":*"));

    QueryParameter fqParam = request.queryParameter("fq");
    assertTrue(fqParam.containsValue(COLUMN_NAME_TYPE + ":" + COLUMN_VALUE_TYPE_EVENT));
    assertTrue(fqParam.containsValue(COLUMN_NAME_STREAMLINE_TOPOLOGY_ID + ":" + TEST_APP_ID));
    assertTrue(fqParam.containsValue(dateRangeValue));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_COMPONENT_NAME)));

    String expectedEventIdQuery = COLUMN_NAME_STREAMLINE_EVENT_ID + ":" + testEventId;
    expectedEventIdQuery += "+OR+" + COLUMN_NAME_STREAMLINE_EVENT_ROOT_ID_SET + ":*" + testEventId + "*";
    expectedEventIdQuery += "+OR+" + COLUMN_NAME_STREAMLINE_EVENT_PARENT_ID_SET + ":*" + testEventId + "*";
    assertTrue(fqParam.containsValue(expectedEventIdQuery));

    QueryParameter sortParam = request.queryParameter("sort");
    assertTrue(sortParam.containsValue(COLUMN_NAME_LOG_TIME + "+asc"));
}
 
Example 7
Source File: AmbariInfraWithStormLogSearchTest.java    From streamline with Apache License 2.0 4 votes vote down vote up
@Test
public void testEventSearchWithKeyValuesQueryAndHeadersQuery() throws Exception {
    stubSolrUrl();

    String searchQuery = "hello=world";

    EventSearchCriteria eventSearchCriteria = new EventSearchCriteria.Builder(TEST_APP_ID, TEST_FROM, TEST_TO)
            .setSearchString(searchQuery).build();
    EventSearchResult result = logSearch.searchEvent(eventSearchCriteria);
    verifyEventSearchResults(result);

    // please note that space should be escaped to '+' since Wiremock doesn't handle it when matching...
    String dateRangeValue = "%s:[%s+TO+%s]";

    Instant fromInstant = Instant.ofEpochMilli(TEST_FROM);
    Instant toInstant = Instant.ofEpochMilli(TEST_TO);

    dateRangeValue = String.format(dateRangeValue, COLUMN_NAME_LOG_TIME, fromInstant.toString(), toInstant.toString());

    List<LoggedRequest> requests = wireMockRule.findAll(getRequestedFor(urlPathEqualTo(STUB_REQUEST_API_PATH)));
    assertEquals(1, requests.size());

    LoggedRequest request = requests.get(0);

    QueryParameter qParam = request.queryParameter("q");
    String expectedQuery = COLUMN_NAME_STREAMLINE_EVENT_ID + ":*";
    expectedQuery += "+AND+(";
    expectedQuery += COLUMN_NAME_STREAMLINE_EVENT_KEYVALUES + ":" + searchQuery;
    expectedQuery += "+OR+" + COLUMN_NAME_STREAMLINE_EVENT_HEADERS + ":" + searchQuery;
    expectedQuery += "+OR+" + COLUMN_NAME_STREAMLINE_EVENT_AUX_KEYVALUES + ":" + searchQuery;
    expectedQuery += ")";

    assertTrue(qParam.containsValue(expectedQuery));

    QueryParameter fqParam = request.queryParameter("fq");
    assertTrue(fqParam.containsValue(COLUMN_NAME_TYPE + ":" + COLUMN_VALUE_TYPE_EVENT));
    assertTrue(fqParam.containsValue(COLUMN_NAME_STREAMLINE_TOPOLOGY_ID + ":" + TEST_APP_ID));
    assertTrue(fqParam.containsValue(dateRangeValue));
    assertFalse(fqParam.hasValueMatching(ValuePattern.containing(COLUMN_NAME_STREAMLINE_COMPONENT_NAME)));

    QueryParameter sortParam = request.queryParameter("sort");
    assertTrue(sortParam.containsValue(COLUMN_NAME_LOG_TIME + "+asc"));
}