1
+ package com .sequenceiq .consumption .swagger ;
2
+
3
+ import java .nio .file .Files ;
4
+ import java .nio .file .Path ;
5
+ import java .nio .file .Paths ;
6
+ import java .util .HashSet ;
7
+ import java .util .Set ;
8
+
9
+ import javax .ws .rs .ext .ExceptionMapper ;
10
+
11
+ import org .junit .jupiter .api .Test ;
12
+ import org .junit .jupiter .api .extension .ExtendWith ;
13
+ import org .springframework .beans .factory .annotation .Autowired ;
14
+ import org .springframework .boot .test .mock .mockito .MockBean ;
15
+ import org .springframework .test .context .ContextConfiguration ;
16
+ import org .springframework .test .context .TestPropertySource ;
17
+ import org .springframework .test .context .junit .jupiter .SpringExtension ;
18
+
19
+ import com .sequenceiq .consumption .api .v1 .ConsumptionApi ;
20
+ import com .sequenceiq .consumption .configuration .api .EndpointConfig ;
21
+
22
+ import io .opentracing .contrib .jaxrs2 .client .ClientTracingFeature ;
23
+ import io .opentracing .contrib .jaxrs2 .server .ServerTracingDynamicFeature ;
24
+ import io .swagger .jaxrs .Reader ;
25
+ import io .swagger .jaxrs .config .SwaggerConfigLocator ;
26
+ import io .swagger .jaxrs .config .SwaggerContextService ;
27
+ import io .swagger .models .Swagger ;
28
+ import io .swagger .util .Json ;
29
+
30
+ @ ExtendWith (SpringExtension .class )
31
+ @ ContextConfiguration (classes = {EndpointConfig .class })
32
+ @ TestPropertySource (locations = "file:./build/resources/main/application.yml" ,
33
+ properties = {"cb.structuredevent.rest.enabled=false" })
34
+ public class SwaggerGenerator {
35
+
36
+ @ MockBean
37
+ private ExceptionMapper <?> exceptionMapper ;
38
+
39
+ @ MockBean
40
+ private ServerTracingDynamicFeature serverTracingDynamicFeature ;
41
+
42
+ @ MockBean
43
+ private ClientTracingFeature clientTracingFeature ;
44
+
45
+ @ Autowired
46
+ private EndpointConfig endpointConfig ;
47
+
48
+ @ Test
49
+ public void generateSwaggerJson () throws Exception {
50
+ Set <Class <?>> classes = new HashSet <>(endpointConfig .getClasses ());
51
+ classes .add (ConsumptionApi .class );
52
+ Swagger swagger = new Reader (SwaggerConfigLocator .getInstance ().getConfig (SwaggerContextService .CONFIG_ID_DEFAULT ).configure (new Swagger ()))
53
+ .read (classes );
54
+ Path path = Paths .get ("./build/swagger/consumption.json" );
55
+ Files .createDirectories (path .getParent ());
56
+ Files .writeString (path , Json .pretty (swagger ));
57
+ }
58
+
59
+ }
0 commit comments