Skip to content

Commit

Permalink
Integration TestAdded Signed-off-by: Aparajita Pandey <aparajita31pan…
Browse files Browse the repository at this point in the history
  • Loading branch information
aparajita31pandey committed Oct 3, 2024
1 parent 2541e18 commit ee4883d
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,10 @@ protected String makeRequest(String query, int fetch_size) {
return String.format("{ \"fetch_size\": \"%s\", \"query\": \"%s\" }", fetch_size, query);
}

protected String makeRequest(String query, int fetch_size, String filterQuery) {
return String.format("{ \"fetch_size\": \"%s\", \"query\": \"%s\", \"filter\" : %s }", fetch_size, query, filterQuery);
}

protected String makeFetchLessRequest(String query) {
return String.format("{\n" + " \"query\": \"%s\"\n" + "}", query);
}
Expand Down
48 changes: 48 additions & 0 deletions integ-test/src/test/java/org/opensearch/sql/sql/PaginationIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.opensearch.sql.legacy.TestUtils.getResponseBody;
import static org.opensearch.sql.legacy.TestsConstants.TEST_INDEX_CALCS;
import static org.opensearch.sql.legacy.TestsConstants.TEST_INDEX_ONLINE;

Expand All @@ -17,6 +18,7 @@
import org.junit.Ignore;
import org.junit.Test;
import org.opensearch.client.Request;
import org.opensearch.client.Response;
import org.opensearch.client.RequestOptions;
import org.opensearch.client.ResponseException;
import org.opensearch.sql.common.setting.Settings;
Expand Down Expand Up @@ -215,4 +217,50 @@ public void testQueryWithoutFrom() {
assertEquals(1, response.getInt("total"));
assertEquals(1, response.getJSONArray("datarows").getJSONArray(0).getInt(0));
}
@Test
public void testAlias() throws Exception {
String indexName = Index.ONLINE.getName();
String aliasName = "alias_ONLINE";
String filterQuery = "{\n" +
" \"term\": {\n" +
" \"107\": 72 \n" +
" }\n" +
"}";

//Execute the SQL query with filter
String selectQuery = "SELECT * FROM " + TEST_INDEX_ONLINE;
JSONObject initialResponse = new JSONObject(executeFetchQuery(selectQuery, 10, "jdbc", filterQuery));
assertEquals(initialResponse.getInt("size"), 10);

//Create an alias
String createAliasQuery = String.format("{ \"actions\": [ { \"add\": { \"index\": \"%s\", \"alias\": \"%s\" } } ] }", indexName, aliasName);
Request createAliasRequest = new Request("POST", "/_aliases");
createAliasRequest.setJsonEntity(createAliasQuery);
JSONObject aliasResponse = new JSONObject(executeRequest(createAliasRequest));

// Assert that alias creation was acknowledged
assertTrue(aliasResponse.getBoolean("acknowledged"));

//Query using the alias
String aliasSelectQuery = String.format("SELECT * FROM %s", aliasName);
JSONObject aliasQueryResponse = new JSONObject(executeFetchQuery(aliasSelectQuery, 4, "jdbc"));
assertEquals(4, aliasQueryResponse.getInt("size"));

//Query using the alias with filter
JSONObject aliasFilteredResponse = new JSONObject(executeFetchQuery(aliasSelectQuery, 4, "jdbc", filterQuery));
assertEquals(initialResponse.getInt("size"), 4);
}


private String executeFetchQuery(String query, int fetchSize, String requestType, String filter) throws IOException{
String endpoint = "/_plugins/_sql?format=" + requestType;
String requestBody = makeRequest(query, fetchSize, filter);

Request sqlRequest = new Request("POST", endpoint);
sqlRequest.setJsonEntity(requestBody);

Response response = client().performRequest(sqlRequest);
String responseString = getResponseBody(response, true);
return responseString;
}
}

0 comments on commit ee4883d

Please sign in to comment.