mirror of
https://github.com/encounter/JSONAPI.git
synced 2026-03-30 11:18:38 -07:00
Fill out a fair bit of OpenAPI Entity testing
This commit is contained in:
@@ -110,7 +110,7 @@ extension JSONNode.ArrayContext: Encodable {
|
||||
}
|
||||
}
|
||||
|
||||
extension JSONNode.ObjectContext : Encodable{
|
||||
extension JSONNode.ObjectContext : Encodable {
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case maxProperties
|
||||
case minProperties
|
||||
@@ -132,13 +132,9 @@ extension JSONNode.ObjectContext : Encodable{
|
||||
try container.encode(additionalProperties, forKey: .additionalProperties)
|
||||
}
|
||||
|
||||
let required = properties.filter { (name, node) in
|
||||
node.required
|
||||
}.keys
|
||||
try container.encode(requiredProperties, forKey: .required)
|
||||
|
||||
try container.encode(Array(required), forKey: .required)
|
||||
|
||||
try container.encode(max(minProperties, required.count), forKey: .minProperties)
|
||||
try container.encode(minProperties, forKey: .minProperties)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -371,7 +371,7 @@ public enum JSONNode: Equatable {
|
||||
|
||||
public struct ObjectContext: Equatable {
|
||||
public let maxProperties: Int?
|
||||
public let minProperties: Int
|
||||
let _minProperties: Int
|
||||
public let properties: [String: JSONNode]
|
||||
public let additionalProperties: [String: JSONNode]?
|
||||
|
||||
@@ -379,8 +379,16 @@ public enum JSONNode: Equatable {
|
||||
// NOTE that an object's required properties
|
||||
// array is determined by looking at its properties'
|
||||
// required Bool.
|
||||
public let required: [String]
|
||||
*/
|
||||
public var requiredProperties: [String] {
|
||||
return Array(properties.filter { (name, node) in
|
||||
node.required
|
||||
}.keys)
|
||||
}
|
||||
|
||||
public var minProperties: Int {
|
||||
return max(_minProperties, requiredProperties.count)
|
||||
}
|
||||
|
||||
public init(properties: [String: JSONNode],
|
||||
additionalProperties: [String: JSONNode]? = nil,
|
||||
@@ -389,7 +397,7 @@ public enum JSONNode: Equatable {
|
||||
self.properties = properties
|
||||
self.additionalProperties = additionalProperties
|
||||
self.maxProperties = maxProperties
|
||||
self.minProperties = minProperties
|
||||
self._minProperties = minProperties
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user