Skip to content

Commit f8baf17

Browse files
authored
Merge pull request #1033 from ngageoint/mrkev-998
Issue #998
2 parents 86bc2fc + 8dd9cf9 commit f8baf17

4 files changed

Lines changed: 186 additions & 1 deletion

File tree

extensions/cli/geoserver/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,17 @@
4444
<artifactId>geowave-adapter-vector</artifactId>
4545
<version>${project.version}</version>
4646
</dependency>
47+
<dependency>
48+
<groupId>org.mockito</groupId>
49+
<artifactId>mockito-all</artifactId>
50+
<version>1.9.5</version>
51+
<scope>test</scope>
52+
</dependency>
53+
<dependency>
54+
<groupId>junit</groupId>
55+
<artifactId>junit</artifactId>
56+
<version>4.11</version>
57+
<scope>test</scope>
58+
</dependency>
4759
</dependencies>
4860
</project>

extensions/cli/geoserver/src/main/java/mil/nga/giat/geowave/cli/geoserver/GeoServerRestClient.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@ public GeoServerRestClient(
6767
LOGGER.setLevel(Level.DEBUG);
6868
}
6969

70+
public GeoServerRestClient(
71+
final GeoServerConfig config,
72+
WebTarget webTarget ) {
73+
this.config = config;
74+
this.webTarget = webTarget;
75+
LOGGER.setLevel(Level.DEBUG);
76+
}
77+
7078
/**
7179
*
7280
* @return
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
package mil.nga.giat.geowave.cli.geoserver;
2+
3+
import mil.nga.giat.geowave.cli.geoserver.GeoServerConfig;
4+
import mil.nga.giat.geowave.cli.geoserver.GeoServerRestClient;
5+
import org.junit.Assert;
6+
import org.junit.Before;
7+
import org.junit.Test;
8+
import org.mockito.Mockito;
9+
10+
import javax.ws.rs.client.Entity;
11+
import javax.ws.rs.client.Invocation;
12+
import javax.ws.rs.client.WebTarget;
13+
import javax.ws.rs.core.Response;
14+
15+
public class GeoServerRestClientTest
16+
{
17+
WebTarget webTarget;
18+
GeoServerConfig config;
19+
GeoServerRestClient client;
20+
21+
private WebTarget mockedWebTarget() {
22+
WebTarget webTarget = Mockito.mock(WebTarget.class);
23+
Invocation.Builder invBuilder = Mockito.mock(Invocation.Builder.class);
24+
Response response = Mockito.mock(Response.class);
25+
26+
Mockito.when(
27+
webTarget.path(Mockito.anyString())).thenReturn(
28+
webTarget);
29+
Mockito.when(
30+
webTarget.request()).thenReturn(
31+
invBuilder);
32+
33+
Mockito.when(
34+
invBuilder.get()).thenReturn(
35+
response);
36+
Mockito.when(
37+
invBuilder.delete()).thenReturn(
38+
response);
39+
Mockito.when(
40+
invBuilder.post(Mockito.any(Entity.class))).thenReturn(
41+
response);
42+
43+
return webTarget;
44+
45+
}
46+
47+
@Before
48+
public void prepare() {
49+
webTarget = mockedWebTarget();
50+
config = new GeoServerConfig();
51+
client = new GeoServerRestClient(
52+
config,
53+
webTarget);
54+
}
55+
56+
@Test
57+
public void testGetFeatureLayer() {
58+
client.getFeatureLayer("some_layer");
59+
Mockito.verify(
60+
webTarget).path(
61+
"rest/layers/some_layer.json");
62+
}
63+
64+
@Test
65+
public void testGetConfig() {
66+
GeoServerConfig returnedConfig = client.getConfig();
67+
Assert.assertEquals(
68+
config,
69+
returnedConfig);
70+
}
71+
72+
@Test
73+
public void testGetCoverage() {
74+
client.getCoverage(
75+
"some_workspace",
76+
"some_cvgStore",
77+
"some_coverage");
78+
Mockito.verify(
79+
webTarget).path(
80+
"rest/workspaces/some_workspace/coveragestores/some_cvgStore/coverages/some_coverage.json");
81+
}
82+
83+
@Test
84+
public void testGetCoverageStores() {
85+
client.getCoverageStores("some_workspace");
86+
Mockito.verify(
87+
webTarget).path(
88+
"rest/workspaces/some_workspace/coveragestores.json");
89+
}
90+
91+
@Test
92+
public void testGetCoverages() {
93+
client.getCoverages(
94+
"some_workspace",
95+
"some_cvgStore");
96+
Mockito.verify(
97+
webTarget).path(
98+
"rest/workspaces/some_workspace/coveragestores/some_cvgStore/coverages.json");
99+
}
100+
101+
@Test
102+
public void testGetDatastore() {
103+
client.getDatastore(
104+
"some_workspace",
105+
"some_datastore");
106+
Mockito.verify(
107+
webTarget).path(
108+
"rest/workspaces/some_workspace/datastores/some_datastore.json");
109+
}
110+
111+
@Test
112+
public void testGetStyle() {
113+
client.getStyle("some_style");
114+
Mockito.verify(
115+
webTarget).path(
116+
"rest/styles/some_style.sld");
117+
}
118+
119+
@Test
120+
public void testGetStyles() {
121+
client.getStyles();
122+
Mockito.verify(
123+
webTarget).path(
124+
"rest/styles.json");
125+
}
126+
127+
@Test
128+
public void testGetWorkspaces() {
129+
client.getWorkspaces();
130+
Mockito.verify(
131+
webTarget).path(
132+
"rest/workspaces.json");
133+
}
134+
135+
@Test
136+
public void addFeatureLayer() {
137+
client.addFeatureLayer(
138+
"some_workspace",
139+
"some_datastore",
140+
"some_layer",
141+
"some_style");
142+
Mockito.verify(
143+
webTarget).path(
144+
"rest/layers/some_layer.json");
145+
}
146+
147+
@Test
148+
public void addCoverage() {
149+
client.addCoverage(
150+
"some_workspace",
151+
"some_cvgStore",
152+
"some_coverage");
153+
Mockito.verify(
154+
webTarget).path(
155+
"rest/workspaces/some_workspace/coveragestores/some_cvgStore/coverages");
156+
}
157+
158+
@Test
159+
public void addWorkspace() {
160+
client.addWorkspace("some_workspace");
161+
Mockito.verify(
162+
webTarget).path(
163+
"rest/workspaces");
164+
}
165+
}

test/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@
254254
<log4j.configuration>file:${project.build.testOutputDirectory}/log4j-test.properties</log4j.configuration>
255255
<java.util.logging.config.file>${project.build.testOutputDirectory}/jul-test.properties</java.util.logging.config.file>
256256
</systemPropertyVariables>
257-
<!-- Sonar currently just supports surefire so "trick" Sonar into
257+
<!-- Sonar currently just supports surefire so "trick" Sonar into
258258
thinking they are surefire reports -->
259259
<reportsDirectory>${sonar.surefire.reportsPath}</reportsDirectory>
260260
<argLine>${test.args} ${jacoco.failsafe.argline}</argLine>

0 commit comments

Comments
 (0)