1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.bean.openapi3;
18
19 import static org.apache.juneau.TestUtils.*;
20 import static org.apache.juneau.bean.openapi3.OpenApiBuilder.*;
21 import java.net.*;
22
23 import org.apache.juneau.*;
24 import org.junit.jupiter.api.*;
25
26
27
28
29 class OpenApiBuilder_Test extends TestBase {
30
31
32
33
34 @Test void a01_builderMethodsAndMarshalling() {
35
36 var contact = contact("a1", "a2", "a3");
37 assertJson("{email:'a3',name:'a1',url:'a2'}", contact);
38
39
40 var externalDocs = externalDocumentation("a1", "a2");
41 assertJson("{description:'a2',url:'a1'}", externalDocs);
42
43
44 var headerInfo = headerInfo(schemaInfo("a1"));
45 assertJson("{schema:{type:'a1'}}", headerInfo);
46
47
48 var info = info("a1", "a2");
49 assertJson("{title:'a1',version:'a2'}", info);
50
51
52 var license = license("a1", URI.create("a2"));
53 assertJson("{name:'a1',url:'a2'}", license);
54
55
56 var operation = operation().setSummary("a1");
57 assertJson("{summary:'a1'}", operation);
58
59
60 var parameter = parameter("a1", "a2");
61 assertJson("{'in':'a1',name:'a2'}", parameter);
62
63
64 var pathItem = pathItem().setGet(operation().setSummary("a1"));
65 assertJson("{get:{summary:'a1'}}", pathItem);
66
67
68 var response = response("a1");
69 assertJson("{description:'a1'}", response);
70
71
72 var schemaInfo = schemaInfo("a1");
73 assertJson("{type:'a1'}", schemaInfo);
74
75
76 var securitySchemeInfo = securitySchemeInfo("a1");
77 assertJson("{type:'a1'}", securitySchemeInfo);
78
79
80 var server = server(URI.create("a1"));
81 assertJson("{url:'a1'}", server);
82
83
84 var tag = tag("a1");
85 assertJson("{name:'a1'}", tag);
86
87
88 var openApi = openApi().setInfo(info("a1", "a2"));
89 assertJson("{info:{title:'a1',version:'a2'},openapi:'3.0.0'}", openApi);
90
91
92 var components = components().setSchemas(map("a1", schemaInfo("a2")));
93 assertJson("{schemas:{a1:{type:'a2'}}}", components);
94 }
95
96
97
98
99 @Test void a02_defaultValues() {
100 assertJson("{}", contact());
101 assertJson("{}", externalDocumentation());
102 assertJson("{}", headerInfo());
103 assertJson("{}", info());
104 assertJson("{}", license());
105 assertJson("{}", operation());
106 assertJson("{}", parameter());
107 assertJson("{}", pathItem());
108 assertJson("{}", response());
109 assertJson("{}", schemaInfo());
110 assertJson("{}", securityRequirement());
111 assertJson("{}", securitySchemeInfo());
112 assertJson("{}", server());
113 assertJson("{}", tag());
114 assertJson("{openapi:'3.0.0'}", openApi());
115 assertJson("{}", components());
116 assertJson("{}", xml());
117 assertJson("{}", requestBodyInfo());
118 assertJson("{}", example());
119 assertJson("{}", link());
120 assertJson("{}", callback());
121 assertJson("{}", discriminator());
122 assertJson("{}", encoding());
123 assertJson("{}", mediaType());
124 assertJson("{}", oAuthFlow());
125 assertJson("{}", oAuthFlows());
126 assertJson("{}", serverVariable());
127 assertJson("{}", items());
128 }
129
130
131
132
133 @Test void a03_singleParameterBuilders() {
134 assertJson("{name:'a1'}", contact("a1"));
135 assertJson("{url:'a1'}", externalDocumentation("a1"));
136 assertJson("{type:'a1'}", items("a1"));
137 assertJson("{name:'a1'}", license("a1"));
138 assertJson("{info:{title:'a1',version:'a2'},openapi:'3.0.0'}", openApi(info("a1", "a2")));
139 assertJson("{propertyName:'a1'}", discriminator("a1"));
140 assertJson("{contentType:'a1'}", encoding("a1"));
141 assertJson("{'default':'a1'}", serverVariable("a1"));
142 }
143 }