Polish contribution

Closes gh-295
This commit is contained in:
Stephane Nicoll 2017-02-02 14:54:53 +01:00
parent b356e233a2
commit e8dd74b8ed
13 changed files with 67 additions and 69 deletions

View File

@ -17,9 +17,7 @@
package io.spring.initializr.actuate.stat package io.spring.initializr.actuate.stat
import groovy.json.JsonSlurper import groovy.json.JsonSlurper
import io.spring.initializr.web.AbstractFullStackInitializrIntegrationTests
import io.spring.initializr.web.AbstractFullStackInitializrIntegrationTests;
import io.spring.initializr.web.AbstractInitializrControllerIntegrationTests
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
@ -48,7 +46,8 @@ import static org.junit.Assert.fail
*/ */
@Import(StatsMockController) @Import(StatsMockController)
@ActiveProfiles(['test-default', 'test-custom-stats']) @ActiveProfiles(['test-default', 'test-custom-stats'])
class MainControllerStatsIntegrationTests extends AbstractFullStackInitializrIntegrationTests { class MainControllerStatsIntegrationTests
extends AbstractFullStackInitializrIntegrationTests {
@Autowired @Autowired
private StatsMockController statsMockController private StatsMockController statsMockController

View File

@ -16,14 +16,12 @@
package io.spring.initializr.web package io.spring.initializr.web
import io.spring.initializr.web.AbstractInitializrIntegrationTests.Config
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.springframework.boot.context.embedded.LocalServerPort import org.springframework.boot.context.embedded.LocalServerPort
import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit4.SpringRunner import org.springframework.test.context.junit4.SpringRunner
import static org.junit.Assert.assertTrue
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT
/** /**
@ -32,7 +30,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
*/ */
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest(classes = Config.class, webEnvironment = RANDOM_PORT) @SpringBootTest(classes = Config.class, webEnvironment = RANDOM_PORT)
abstract class AbstractFullStackInitializrIntegrationTests extends AbstractInitializrIntegrationTests { abstract class AbstractFullStackInitializrIntegrationTests
extends AbstractInitializrIntegrationTests {
@LocalServerPort @LocalServerPort
int port int port

View File

@ -30,17 +30,17 @@ import org.springframework.test.context.ContextConfiguration
import org.springframework.test.context.TestExecutionListeners import org.springframework.test.context.TestExecutionListeners
import org.springframework.test.context.TestExecutionListeners.MergeMode import org.springframework.test.context.TestExecutionListeners.MergeMode
import static org.junit.Assert.assertTrue
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment
/** /**
* @author Stephane Nicoll * @author Stephane Nicoll
*/ */
@ContextConfiguration(classes = RestTemplateConfig) @ContextConfiguration(classes = RestTemplateConfig)
@TestExecutionListeners(mergeMode = MergeMode.MERGE_WITH_DEFAULTS, listeners = MockMvcClientHttpRequestFactoryTestExecutionListener) @TestExecutionListeners(mergeMode = MergeMode.MERGE_WITH_DEFAULTS,
listeners = MockMvcClientHttpRequestFactoryTestExecutionListener)
@AutoConfigureMockMvc @AutoConfigureMockMvc
@AutoConfigureRestDocs(outputDir="target/snippets", uriPort=80, uriHost="start.spring.io") @AutoConfigureRestDocs(outputDir = "target/snippets", uriPort = 80,
abstract class AbstractInitializrControllerIntegrationTests extends AbstractInitializrIntegrationTests { uriHost = "start.spring.io")
abstract class AbstractInitializrControllerIntegrationTests
extends AbstractInitializrIntegrationTests {
String host = "start.spring.io" String host = "start.spring.io"

View File

@ -16,6 +16,8 @@
package io.spring.initializr.web package io.spring.initializr.web
import java.nio.charset.Charset
import io.spring.initializr.metadata.InitializrMetadata import io.spring.initializr.metadata.InitializrMetadata
import io.spring.initializr.metadata.InitializrMetadataBuilder import io.spring.initializr.metadata.InitializrMetadataBuilder
import io.spring.initializr.metadata.InitializrMetadataProvider import io.spring.initializr.metadata.InitializrMetadataProvider
@ -23,7 +25,6 @@ import io.spring.initializr.metadata.InitializrProperties
import io.spring.initializr.test.generator.ProjectAssert import io.spring.initializr.test.generator.ProjectAssert
import io.spring.initializr.web.mapper.InitializrMetadataVersion import io.spring.initializr.web.mapper.InitializrMetadataVersion
import io.spring.initializr.web.support.DefaultInitializrMetadataProvider import io.spring.initializr.web.support.DefaultInitializrMetadataProvider
import org.json.JSONObject import org.json.JSONObject
import org.junit.Before import org.junit.Before
import org.junit.Rule import org.junit.Rule
@ -31,6 +32,7 @@ import org.junit.rules.TemporaryFolder
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.skyscreamer.jsonassert.JSONAssert import org.skyscreamer.jsonassert.JSONAssert
import org.skyscreamer.jsonassert.JSONCompareMode import org.skyscreamer.jsonassert.JSONCompareMode
import org.springframework.beans.factory.annotation.Autowired import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.autoconfigure.EnableAutoConfiguration import org.springframework.boot.autoconfigure.EnableAutoConfiguration
import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.context.SpringBootTest
@ -46,10 +48,7 @@ import org.springframework.test.context.junit4.SpringRunner
import org.springframework.util.StreamUtils import org.springframework.util.StreamUtils
import org.springframework.web.client.RestTemplate import org.springframework.web.client.RestTemplate
import java.nio.charset.Charset
import static org.junit.Assert.assertTrue import static org.junit.Assert.assertTrue
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT
/** /**
* @author Stephane Nicoll * @author Stephane Nicoll
@ -234,4 +233,5 @@ abstract class AbstractInitializrIntegrationTests {
} }
} }
} }

View File

@ -153,8 +153,7 @@ class MainControllerIntegrationTests extends AbstractInitializrControllerIntegra
} }
@Test @Test
void metadataWithNoAcceptHeader() { void metadataWithNoAcceptHeader() { // rest template sets application/json by default
// rest template sets application/json by default
ResponseEntity<String> response = invokeHome(null, '*/*') ResponseEntity<String> response = invokeHome(null, '*/*')
validateCurrentMetadata(response) validateCurrentMetadata(response)
} }
@ -163,7 +162,7 @@ class MainControllerIntegrationTests extends AbstractInitializrControllerIntegra
@Ignore("Need a comparator that does not care about the number of elements in an array") @Ignore("Need a comparator that does not care about the number of elements in an array")
void currentMetadataCompatibleWithV2() { void currentMetadataCompatibleWithV2() {
ResponseEntity<String> response = invokeHome(null, '*/*') ResponseEntity<String> response = invokeHome(null, '*/*')
validateMetadata(response, AbstractInitializrControllerIntegrationTests.CURRENT_METADATA_MEDIA_TYPE, '2.0.0', JSONCompareMode.LENIENT) validateMetadata(response, CURRENT_METADATA_MEDIA_TYPE, '2.0.0', JSONCompareMode.LENIENT)
} }
@Test @Test
@ -187,7 +186,7 @@ class MainControllerIntegrationTests extends AbstractInitializrControllerIntegra
void metadataWithSeveralAcceptHeader() { void metadataWithSeveralAcceptHeader() {
ResponseEntity<String> response = invokeHome(null, ResponseEntity<String> response = invokeHome(null,
'application/vnd.initializr.v2.1+json', 'application/vnd.initializr.v2+json') 'application/vnd.initializr.v2.1+json', 'application/vnd.initializr.v2+json')
validateContentType(response, AbstractInitializrControllerIntegrationTests.CURRENT_METADATA_MEDIA_TYPE) validateContentType(response, CURRENT_METADATA_MEDIA_TYPE)
validateCurrentMetadata(new JSONObject(response.body)) validateCurrentMetadata(new JSONObject(response.body))
} }

View File

@ -16,16 +16,15 @@
package io.spring.initializr.web.project package io.spring.initializr.web.project
import static org.junit.Assert.assertEquals
import io.spring.initializr.metadata.InitializrMetadata import io.spring.initializr.metadata.InitializrMetadata
import io.spring.initializr.metadata.InitializrMetadataBuilder import io.spring.initializr.metadata.InitializrMetadataBuilder
import io.spring.initializr.metadata.InitializrMetadataProvider import io.spring.initializr.metadata.InitializrMetadataProvider
import io.spring.initializr.web.AbstractFullStackInitializrIntegrationTests import io.spring.initializr.web.AbstractFullStackInitializrIntegrationTests
import org.json.JSONObject import org.json.JSONObject
import org.junit.Test import org.junit.Test
import org.skyscreamer.jsonassert.JSONAssert import org.skyscreamer.jsonassert.JSONAssert
import org.skyscreamer.jsonassert.JSONCompareMode import org.skyscreamer.jsonassert.JSONCompareMode
import org.springframework.beans.factory.annotation.Autowired import org.springframework.beans.factory.annotation.Autowired
import org.springframework.core.io.UrlResource import org.springframework.core.io.UrlResource
import org.springframework.http.HttpStatus import org.springframework.http.HttpStatus
@ -34,11 +33,14 @@ import org.springframework.http.ResponseEntity
import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ActiveProfiles
import org.springframework.web.client.HttpClientErrorException import org.springframework.web.client.HttpClientErrorException
import static org.junit.Assert.assertEquals
/** /**
* @author Stephane Nicoll * @author Stephane Nicoll
*/ */
@ActiveProfiles('test-default') @ActiveProfiles('test-default')
class MainControllerServiceMetadataIntegrationTests extends AbstractFullStackInitializrIntegrationTests { class MainControllerServiceMetadataIntegrationTests
extends AbstractFullStackInitializrIntegrationTests {
@Autowired @Autowired
private InitializrMetadataProvider metadataProvider private InitializrMetadataProvider metadataProvider

View File

@ -40,7 +40,8 @@ import static org.junit.Assert.assertTrue
* @author Stephane Nicoll * @author Stephane Nicoll
*/ */
@ActiveProfiles('test-default') @ActiveProfiles('test-default')
class ProjectGenerationSmokeTests extends AbstractFullStackInitializrIntegrationTests { class ProjectGenerationSmokeTests
extends AbstractFullStackInitializrIntegrationTests {
private File downloadDir private File downloadDir
private WebDriver driver private WebDriver driver

View File

@ -27,7 +27,6 @@ import java.util.regex.Pattern;
* *
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Jeremy Rickard * @author Jeremy Rickard
*
*/ */
//Copied from RestDocs to make it visible //Copied from RestDocs to make it visible
final class JsonFieldPath { final class JsonFieldPath {
@ -127,4 +126,5 @@ final class JsonFieldPath {
} }
return segments; return segments;
} }
} }

View File

@ -27,7 +27,6 @@ import java.util.concurrent.atomic.AtomicReference;
* extracted and removed. * extracted and removed.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
*
*/ */
// Copied from RestDocs to make it visible // Copied from RestDocs to make it visible
final class JsonFieldProcessor { final class JsonFieldProcessor {

View File

@ -16,6 +16,14 @@
package io.spring.initializr.web.test; package io.spring.initializr.web.test;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.RequestDispatcher;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@ -31,23 +39,12 @@ import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import java.io.IOException; import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.*;
import java.lang.reflect.Method; import static org.springframework.restdocs.operation.preprocess.Preprocessors.*;
import java.net.URI; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.RequestDispatcher;
import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document;
import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse;
import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.request;
/** /**
* @author Dave Syer * @author Dave Syer
*
*/ */
public class MockMvcClientHttpRequestFactory implements ClientHttpRequestFactory { public class MockMvcClientHttpRequestFactory implements ClientHttpRequestFactory {

View File

@ -23,7 +23,6 @@ import org.springframework.test.web.servlet.MockMvc;
/** /**
* @author Dave Syer * @author Dave Syer
*
*/ */
public final class MockMvcClientHttpRequestFactoryTestExecutionListener public final class MockMvcClientHttpRequestFactoryTestExecutionListener
extends AbstractTestExecutionListener { extends AbstractTestExecutionListener {
@ -39,7 +38,8 @@ public final class MockMvcClientHttpRequestFactoryTestExecutionListener
beanFactory.getBean(MockMvc.class)); beanFactory.getBean(MockMvc.class));
beanFactory.registerSingleton("mockMvcClientHttpRequestFactory", beanFactory.registerSingleton("mockMvcClientHttpRequestFactory",
this.factory); this.factory);
} else { }
else {
factory = beanFactory.getBean("mockMvcClientHttpRequestFactory", MockMvcClientHttpRequestFactory.class); factory = beanFactory.getBean("mockMvcClientHttpRequestFactory", MockMvcClientHttpRequestFactory.class);
} }
} }

View File

@ -16,12 +16,6 @@
package io.spring.initializr.web.test; package io.spring.initializr.web.test;
import org.springframework.restdocs.RestDocumentationContext;
import org.springframework.restdocs.operation.Operation;
import org.springframework.restdocs.snippet.TemplatedSnippet;
import org.springframework.restdocs.snippet.WriterResolver;
import org.springframework.restdocs.templates.TemplateEngine;
import java.io.IOException; import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.util.Collections; import java.util.Collections;
@ -31,16 +25,21 @@ import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializationFeature;
import org.springframework.restdocs.RestDocumentationContext;
import org.springframework.restdocs.operation.Operation;
import org.springframework.restdocs.snippet.TemplatedSnippet;
import org.springframework.restdocs.snippet.WriterResolver;
import org.springframework.restdocs.templates.TemplateEngine;
/** /**
* Creates a separate snippet for a single field in a larger payload. The output comes in * Creates a separate snippet for a single field in a larger payload. The output
* a sub-directory ("response-fields") of one containing the request and response * comes in a sub-directory ("response-fields") of one containing the request and
* snippets, with a file name the same as the path. An exception to the last rule is if * response snippets, with a file name the same as the path. An exception to the last
* you pick a single array element by using a path like `foo.bar[0]`, the snippet file * rule is if you pick a single array element by using a path like `foo.bar[0]`, the
* name is then just the array name (because asciidoctor cannot import snippets with * snippet file name is then just the array name (because asciidoctor cannot import
* brackets in the name). * snippets with brackets in the name).
* *
* @author Dave Syer * @author Dave Syer
*
*/ */
public class ResponseFieldSnippet extends TemplatedSnippet { public class ResponseFieldSnippet extends TemplatedSnippet {
@ -66,7 +65,8 @@ public class ResponseFieldSnippet extends TemplatedSnippet {
this.index = Integer.valueOf(index); this.index = Integer.valueOf(index);
path = path.substring(0, path.lastIndexOf("[")); path = path.substring(0, path.lastIndexOf("["));
file = file.replace("]", "").replace("[", "."); file = file.replace("]", "").replace("[", ".");
} else { }
else {
this.index = null; this.index = null;
} }
this.file = file; this.file = file;

View File

@ -17,11 +17,11 @@
package io.spring.initializr.web.ui package io.spring.initializr.web.ui
import io.spring.initializr.web.AbstractInitializrControllerIntegrationTests import io.spring.initializr.web.AbstractInitializrControllerIntegrationTests
import org.json.JSONObject import org.json.JSONObject
import org.junit.Test import org.junit.Test
import org.skyscreamer.jsonassert.JSONAssert import org.skyscreamer.jsonassert.JSONAssert
import org.skyscreamer.jsonassert.JSONCompareMode import org.skyscreamer.jsonassert.JSONCompareMode
import org.springframework.http.MediaType import org.springframework.http.MediaType
import org.springframework.http.ResponseEntity import org.springframework.http.ResponseEntity
import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ActiveProfiles
@ -30,7 +30,8 @@ import org.springframework.test.context.ActiveProfiles
* @author Stephane Nicoll * @author Stephane Nicoll
*/ */
@ActiveProfiles('test-default') @ActiveProfiles('test-default')
class UiControllerIntegrationTests extends AbstractInitializrControllerIntegrationTests { class UiControllerIntegrationTests
extends AbstractInitializrControllerIntegrationTests {
@Test @Test
void dependenciesNoVersion() { void dependenciesNoVersion() {
@ -50,4 +51,5 @@ class UiControllerIntegrationTests extends AbstractInitializrControllerIntegrati
def expected = readJsonFrom("metadata/ui/test-dependencies-$version" + ".json") def expected = readJsonFrom("metadata/ui/test-dependencies-$version" + ".json")
JSONAssert.assertEquals(expected, actual, JSONCompareMode.STRICT) JSONAssert.assertEquals(expected, actual, JSONCompareMode.STRICT)
} }
} }