add ASIE unit tests
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
package com.inteligr8.alfresco.asie;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
import com.inteligr8.alfresco.asie.api.CoreAdminApi;
|
||||
import com.inteligr8.rs.ClientJerseyImpl;
|
||||
|
||||
public class AsieClient extends ClientJerseyImpl {
|
||||
|
||||
public AsieClient(String hostname) {
|
||||
super(new AsieClientConfiguration().withHostname(hostname));
|
||||
this.register();
|
||||
}
|
||||
|
||||
public AsieClient(URL baseUrl) {
|
||||
super(new AsieClientConfiguration().withBaseUrl(baseUrl.toString()));
|
||||
this.register();
|
||||
}
|
||||
|
||||
public CoreAdminApi getCoreAdminApi() {
|
||||
return this.getApi(this.getConfig().createAuthorizationFilter(), CoreAdminApi.class);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
package com.inteligr8.alfresco.asie;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.inteligr8.rs.AuthorizationFilter;
|
||||
import com.inteligr8.rs.ClientJerseyConfiguration;
|
||||
|
||||
import jakarta.ws.rs.client.ClientRequestContext;
|
||||
|
||||
public class AsieClientConfiguration implements ClientJerseyConfiguration {
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(AsieClientConfiguration.class);
|
||||
private String baseUrl = "http://locahost:8983/solr";
|
||||
private String searchSecret = "alfresco-secret";
|
||||
|
||||
@Override
|
||||
public String getBaseUrl() {
|
||||
return this.baseUrl;
|
||||
}
|
||||
|
||||
public AsieClientConfiguration withBaseUrl(String baseUrl) {
|
||||
this.baseUrl = baseUrl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AsieClientConfiguration withHostname(String hostname) {
|
||||
this.baseUrl = "http://" + hostname + ":8983/solr";
|
||||
return this;
|
||||
}
|
||||
|
||||
public AsieClientConfiguration withSearchSecret(String searchSecret) {
|
||||
this.searchSecret = searchSecret;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AuthorizationFilter createAuthorizationFilter() {
|
||||
if (this.searchSecret == null)
|
||||
return null;
|
||||
|
||||
return new AuthorizationFilter() {
|
||||
@Override
|
||||
public void filter(ClientRequestContext requestContext) throws IOException {
|
||||
logger.trace("Adding ASIE secret for authorization ...");
|
||||
requestContext.getHeaders().addAll("X-Alfresco-Search-Secret", Arrays.asList(searchSecret));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
package com.inteligr8.alfresco.asie;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
|
||||
public class AssertionUtil {
|
||||
|
||||
public static <T> T assertNotNull(T obj) {
|
||||
Assertions.assertNotNull(obj);
|
||||
return obj;
|
||||
}
|
||||
|
||||
public static <T> T assertNotNull(T obj, String message) {
|
||||
Assertions.assertNotNull(obj, message);
|
||||
return obj;
|
||||
}
|
||||
|
||||
public static void assertType(Object obj, Class<?> type) {
|
||||
Assertions.assertNotNull(obj);
|
||||
Assertions.assertEquals(type, obj.getClass());
|
||||
}
|
||||
|
||||
public static void assertType(Object obj, Class<?> type, String message) {
|
||||
Assertions.assertNotNull(obj, message);
|
||||
Assertions.assertEquals(type, obj.getClass(), message);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
package com.inteligr8.alfresco.asie.api;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.inteligr8.alfresco.asie.AsieClient;
|
||||
|
||||
public class AbstractApiUnitTest {
|
||||
|
||||
protected Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
protected static AsieClient client;
|
||||
protected static String defaultCore = "alfresco";
|
||||
|
||||
@BeforeAll
|
||||
private static void init() throws MalformedURLException {
|
||||
client = new AsieClient("localhost");
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,34 @@
|
||||
package com.inteligr8.alfresco.asie.api;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.inteligr8.alfresco.asie.AssertionUtil;
|
||||
import com.inteligr8.alfresco.asie.model.ActionCoreResponse;
|
||||
import com.inteligr8.alfresco.asie.model.core.ReindexRequest;
|
||||
import com.inteligr8.solr.model.Action;
|
||||
import com.inteligr8.solr.model.Action.Status;
|
||||
import com.inteligr8.solr.model.Cores;
|
||||
import com.inteligr8.solr.model.ResponseHeader;
|
||||
|
||||
public class CoreAdminReindexUnitTest extends AbstractApiUnitTest {
|
||||
|
||||
@Test
|
||||
public void reindex() {
|
||||
CoreAdminApi api = client.getCoreAdminApi();
|
||||
|
||||
ActionCoreResponse<Action> response = api.reindex(
|
||||
new ReindexRequest()
|
||||
.withCore(defaultCore));
|
||||
Assertions.assertNotNull(response);
|
||||
|
||||
ResponseHeader responseHeader = AssertionUtil.assertNotNull(response.getResponseHeader());
|
||||
Assertions.assertEquals(0, responseHeader.getStatus());
|
||||
|
||||
Cores<Action> cores = AssertionUtil.assertNotNull(response.getCores());
|
||||
Action action = AssertionUtil.assertNotNull(cores.getByCore(defaultCore));
|
||||
|
||||
Assertions.assertEquals(Status.Scheduled, action.getStatus());
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,96 @@
|
||||
package com.inteligr8.alfresco.asie.api;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.inteligr8.alfresco.asie.AsieClient;
|
||||
import com.inteligr8.alfresco.asie.AssertionUtil;
|
||||
import com.inteligr8.alfresco.asie.model.core.Report;
|
||||
import com.inteligr8.alfresco.asie.model.core.ReportRequest;
|
||||
import com.inteligr8.alfresco.asie.model.core.ReportResponse;
|
||||
import com.inteligr8.alfresco.asie.model.core.Summary;
|
||||
import com.inteligr8.alfresco.asie.model.core.SummaryRequest;
|
||||
import com.inteligr8.alfresco.asie.model.core.SummaryResponse;
|
||||
import com.inteligr8.solr.model.CoreMetadata;
|
||||
import com.inteligr8.solr.model.Cores;
|
||||
import com.inteligr8.solr.model.ResponseHeader;
|
||||
import com.inteligr8.solr.model.core.StatusRequest;
|
||||
import com.inteligr8.solr.model.core.StatusResponse;
|
||||
|
||||
import jakarta.ws.rs.ProcessingException;
|
||||
|
||||
public class CoreAdminStatusUnitTest extends AbstractApiUnitTest {
|
||||
|
||||
@Test
|
||||
public void noHost() {
|
||||
AsieClient client = new AsieClient("doesnotexist");
|
||||
CoreAdminApi api = client.getCoreAdminApi();
|
||||
|
||||
Assertions.assertThrows(ProcessingException.class, () -> {
|
||||
api.getStatus(
|
||||
new StatusRequest()
|
||||
.withCore(defaultCore));
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void summary() {
|
||||
CoreAdminApi api = client.getCoreAdminApi();
|
||||
|
||||
SummaryResponse response = api.getSummary(
|
||||
new SummaryRequest()
|
||||
.withCore(defaultCore));
|
||||
Assertions.assertNotNull(response);
|
||||
|
||||
ResponseHeader responseHeader = AssertionUtil.assertNotNull(response.getResponseHeader());
|
||||
Assertions.assertEquals(0, responseHeader.getStatus());
|
||||
|
||||
Cores<Summary> cores = AssertionUtil.assertNotNull(response.getCores());
|
||||
Summary summary = AssertionUtil.assertNotNull(cores.getByCore(defaultCore));
|
||||
|
||||
AssertionUtil.assertType(summary.getByField("Active"), Boolean.class);
|
||||
AssertionUtil.assertType(summary.getByField("Number of Searchers"), Integer.class);
|
||||
AssertionUtil.assertType(summary.getByField("Last Index TX Commit Time"), Long.class);
|
||||
AssertionUtil.assertType(summary.getByField("Last Index TX Commit Date"), String.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void status() {
|
||||
CoreAdminApi api = client.getCoreAdminApi();
|
||||
|
||||
StatusResponse response = api.getStatus(
|
||||
new StatusRequest()
|
||||
.withCore(defaultCore));
|
||||
Assertions.assertNotNull(response);
|
||||
|
||||
ResponseHeader responseHeader = AssertionUtil.assertNotNull(response.getResponseHeader());
|
||||
Assertions.assertEquals(0, responseHeader.getStatus());
|
||||
|
||||
Cores<CoreMetadata> cores = AssertionUtil.assertNotNull(response.getCores());
|
||||
CoreMetadata core = AssertionUtil.assertNotNull(cores.getByCore(defaultCore));
|
||||
|
||||
Assertions.assertEquals(core, core.getName());
|
||||
Assertions.assertNotNull(core.getStartDateTime());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void report() {
|
||||
CoreAdminApi api = client.getCoreAdminApi();
|
||||
|
||||
ReportResponse response = api.getReport(
|
||||
new ReportRequest()
|
||||
.withCore(defaultCore));
|
||||
Assertions.assertNotNull(response);
|
||||
|
||||
ResponseHeader responseHeader = AssertionUtil.assertNotNull(response.getResponseHeader());
|
||||
Assertions.assertEquals(0, responseHeader.getStatus());
|
||||
|
||||
Cores<Report> cores = AssertionUtil.assertNotNull(response.getCores());
|
||||
Report report = AssertionUtil.assertNotNull(cores.getByCore(defaultCore));
|
||||
|
||||
AssertionUtil.assertType(report.getByField("Index error count"), Integer.class);
|
||||
AssertionUtil.assertType(report.getByField("Last indexed transaction commit time"), Long.class);
|
||||
AssertionUtil.assertType(report.getByField("Last indexed transaction commit date"), String.class);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user