Skip to content

Commit

Permalink
Consolidate stub tests into one place
Browse files Browse the repository at this point in the history
  • Loading branch information
Dave Syer committed Oct 13, 2017
1 parent 561f3b2 commit 51a03b3
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 82 deletions.
Expand Up @@ -20,10 +20,13 @@
import com.jayway.restassured.builder.RequestSpecBuilder;
import com.jayway.restassured.filter.Filter;
import com.jayway.restassured.specification.RequestSpecification;
import com.netflix.eureka.registry.PeerAwareInstanceRegistryImpl;

import org.junit.After;
import org.junit.Rule;
import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.LocalServerPort;
Expand All @@ -38,6 +41,7 @@
import org.springframework.restdocs.restassured.RestDocumentationFilter;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.util.ReflectionTestUtils;

import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest;
import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse;
Expand All @@ -54,10 +58,20 @@ public abstract class AbstractDocumentationTests {
@LocalServerPort
private int port = 0;

@Autowired
private PeerAwareInstanceRegistryImpl registry;

@Rule
public JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation(
"target/generated-snippets");

@After
public void init() {
registry.clearRegistry();
ReflectionTestUtils.setField(registry, "responseCache", null);
registry.initializedResponseCache();
}

private RestDocumentationFilter filter(String name) {
return RestAssuredRestDocumentation.document(name,
preprocessRequest(modifyUris().host("eureka.example.com").removePort(),
Expand Down
Expand Up @@ -16,6 +16,8 @@

package org.springframework.cloud.netflix.eureka.server.doc;

import java.util.UUID;

import com.github.tomakehurst.wiremock.client.WireMock;
import com.netflix.appinfo.ApplicationInfoManager;

Expand All @@ -26,12 +28,14 @@
import org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.Matchers.emptyIterable;
import static org.hamcrest.Matchers.hasSize;
import static org.springframework.cloud.netflix.eureka.server.doc.RequestVerifierFilter.verify;

@RunWith(SpringJUnit4ClassRunner.class)
public class EmptyAppsTests extends AbstractDocumentationTests {
public class AppRegistrationTests extends AbstractDocumentationTests {

@Autowired
private EurekaInstanceConfigBean instanceConfig;
Expand All @@ -41,7 +45,7 @@ public class EmptyAppsTests extends AbstractDocumentationTests {
@Test
public void addApp() throws Exception {
instanceConfig.setAppname("foo");
instanceConfig.setInstanceId("unique-id");
instanceConfig.setInstanceId(UUID.randomUUID().toString());
instanceConfig.setHostname("foo.example.com");
applicationInfoManager.initComponent(instanceConfig);
assure("add-app", applicationInfoManager.getInfo())
Expand All @@ -50,6 +54,12 @@ public void addApp() throws Exception {
.json("$.instance.instanceId")
.json("$.instance.dataCenterInfo.name"))
.when().post("/eureka/apps/FOO").then().assertThat().statusCode(is(204));
assure("starting-app").accept("application/json").when().get("/eureka/apps")
.then().assertThat()
.body("applications.application", hasSize(1),
"applications.application[0].instance[0].status",
equalTo("STARTING"))
.statusCode(is(200));
assure("up-app")
.filter(verify(
WireMock.put(WireMock.urlPathMatching("/eureka/apps/FOO/.*"))
Expand All @@ -58,6 +68,9 @@ public void addApp() throws Exception {
.put("/eureka/apps/FOO/{id}/status?value={value}",
applicationInfoManager.getInfo().getInstanceId(), "UP")
.then().assertThat().statusCode(is(200));
assure("one-app").accept("application/json").when().get("/eureka/apps").then()
.assertThat().body("applications.application", hasSize(1))
.statusCode(is(200));
assure("delete-app").when()
.delete("/eureka/apps/FOO/{id}",
applicationInfoManager.getInfo().getInstanceId())
Expand Down

This file was deleted.

0 comments on commit 51a03b3

Please sign in to comment.