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

Skip to content

Commit f72cfa1

Browse files
committed
Added tests for Defaults
(1773)
1 parent d1f5a39 commit f72cfa1

2 files changed

Lines changed: 79 additions & 1 deletion

File tree

springfox-spi/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
dependencies {
22
compile project(':springfox-core')
3-
43
provided libs.clientProvidedServlet
4+
testCompile libs.test
55
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package springfox.documentation.spi.service.contexts
2+
3+
import com.fasterxml.classmate.TypeResolver
4+
import org.joda.time.DateMidnight
5+
import org.joda.time.DateTime
6+
import org.joda.time.ReadableDateTime
7+
import org.joda.time.ReadableInstant
8+
import org.springframework.http.HttpHeaders
9+
import org.springframework.validation.BindingResult
10+
import org.springframework.web.bind.annotation.RequestMethod
11+
import org.springframework.web.util.UriComponentsBuilder
12+
import spock.lang.Shared
13+
import spock.lang.Specification
14+
import springfox.documentation.annotations.ApiIgnore
15+
import springfox.documentation.spi.schema.AlternateTypeProvider
16+
17+
import java.time.*
18+
19+
class DefaultsSpec extends Specification {
20+
@Shared
21+
def resolver = new TypeResolver()
22+
23+
def "Verify defaults"() {
24+
when:
25+
def sut = new Defaults()
26+
27+
then:
28+
sut.defaultIgnorableParameterTypes().containsAll(ignoreableTypes())
29+
sut.defaultResponseMessages().keySet().containsAll(RequestMethod.values())
30+
sut.apiDescriptionOrdering() != null
31+
sut.apiListingReferenceOrdering() != null
32+
sut.defaultExcludeAnnotations().containsAll([ApiIgnore])
33+
sut.operationOrdering() != null
34+
}
35+
36+
37+
def "Verify default rules"() {
38+
given:
39+
def sut = new Defaults()
40+
41+
when:
42+
def rules = sut.defaultRules(resolver)
43+
def evaluator = new AlternateTypeProvider(rules)
44+
45+
then:
46+
rules.size() == 19
47+
evaluator.alternateFor(source) == alternate
48+
49+
where:
50+
source | alternate
51+
resolver.resolve(Map) | resolver.resolve(Object)
52+
resolver.resolve(Map, String, Object) | resolver.resolve(Object)
53+
resolver.resolve(Map, Object, Object) | resolver.resolve(Object)
54+
resolver.resolve(Map, Object, Object) | resolver.resolve(Object)
55+
resolver.resolve(LocalDate) | resolver.resolve(java.sql.Date)
56+
resolver.resolve(LocalDateTime) | resolver.resolve(Date)
57+
resolver.resolve(Instant) | resolver.resolve(Date)
58+
resolver.resolve(OffsetDateTime) | resolver.resolve(Date)
59+
resolver.resolve(ZonedDateTime) | resolver.resolve(Date)
60+
resolver.resolve(org.joda.time.LocalDate) | resolver.resolve(java.sql.Date)
61+
resolver.resolve(org.joda.time.LocalDateTime) | resolver.resolve(Date)
62+
resolver.resolve(org.joda.time.Instant) | resolver.resolve(Date)
63+
resolver.resolve(DateTime) | resolver.resolve(Date)
64+
resolver.resolve(ReadableDateTime) | resolver.resolve(Date)
65+
resolver.resolve(ReadableInstant) | resolver.resolve(Date)
66+
resolver.resolve(DateMidnight) | resolver.resolve(Date)
67+
}
68+
69+
def ignoreableTypes() {
70+
[Class.class,
71+
Void.class,
72+
Void.TYPE,
73+
HttpHeaders.class,
74+
BindingResult.class,
75+
UriComponentsBuilder.class,
76+
ApiIgnore.class] as Set
77+
}
78+
}

0 commit comments

Comments
 (0)