Skip to content

Commit

Permalink
Add remaining tests
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Widdis <widdis@gmail.com>
  • Loading branch information
dbwiddis committed Sep 16, 2022
1 parent b1deca5 commit 891959d
Show file tree
Hide file tree
Showing 6 changed files with 140 additions and 64 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
package org.opensearch.extensions.rest;

import org.opensearch.extensions.DiscoveryExtension;
import org.opensearch.extensions.ExtensionStringResponse;
import org.opensearch.rest.RestController;
import org.opensearch.rest.RestHandler;
import org.opensearch.transport.TransportResponse;
Expand Down Expand Up @@ -48,14 +49,14 @@ public RestActionsRequestHandler(
* Handles a {@link RegisterRestActionsRequest}.
*
* @param restActionsRequest The request to handle.
* @return A {@link RegisterRestActionsResponse} indicating success.
* @return A {@link ExtensionStringResponse} indicating success.
* @throws Exception if the request is not handled properly.
*/
public TransportResponse handleRegisterRestActionsRequest(RegisterRestActionsRequest restActionsRequest) throws Exception {
DiscoveryExtension discoveryExtension = extensionIdMap.get(restActionsRequest.getUniqueId());
RestHandler handler = new RestSendToExtensionAction(restActionsRequest, discoveryExtension, transportService);
restController.registerHandler(handler);
return new RegisterRestActionsResponse(
return new ExtensionStringResponse(
"Registered extension " + restActionsRequest.getUniqueId() + " to handle REST Actions " + restActionsRequest.getRestActions()
);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*/

package org.opensearch.extensions;

import org.opensearch.common.bytes.BytesReference;
import org.opensearch.common.io.stream.BytesStreamInput;
import org.opensearch.common.io.stream.BytesStreamOutput;
import org.opensearch.test.OpenSearchTestCase;

public class ExtensionResponseTests extends OpenSearchTestCase {

public void testExtensionBooleanResponse() throws Exception {
boolean response = true;
ExtensionBooleanResponse booleanRsponse = new ExtensionBooleanResponse(response);

assertEquals(response, booleanRsponse.getStatus());

try (BytesStreamOutput out = new BytesStreamOutput()) {
booleanRsponse.writeTo(out);
out.flush();
try (BytesStreamInput in = new BytesStreamInput(BytesReference.toBytes(out.bytes()))) {
booleanRsponse = new ExtensionBooleanResponse(in);

assertEquals(response, booleanRsponse.getStatus());
}
}
}

public void testExtensionStringResponse() throws Exception {
String response = "This is a response";
ExtensionStringResponse stringResponse = new ExtensionStringResponse(response);

assertEquals(response, stringResponse.getResponse());

try (BytesStreamOutput out = new BytesStreamOutput()) {
stringResponse.writeTo(out);
out.flush();
try (BytesStreamInput in = new BytesStreamInput(BytesReference.toBytes(out.bytes()))) {
stringResponse = new ExtensionStringResponse(in);

assertEquals(response, stringResponse.getResponse());
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

package org.opensearch.extensions;

import static java.util.Collections.emptyList;
import static java.util.Collections.emptyMap;
import static java.util.Collections.emptySet;
import static org.mockito.ArgumentMatchers.any;
Expand Down Expand Up @@ -58,15 +59,17 @@
import org.opensearch.common.io.stream.StreamInput;
import org.opensearch.common.io.stream.StreamOutput;
import org.opensearch.common.network.NetworkService;
import org.opensearch.common.settings.Setting;
import org.opensearch.common.settings.Settings;
import org.opensearch.common.settings.SettingsModule;
import org.opensearch.common.settings.Setting.Property;
import org.opensearch.common.transport.TransportAddress;
import org.opensearch.common.util.PageCacheRecycler;
import org.opensearch.common.util.concurrent.ThreadContext;
import org.opensearch.env.Environment;
import org.opensearch.env.TestEnvironment;
import org.opensearch.extensions.rest.RegisterRestActionsRequest;
import org.opensearch.extensions.rest.RegisterRestActionsResponse;
import org.opensearch.extensions.settings.RegisterSettingsRequest;
import org.opensearch.index.IndexModule;
import org.opensearch.index.IndexSettings;
import org.opensearch.index.analysis.AnalysisRegistry;
Expand Down Expand Up @@ -163,6 +166,7 @@ public void setup() throws Exception {
new NoneCircuitBreakerService(),
new UsageService()
);
settingsModule = new SettingsModule(Settings.EMPTY, emptyList(), emptyList(), emptySet());
clusterService = createClusterService(threadPool);

extensionDir = createTempDir();
Expand Down Expand Up @@ -369,9 +373,31 @@ public void testHandleRegisterRestActionsRequest() throws Exception {
TransportResponse response = extensionsOrchestrator.restActionsRequestHandler.handleRegisterRestActionsRequest(
registerActionsRequest
);
assertEquals(RegisterRestActionsResponse.class, response.getClass());
assertTrue(((RegisterRestActionsResponse) response).getResponse().contains(uniqueIdStr));
assertTrue(((RegisterRestActionsResponse) response).getResponse().contains(actionsList.toString()));
assertEquals(ExtensionStringResponse.class, response.getClass());
assertTrue(((ExtensionStringResponse) response).getResponse().contains(uniqueIdStr));
assertTrue(((ExtensionStringResponse) response).getResponse().contains(actionsList.toString()));
}

public void testHandleRegisterSettingsRequest() throws Exception {

Path extensionDir = createTempDir();

Files.write(extensionDir.resolve("extensions.yml"), extensionsYmlLines, StandardCharsets.UTF_8);

ExtensionsOrchestrator extensionsOrchestrator = new ExtensionsOrchestrator(settings, extensionDir);

extensionsOrchestrator.initializeServicesAndRestHandler(restController, settingsModule, transportService, clusterService);
String uniqueIdStr = "uniqueid1";
List<Setting<?>> settingsList = List.of(
Setting.boolSetting("falseSetting", false, Property.IndexScope, Property.NodeScope),
Setting.simpleString("fooSetting", "foo", Property.Dynamic)
);
RegisterSettingsRequest registerSettingsRequest = new RegisterSettingsRequest(uniqueIdStr, settingsList);
TransportResponse response = extensionsOrchestrator.settingsRequestHandler.handleRegisterSettingsRequest(registerSettingsRequest);
assertEquals(ExtensionStringResponse.class, response.getClass());
assertTrue(((ExtensionStringResponse) response).getResponse().contains(uniqueIdStr));
assertTrue(((ExtensionStringResponse) response).getResponse().contains("falseSetting"));
assertTrue(((ExtensionStringResponse) response).getResponse().contains("fooSetting"));
}

public void testHandleRegisterRestActionsRequestWithInvalidMethod() throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,4 @@ public void testRegisterRestActionsRequest() throws Exception {
}
}
}

public void testRegisterRestActionsResponse() throws Exception {
String response = "This is a response";
RegisterRestActionsResponse registerRestActionsResponse = new RegisterRestActionsResponse(response);

assertEquals(response, registerRestActionsResponse.getResponse());

try (BytesStreamOutput out = new BytesStreamOutput()) {
registerRestActionsResponse.writeTo(out);
out.flush();
try (BytesStreamInput in = new BytesStreamInput(BytesReference.toBytes(out.bytes()))) {
registerRestActionsResponse = new RegisterRestActionsResponse(in);

assertEquals(response, registerRestActionsResponse.getResponse());
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*/

package org.opensearch.extensions.settings;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.opensearch.common.bytes.BytesReference;
import org.opensearch.common.io.stream.BytesStreamInput;
import org.opensearch.common.io.stream.BytesStreamOutput;
import org.opensearch.common.settings.Setting;
import org.opensearch.common.settings.Setting.Property;
import org.opensearch.common.unit.ByteSizeUnit;
import org.opensearch.common.unit.ByteSizeValue;
import org.opensearch.common.unit.TimeValue;
import org.opensearch.test.OpenSearchTestCase;

public class RegisterSettingsTests extends OpenSearchTestCase {

public void testRegisterSettingsRequest() throws Exception {
String uniqueIdStr = "uniqueid1";
List<Setting<?>> expected = List.of(
Setting.boolSetting("falseSetting", false, Property.IndexScope, Property.NodeScope),
Setting.simpleString("fooSetting", "foo", Property.Dynamic),
Setting.timeSetting("timeSetting", new TimeValue(5, TimeUnit.MILLISECONDS), Property.Dynamic),
Setting.byteSizeSetting("byteSizeSetting", new ByteSizeValue(10, ByteSizeUnit.KB), Property.Dynamic)
);
RegisterSettingsRequest registerSettingsRequest = new RegisterSettingsRequest(uniqueIdStr, expected);

assertEquals(uniqueIdStr, registerSettingsRequest.getUniqueId());
List<Setting<?>> settings = registerSettingsRequest.getSettings();
assertEquals(expected.size(), settings.size());
assertTrue(settings.containsAll(expected));
assertTrue(expected.containsAll(settings));

try (BytesStreamOutput out = new BytesStreamOutput()) {
registerSettingsRequest.writeTo(out);
out.flush();
try (BytesStreamInput in = new BytesStreamInput(BytesReference.toBytes(out.bytes()))) {
registerSettingsRequest = new RegisterSettingsRequest(in);

assertEquals(uniqueIdStr, registerSettingsRequest.getUniqueId());
settings = registerSettingsRequest.getSettings();
assertEquals(expected.size(), settings.size());
assertTrue(settings.containsAll(expected));
assertTrue(expected.containsAll(settings));
}
}
}
}

0 comments on commit 891959d

Please sign in to comment.