package mil.nga.giat.geowave.cli.geoserver;
import mil.nga.giat.geowave.cli.geoserver.GeoServerConfig;
import mil.nga.giat.geowave.cli.geoserver.GeoServerRestClient;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
public class GeoServerRestClientTest
{
WebTarget webTarget;
GeoServerConfig config;
GeoServerRestClient client;
private WebTarget mockedWebTarget() {
WebTarget webTarget = Mockito.mock(WebTarget.class);
Invocation.Builder invBuilder = Mockito.mock(Invocation.Builder.class);
Response response = Mockito.mock(Response.class);
Mockito.when(
webTarget.path(Mockito.anyString())).thenReturn(
webTarget);
Mockito.when(
webTarget.request()).thenReturn(
invBuilder);
Mockito.when(
invBuilder.get()).thenReturn(
response);
Mockito.when(
invBuilder.delete()).thenReturn(
response);
Mockito.when(
invBuilder.post(Mockito.any(Entity.class))).thenReturn(
response);
return webTarget;
}
@Before
public void prepare() {
webTarget = mockedWebTarget();
config = new GeoServerConfig();
client = new GeoServerRestClient(
config,
webTarget);
}
@Test
public void testGetFeatureLayer() {
client.getFeatureLayer("some_layer");
Mockito.verify(
webTarget).path(
"rest/layers/some_layer.json");
}
@Test
public void testGetConfig() {
GeoServerConfig returnedConfig = client.getConfig();
Assert.assertEquals(
config,
returnedConfig);
}
@Test
public void testGetCoverage() {
client.getCoverage(
"some_workspace",
"some_cvgStore",
"some_coverage");
Mockito.verify(
webTarget).path(
"rest/workspaces/some_workspace/coveragestores/some_cvgStore/coverages/some_coverage.json");
}
@Test
public void testGetCoverageStores() {
client.getCoverageStores("some_workspace");
Mockito.verify(
webTarget).path(
"rest/workspaces/some_workspace/coveragestores.json");
}
@Test
public void testGetCoverages() {
client.getCoverages(
"some_workspace",
"some_cvgStore");
Mockito.verify(
webTarget).path(
"rest/workspaces/some_workspace/coveragestores/some_cvgStore/coverages.json");
}
@Test
public void testGetDatastore() {
client.getDatastore(
"some_workspace",
"some_datastore");
Mockito.verify(
webTarget).path(
"rest/workspaces/some_workspace/datastores/some_datastore.json");
}
@Test
public void testGetStyle() {
client.getStyle("some_style");
Mockito.verify(
webTarget).path(
"rest/styles/some_style.sld");
}
@Test
public void testGetStyles() {
client.getStyles();
Mockito.verify(
webTarget).path(
"rest/styles.json");
}
@Test
public void testGetWorkspaces() {
client.getWorkspaces();
Mockito.verify(
webTarget).path(
"rest/workspaces.json");
}
@Test
public void addFeatureLayer() {
client.addFeatureLayer(
"some_workspace",
"some_datastore",
"some_layer",
"some_style");
Mockito.verify(
webTarget).path(
"rest/layers/some_layer.json");
}
@Test
public void addCoverage() {
client.addCoverage(
"some_workspace",
"some_cvgStore",
"some_coverage");
Mockito.verify(
webTarget).path(
"rest/workspaces/some_workspace/coveragestores/some_cvgStore/coverages");
}
@Test
public void addWorkspace() {
client.addWorkspace("some_workspace");
Mockito.verify(
webTarget).path(
"rest/workspaces");
}
}