@@ -770,7 +770,51 @@ final class DocumentConversionTests: XCTestCase {
770
770
}
771
771
772
772
func test_Parameter( ) throws {
773
- // TODO: write test
773
+ let parameter1 = OpenAPIKit30 . OpenAPI. Parameter (
774
+ name: " hello " ,
775
+ context: . query,
776
+ schemaOrContent: . a( OpenAPIKit30 . OpenAPI. Parameter. SchemaContext (
777
+ . object,
778
+ style: . simple
779
+ ) )
780
+ )
781
+
782
+ let parameter2 = OpenAPIKit30 . OpenAPI. Parameter (
783
+ name: " hello " ,
784
+ context: . query,
785
+ schemaOrContent: . a( OpenAPIKit30 . OpenAPI. Parameter. SchemaContext (
786
+ . object,
787
+ style: . form,
788
+ explode: false ,
789
+ allowReserved: true ,
790
+ example: " hi=hello "
791
+ ) ) ,
792
+ description: " described " ,
793
+ deprecated: true ,
794
+ vendorExtensions: [ " x-hello " : " hi " ]
795
+ )
796
+
797
+ let oldDoc = OpenAPIKit30 . OpenAPI. Document (
798
+ info: . init( title: " hello " , version: " 1.0.0 " ) ,
799
+ servers: [ ] ,
800
+ paths: [ : ] ,
801
+ components: . init(
802
+ parameters: [
803
+ " param1 " : parameter1,
804
+ " param2 " : parameter2
805
+ ]
806
+ )
807
+ )
808
+
809
+ let newDoc = oldDoc. convert ( to: . v3_1_0)
810
+
811
+ try assertEqualNewToOld ( newDoc, oldDoc)
812
+
813
+ let newParameter1 = try XCTUnwrap ( newDoc. components. parameters [ " param1 " ] )
814
+ let newParameter2 = try XCTUnwrap ( newDoc. components. parameters [ " param2 " ] )
815
+
816
+ try assertEqualNewToOld ( newParameter1, parameter1)
817
+ try assertEqualNewToOld ( newParameter2, parameter2)
774
818
}
775
819
776
820
// TODO: more tests
@@ -866,15 +910,15 @@ fileprivate func assertEqualNewToOld(_ newServer: OpenAPIKit.OpenAPI.Server?, _
866
910
}
867
911
}
868
912
869
- fileprivate func assertEqualNewToOld( _ newParamArray: OpenAPIKit . OpenAPI . Parameter . Array , _ oldParamArray: OpenAPIKit30 . OpenAPI . Parameter . Array ) {
913
+ fileprivate func assertEqualNewToOld( _ newParamArray: OpenAPIKit . OpenAPI . Parameter . Array , _ oldParamArray: OpenAPIKit30 . OpenAPI . Parameter . Array ) throws {
870
914
for (newParameter, oldParameter) in zip ( newParamArray, oldParamArray) {
871
915
switch ( newParameter, oldParameter) {
872
916
case ( . a( let ref) , . a( let ref2) ) :
873
917
XCTAssertNil ( ref. summary)
874
918
XCTAssertNil ( ref. description)
875
919
XCTAssertEqual ( ref. jsonReference. absoluteString, ref2. absoluteString)
876
920
case ( . b( let param) , . b( let param2) ) :
877
- assertEqualNewToOld ( param, param2)
921
+ try assertEqualNewToOld ( param, param2)
878
922
default :
879
923
XCTFail ( " Parameters are not equal because one is a reference and the other is not: \( newParameter) / \( oldParameter) " )
880
924
}
@@ -896,7 +940,7 @@ fileprivate func assertEqualNewToOld(_ newPathItem: OpenAPIKit.OpenAPI.PathItem?
896
940
try assertEqualNewToOld ( newServer, oldServer)
897
941
}
898
942
}
899
- assertEqualNewToOld ( newPathItem. parameters, oldPathItem. parameters)
943
+ try assertEqualNewToOld ( newPathItem. parameters, oldPathItem. parameters)
900
944
try assertEqualNewToOld ( newPathItem. get, oldPathItem. get)
901
945
try assertEqualNewToOld ( newPathItem. put, oldPathItem. put)
902
946
try assertEqualNewToOld ( newPathItem. post, oldPathItem. post)
@@ -909,9 +953,17 @@ fileprivate func assertEqualNewToOld(_ newPathItem: OpenAPIKit.OpenAPI.PathItem?
909
953
XCTAssertEqual ( newPathItem. vendorExtensions, oldPathItem. vendorExtensions)
910
954
}
911
955
912
- fileprivate func assertEqualNewToOld( _ newParam: OpenAPIKit . OpenAPI . Parameter , _ oldParam: OpenAPIKit30 . OpenAPI . Parameter ) {
956
+ fileprivate func assertEqualNewToOld( _ newParam: OpenAPIKit . OpenAPI . Parameter , _ oldParam: OpenAPIKit30 . OpenAPI . Parameter ) throws {
913
957
XCTAssertEqual ( newParam. name, oldParam. name)
914
958
assertEqualNewToOld ( newParam. context, oldParam. context)
959
+ switch ( newParam. schemaOrContent, oldParam. schemaOrContent) {
960
+ case ( . a( let newSchema) , . a( let oldSchema) ) :
961
+ try assertEqualNewToOld ( newSchema, oldSchema)
962
+ case ( . b( let newContent) , . b( let oldContent) ) :
963
+ try assertEqualNewToOld ( newContent, oldContent)
964
+ default :
965
+ XCTFail ( " Parameter schemaOrContent are not equal. \( newParam. schemaOrContent) / \( oldParam. schemaOrContent) " )
966
+ }
915
967
XCTAssertEqual ( newParam. description, oldParam. description)
916
968
XCTAssertEqual ( newParam. deprecated, oldParam. deprecated)
917
969
XCTAssertEqual ( newParam. vendorExtensions, oldParam. vendorExtensions)
@@ -943,7 +995,7 @@ fileprivate func assertEqualNewToOld(_ newOperation: OpenAPIKit.OpenAPI.Operatio
943
995
XCTAssertEqual ( newOp. description, oldOp. description)
944
996
try assertEqualNewToOld ( newOp. externalDocs, oldOp. externalDocs)
945
997
XCTAssertEqual ( newOp. operationId, oldOp. operationId)
946
- assertEqualNewToOld ( newOp. parameters, oldOp. parameters)
998
+ try assertEqualNewToOld ( newOp. parameters, oldOp. parameters)
947
999
if let newRequest = newOp. requestBody {
948
1000
let oldRequest = try XCTUnwrap ( oldOp. requestBody)
949
1001
switch ( newRequest, oldRequest) {
@@ -1407,7 +1459,7 @@ fileprivate func assertEqualNewToOld(_ newComponents: OpenAPIKit.OpenAPI.Compone
1407
1459
}
1408
1460
for (key, newParameter) in newComponents. parameters {
1409
1461
let oldParameter = try XCTUnwrap ( oldComponents. parameters [ key] )
1410
- assertEqualNewToOld ( newParameter, oldParameter)
1462
+ try assertEqualNewToOld ( newParameter, oldParameter)
1411
1463
}
1412
1464
for (key, newExample) in newComponents. examples {
1413
1465
let oldExample = try XCTUnwrap ( oldComponents. examples [ key] )
0 commit comments