Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6593554

Browse files
committed
Polished and fixed broken tests
2 parents 0c10372 + e3afdf3 commit 6593554

24 files changed

Lines changed: 735 additions & 469 deletions

File tree

springfox-schema/src/main/java/springfox/documentation/schema/DefaultModelProvider.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ public DefaultModelProvider(
6666
SchemaPluginsManager schemaPluginsManager,
6767
TypeNameExtractor typeNameExtractor,
6868
EnumTypeDeterminer enumTypeDeterminer) {
69-
7069
this.resolver = resolver;
7170
this.propertiesProvider = propertiesProvider;
7271
this.dependencyProvider = dependencyProvider;

springfox-schema/src/test/groovy/springfox/documentation/schema/mixins/ModelProviderSupport.groovy

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,17 @@ import springfox.documentation.schema.property.OptimizedModelPropertiesProvider
3131
import springfox.documentation.schema.property.bean.AccessorsProvider
3232
import springfox.documentation.schema.property.field.FieldProvider
3333
import springfox.documentation.spi.DocumentationType
34+
import springfox.documentation.spi.schema.EnumTypeDeterminer
3435
import springfox.documentation.spi.schema.TypeNameProviderPlugin
3536

3637
@SuppressWarnings("GrMethodMayBeStatic")
3738
@Mixin([SchemaPluginsSupport])
3839
class ModelProviderSupport {
3940

40-
ModelProvider defaultModelProvider(ObjectMapper objectMapper = new ObjectMapper(),
41-
TypeResolver typeResolver = new TypeResolver()) {
41+
ModelProvider defaultModelProvider(
42+
ObjectMapper objectMapper = new ObjectMapper(),
43+
TypeResolver typeResolver = new TypeResolver(),
44+
EnumTypeDeterminer enumTypeDeterminer = new JacksonEnumTypeDeterminer()) {
4245

4346
def pluginsManager = defaultSchemaPlugins()
4447
PluginRegistry<TypeNameProviderPlugin, DocumentationType> modelNameRegistry =
@@ -62,14 +65,19 @@ class ModelProviderSupport {
6265
typeNameExtractor)
6366

6467
modelPropertiesProvider.onApplicationEvent(event)
65-
def modelDependenciesProvider = modelDependencyProvider(typeResolver, modelPropertiesProvider, typeNameExtractor)
68+
def modelDependenciesProvider = modelDependencyProvider(
69+
typeResolver,
70+
modelPropertiesProvider,
71+
typeNameExtractor)
6672

6773
new DefaultModelProvider(
6874
typeResolver,
6975
modelPropertiesProvider,
7076
modelDependenciesProvider,
7177
pluginsManager,
72-
typeNameExtractor, new springfox.documentation.schema.JacksonEnumTypeDeterminer())
78+
typeNameExtractor,
79+
enumTypeDeterminer
80+
)
7381
}
7482

7583
DefaultModelDependencyProvider modelDependencyProvider(TypeResolver resolver,
@@ -84,7 +92,7 @@ class ModelProviderSupport {
8492

8593
DefaultModelDependencyProvider defaultModelDependencyProvider() {
8694
def typeResolver = new TypeResolver()
87-
95+
def enumTypeDeterminer=new JacksonEnumTypeDeterminer();
8896
def pluginsManager = defaultSchemaPlugins()
8997
PluginRegistry<TypeNameProviderPlugin, DocumentationType> modelNameRegistry =
9098
OrderAwarePluginRegistry.create([new DefaultTypeNameProvider()])

springfox-spring-web/src/main/java/springfox/documentation/spring/web/readers/parameter/ModelAttributeParameterExpander.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,10 @@ public class ModelAttributeParameterExpander {
6868
protected DocumentationPluginsManager pluginsManager;
6969

7070
@Autowired
71-
public ModelAttributeParameterExpander(FieldProvider fields, EnumTypeDeterminer enumTypeDeterminer) {
71+
public ModelAttributeParameterExpander(
72+
FieldProvider fields,
73+
EnumTypeDeterminer enumTypeDeterminer) {
74+
7275
this.fieldProvider = fields;
7376
this.enumTypeDeterminer = enumTypeDeterminer;
7477
}

springfox-spring-web/src/test/groovy/springfox/documentation/spring/web/mixins/ModelProviderForServiceSupport.groovy

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import springfox.documentation.schema.property.OptimizedModelPropertiesProvider
3333
import springfox.documentation.schema.property.bean.AccessorsProvider
3434
import springfox.documentation.schema.property.field.FieldProvider
3535
import springfox.documentation.spi.DocumentationType
36+
import springfox.documentation.spi.schema.EnumTypeDeterminer
3637
import springfox.documentation.spi.schema.TypeNameProviderPlugin
3738

3839
@SuppressWarnings("GrMethodMayBeStatic")
@@ -47,8 +48,10 @@ class ModelProviderForServiceSupport {
4748
new JacksonEnumTypeDeterminer())
4849
}
4950

50-
ModelProvider modelProvider(SchemaPluginsManager pluginsManager = defaultSchemaPlugins(),
51-
TypeResolver typeResolver = new TypeResolver()) {
51+
ModelProvider modelProvider(
52+
SchemaPluginsManager pluginsManager = defaultSchemaPlugins(),
53+
TypeResolver typeResolver = new TypeResolver(),
54+
EnumTypeDeterminer enumTypeDeterminer= new JacksonEnumTypeDeterminer()) {
5255

5356
def objectMapper = new ObjectMapper()
5457
def typeNameExtractor = typeNameExtractor()
@@ -67,19 +70,21 @@ class ModelProviderForServiceSupport {
6770
typeResolver,
6871
modelPropertiesProvider,
6972
typeNameExtractor,
70-
new JacksonEnumTypeDeterminer())
73+
enumTypeDeterminer)
7174
new DefaultModelProvider(
7275
typeResolver,
7376
modelPropertiesProvider,
7477
modelDependenciesProvider,
7578
pluginsManager,
7679
typeNameExtractor,
77-
new JacksonEnumTypeDeterminer())
80+
enumTypeDeterminer)
7881
}
7982

80-
ModelProvider modelProviderWithSnakeCaseNamingStrategy(SchemaPluginsManager pluginsManager = defaultSchemaPlugins(),
83+
ModelProvider modelProviderWithSnakeCaseNamingStrategy(
84+
SchemaPluginsManager pluginsManager = defaultSchemaPlugins(),
8185
TypeResolver typeResolver = new TypeResolver()) {
8286

87+
EnumTypeDeterminer enumTypeDeterminer = new JacksonEnumTypeDeterminer()
8388
def objectMapper = new ObjectMapper()
8489
def typeNameExtractor = typeNameExtractor()
8590
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES)
@@ -97,14 +102,14 @@ class ModelProviderForServiceSupport {
97102
typeResolver,
98103
modelPropertiesProvider,
99104
typeNameExtractor,
100-
new JacksonEnumTypeDeterminer())
105+
enumTypeDeterminer)
101106
new DefaultModelProvider(
102107
typeResolver,
103108
modelPropertiesProvider,
104109
modelDependenciesProvider,
105110
pluginsManager,
106111
typeNameExtractor,
107-
new JacksonEnumTypeDeterminer())
112+
enumTypeDeterminer)
108113
}
109114

110115

springfox-spring-web/src/test/groovy/springfox/documentation/spring/web/mixins/ServicePluginsSupport.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@ class ServicePluginsSupport {
4141

4242
DocumentationPluginsManager defaultWebPlugins() {
4343
def resolver = new TypeResolver()
44+
def enumTypeDeterminer = new JacksonEnumTypeDeterminer()
4445
def plugins = new DocumentationPluginsManager()
4546
plugins.apiListingPlugins = create(newArrayList(new MediaTypeReader(), new ApiListingReader()))
4647
plugins.documentationPlugins = create([])
47-
plugins.parameterExpanderPlugins = create([new ExpandedParameterBuilder(resolver, new JacksonEnumTypeDeterminer())])
48+
plugins.parameterExpanderPlugins = create([new ExpandedParameterBuilder(resolver, enumTypeDeterminer)])
4849
plugins.parameterPlugins = create([new ParameterNameReader()])
4950
plugins.operationBuilderPlugins = create([])
5051
plugins.resourceGroupingStrategies = create([])
@@ -70,10 +71,11 @@ class ServicePluginsSupport {
7071
new QueryStringUriTemplateDecorator()]) {
7172

7273
def resolver = new TypeResolver()
74+
def enumTypeDeterminer = new JacksonEnumTypeDeterminer()
7375
def plugins = new DocumentationPluginsManager()
7476
plugins.apiListingPlugins = create(newArrayList(new MediaTypeReader()))
7577
plugins.documentationPlugins = create(documentationPlugins)
76-
plugins.parameterExpanderPlugins = create([new ExpandedParameterBuilder(resolver, new JacksonEnumTypeDeterminer())])
78+
plugins.parameterExpanderPlugins = create([new ExpandedParameterBuilder(resolver, enumTypeDeterminer)])
7779
plugins.parameterPlugins = create(paramPlugins)
7880
plugins.operationBuilderPlugins = create(operationPlugins)
7981
plugins.resourceGroupingStrategies = create(groupingStrategyPlugins)

springfox-spring-web/src/test/groovy/springfox/documentation/spring/web/readers/parameter/ModelAttributeParameterExpanderSpec.groovy

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import com.fasterxml.classmate.TypeResolver
2323
import org.joda.time.LocalDateTime
2424
import springfox.documentation.schema.JacksonEnumTypeDeterminer
2525
import springfox.documentation.schema.property.field.FieldProvider
26+
import springfox.documentation.spi.schema.EnumTypeDeterminer
2627
import springfox.documentation.spring.web.dummy.models.Example
2728
import springfox.documentation.spring.web.dummy.models.ModelAttributeComplexTypeExample
2829
import springfox.documentation.spring.web.dummy.models.ModelAttributeExample
@@ -38,12 +39,14 @@ import static springfox.documentation.schema.AlternateTypeRules.*
3839
@Mixin([ServicePluginsSupport])
3940
class ModelAttributeParameterExpanderSpec extends DocumentationContextSpec {
4041
TypeResolver typeResolver
42+
EnumTypeDeterminer enumTypeDeterminer
4143
ModelAttributeParameterExpander sut
4244

4345
def setup() {
4446
typeResolver = new TypeResolver()
47+
enumTypeDeterminer = new JacksonEnumTypeDeterminer()
4548
plugin.alternateTypeRules(newRule(typeResolver.resolve(LocalDateTime), typeResolver.resolve(String)))
46-
sut = new ModelAttributeParameterExpander(new FieldProvider(typeResolver), new JacksonEnumTypeDeterminer())
49+
sut = new ModelAttributeParameterExpander(new FieldProvider(typeResolver), enumTypeDeterminer)
4750
sut.pluginsManager = defaultWebPlugins()
4851
}
4952

@@ -130,9 +133,9 @@ class ModelAttributeParameterExpanderSpec extends DocumentationContextSpec {
130133
def "Should return empty set when there is an exception"() {
131134
given:
132135
ModelAttributeParameterExpander expander =
133-
new ModelAttributeParameterExpander(new FieldProvider(typeResolver), new JacksonEnumTypeDeterminer()) {
136+
new ModelAttributeParameterExpander(new FieldProvider(typeResolver), enumTypeDeterminer) {
134137
@Override
135-
def BeanInfo getBeanInfo(Class<?> clazz) throws IntrospectionException {
138+
BeanInfo getBeanInfo(Class<?> clazz) throws IntrospectionException {
136139
throw new IntrospectionException("Fail")
137140
}
138141
}

springfox-spring-web/src/test/groovy/springfox/documentation/spring/web/readers/parameter/OperationParameterReaderSpec.groovy

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class OperationParameterReaderSpec extends DocumentationContextSpec {
5151
def pluginsManager = defaultWebPlugins()
5252
def setup() {
5353
def typeResolver = new TypeResolver()
54+
def enumTypeDeterminer = new JacksonEnumTypeDeterminer()
5455
plugin
5556
.ignoredParameterTypes(ServletRequest, ServletResponse, HttpServletRequest,
5657
HttpServletResponse, BindingResult, ServletContext,
@@ -59,11 +60,9 @@ class OperationParameterReaderSpec extends DocumentationContextSpec {
5960
.alternateTypeRules(newRule(typeResolver.resolve(LocalDateTime), typeResolver.resolve(String)))
6061
.configure(contextBuilder)
6162

62-
63-
64-
def expander = new ModelAttributeParameterExpander(new FieldProvider(typeResolver), new JacksonEnumTypeDeterminer())
63+
def expander = new ModelAttributeParameterExpander(new FieldProvider(typeResolver), enumTypeDeterminer)
6564
expander.pluginsManager = pluginsManager
66-
sut = new OperationParameterReader(expander, new JacksonEnumTypeDeterminer())
65+
sut = new OperationParameterReader(expander, enumTypeDeterminer)
6766
sut.pluginsManager = pluginsManager
6867
}
6968

springfox-spring-web/src/test/java/springfox/documentation/spring/web/dummy/controllers/FeatureDemonstrationService.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,7 @@
3939
import org.springframework.web.bind.annotation.ResponseBody;
4040
import org.springframework.web.multipart.MultipartFile;
4141
import org.springframework.web.util.UriComponentsBuilder;
42-
import springfox.documentation.spring.web.dummy.models.Business;
43-
import springfox.documentation.spring.web.dummy.models.EnumType;
44-
import springfox.documentation.spring.web.dummy.models.Example;
45-
import springfox.documentation.spring.web.dummy.models.FancyPet;
46-
import springfox.documentation.spring.web.dummy.models.ModelAttributeExample;
47-
import springfox.documentation.spring.web.dummy.models.ModelWithArrayOfArrays;
48-
import springfox.documentation.spring.web.dummy.models.ModelWithMapProperty;
49-
import springfox.documentation.spring.web.dummy.models.ModelWithObjectNode;
50-
import springfox.documentation.spring.web.dummy.models.NestedType;
51-
import springfox.documentation.spring.web.dummy.models.Pet;
52-
import springfox.documentation.spring.web.dummy.models.PetWithSerializer;
42+
import springfox.documentation.spring.web.dummy.models.*;
5343

5444
import java.math.BigDecimal;
5545
import java.util.List;
@@ -98,6 +88,12 @@ private ResponseEntity<List<Example>> getEffectives() {
9888
HttpStatus.OK);
9989
}
10090

91+
//No request body annotation or swagger annotation
92+
@RequestMapping(value = "/enumObject", method = RequestMethod.GET)
93+
public ResponseEntity<EnumObjectType> getEnumAsObject() {
94+
return ResponseEntity.ok(EnumObjectType.ONE);
95+
}
96+
10197
//No request body annotation or swagger annotation
10298
@RequestMapping(value = "/bare", method = RequestMethod.POST)
10399
public void getBare(Example example) {
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
*
3+
* Copyright 2015-2016 the original author or authors.
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*
17+
*
18+
*/
19+
20+
package springfox.documentation.spring.web.dummy.models;
21+
22+
import com.fasterxml.jackson.annotation.JsonFormat;
23+
24+
/**
25+
* Created by yeh on 22.05.2017.
26+
*/
27+
28+
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
29+
public enum EnumObjectType {
30+
ONE("One", "This in an enum for number 1"), TWO("Two", "This in an enum for number 2");
31+
32+
private String name;
33+
private String description;
34+
EnumObjectType(String name, String description){
35+
this.name=name;
36+
this.description=description;
37+
}
38+
39+
public String getName() {
40+
return name;
41+
}
42+
43+
public String getDescription() {
44+
return description;
45+
}
46+
}

springfox-swagger-common/src/main/java/springfox/documentation/swagger/readers/parameter/ApiParamParameterBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public ApiParamParameterBuilder(
5151
DescriptionResolver descriptions,
5252
EnumTypeDeterminer enumTypeDeterminer) {
5353
this.descriptions = descriptions;
54-
this.enumTypeDeterminer= enumTypeDeterminer;
54+
this.enumTypeDeterminer = enumTypeDeterminer;
5555
}
5656

5757
@Override

0 commit comments

Comments
 (0)