Skip to content

Commit 43f6eeb

Browse files
committed
add a bit more test coverage
1 parent 1a2c840 commit 43f6eeb

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

Tests/OpenAPIKitTests/Content/ContentTests.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,27 @@ final class ContentTests: XCTestCase {
112112
XCTAssertNil(withPrefixAndItemEncoding.schema)
113113
XCTAssertEqual(withPrefixAndItemEncoding.itemSchema, .string)
114114
XCTAssertEqual(withPrefixAndItemEncoding.encoding?.positionalValue, .init(prefixEncoding: [.init()], itemEncoding: .init()))
115+
XCTAssertEqual(withPrefixAndItemEncoding.prefixEncoding, [.init()])
116+
XCTAssertEqual(withPrefixAndItemEncoding.itemEncoding, .init())
117+
118+
XCTAssertEqual(
119+
OpenAPI.Content(
120+
schema: .string,
121+
prefixEncoding: [],
122+
itemEncoding: nil
123+
),
124+
OpenAPI.Content(
125+
schema: .string,
126+
encoding: nil
127+
)
128+
)
129+
130+
let emptyPositionalEncoding = OpenAPI.Content(
131+
itemSchema: .string,
132+
prefixEncoding: [],
133+
itemEncoding: nil
134+
)
135+
XCTAssertEqual(emptyPositionalEncoding.encoding, nil)
115136
}
116137

117138
func test_contentMap() {

Tests/OpenAPIKitTests/Content/DereferencedContentTests.swift

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,27 @@ final class DereferencedContentTests: XCTestCase {
123123
)
124124
}
125125

126+
func test_inlineItemSchema() throws {
127+
let t1 = try OpenAPI.Content(itemSchema: .string).dereferenced(in: .noComponents)
128+
XCTAssertEqual(t1.itemSchema, .string(.init(), .init()))
129+
}
130+
131+
func test_referencedItemSchema() throws {
132+
let components = OpenAPI.Components(
133+
schemas: ["schema1": .string]
134+
)
135+
let t1 = try OpenAPI.Content(itemSchema: .reference(.component(named: "schema1"))).dereferenced(in: components)
136+
XCTAssertEqual(t1.itemSchema, .string(.init(vendorExtensions: ["x-component-name": "schema1"]), .init()))
137+
}
138+
139+
func test_missingItemSchema() {
140+
XCTAssertThrowsError(
141+
try OpenAPI.Content(
142+
itemSchema: .reference(.component(named: "missing"))
143+
).dereferenced(in: .noComponents)
144+
)
145+
}
146+
126147
func test_inlineEncoding() throws {
127148
let t1 = try OpenAPI.Content(schema: .string, encoding: ["test": .init()]).dereferenced(in: .noComponents)
128149
XCTAssertNotNil(t1.encodingMap?["test"])
@@ -153,6 +174,20 @@ final class DereferencedContentTests: XCTestCase {
153174
XCTAssertEqual(t1.encodingMap?["test"]?.style, OpenAPI.Content.Encoding.defaultStyle)
154175
}
155176

177+
func test_inlinePrefixEncoding() throws {
178+
let t1 = try OpenAPI.Content(schema: .string, prefixEncoding: [.init()]).dereferenced(in: .noComponents)
179+
XCTAssertNil(t1.encodingMap?["test"])
180+
XCTAssertEqual(t1.prefixEncoding?.count, 1)
181+
XCTAssertNil(t1.itemEncoding)
182+
}
183+
184+
func test_inlineItemEncoding() throws {
185+
let t1 = try OpenAPI.Content(schema: .string, itemEncoding: .init()).dereferenced(in: .noComponents)
186+
XCTAssertNil(t1.encodingMap?["test"])
187+
XCTAssertEqual(t1.prefixEncoding, [])
188+
XCTAssertNotNil(t1.itemEncoding)
189+
}
190+
156191
func test_missingHeaderInEncoding() {
157192
XCTAssertThrowsError(
158193
try OpenAPI.Content(

0 commit comments

Comments
 (0)