Commit bf9a5fca authored by Brian Long's avatar Brian Long
Browse files

add ASIE unit tests

parent 40d13ac2
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
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);
	}

}
+54 −0
Original line number Diff line number Diff line
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));
			}
		};
	}

}
+27 −0
Original line number Diff line number Diff line
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);
	}

}
+23 −0
Original line number Diff line number Diff line
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");
	}

}
+34 −0
Original line number Diff line number Diff line
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());
	}

}
Loading