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