| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111 |
- unit utOpenApiReader;
- {$mode ObjFPC}{$H+}
- interface
- uses
- Classes, SysUtils, fpcunit, fpjson, testregistry, fpopenapi.objects, fpopenapi.reader;
- Type
- { TTestOpenApiReader }
- TTestOpenApiReader = class(TTestCase)
- private
- FOpenAPI: TOpenAPi;
- FReader: TOpenAPIReader;
- Public
- Procedure Setup; override;
- Procedure TearDown; override;
- procedure LoadJSON(aJSON: TJSONStringType);
- procedure LoadJSONFile(aJSONFileName: TJSONStringType);
- Procedure TestRead(const aJSON : String);
- Property Reader : TOpenAPIReader Read FReader;
- Property OpenAPI : TOpenAPi Read FOpenAPI;
- Published
- Procedure TestHookup;
- end;
- TTestOpenApiReaderLarge = class (TTestOpenApiReader)
- Published
- procedure TestTitle;
- Procedure TestLarge;
- end;
- // TTestOpenAPIReader =
- TTestOpenApiReaderOpenAPI = Class(TTestOpenAPIReader)
- Procedure TestOpenAPI;
- Procedure TestJSONSchemaDialect;
- end;
- TTestOpenApiReaderInfo = Class(TTestOpenAPIReader)
- Procedure TestVersion;
- Procedure TestTitle;
- Procedure TestSummary;
- Procedure TestDescription;
- Procedure TestTermsOfService;
- Procedure TestContactEmail;
- Procedure TestContactName;
- Procedure TestContactURL;
- Procedure TestLicenseUrl;
- Procedure TestLicenseIdentifier;
- Procedure TestLicenseName;
- end;
- TTestOpenApiReaderTags = Class(TTestOpenAPIReader)
- Procedure TestName;
- Procedure TestDescription;
- Procedure TestExternalDocs;
- Procedure Test2Tags;
- end;
- TTestOpenApiReaderExternalDocs = Class(TTestOpenAPIReader)
- Procedure TestUrl;
- Procedure TestDescription;
- end;
- TTestOpenApiReaderServers = Class(TTestOpenAPIReader)
- Procedure TestUrl;
- Procedure TestDescription;
- Procedure TestVariablesDefault;
- Procedure TestVariablesDescription;
- Procedure TestVariablesEnum;
- Procedure Test2Url;
- end;
- TTestOpenApiReaderPaths = Class(TTestOpenAPIReader)
- Procedure TestEmpty;
- Procedure TestRef;
- Procedure TestSummary;
- Procedure TestDescription;
- Procedure TestGetEmpty;
- Procedure TestGetSummary;
- Procedure TestGetDescription;
- Procedure TestGetOperationId;
- Procedure TestGetDeprecated;
- Procedure TestGetExternalDocsEmpty;
- Procedure TestGetExternalDocsURL;
- Procedure TestGetServers;
- end;
- TTestOpenApiReaderPathRequestBody = Class(TTestOpenAPIReader)
- Procedure TestEmpty;
- Procedure TestDescription;
- Procedure TestRequired;
- Procedure TestContent;
- Procedure TestContentSchema;
- Procedure TestContentExample;
- Procedure TestContentExamples;
- Procedure TestContentEncodingContentType;
- Procedure TestContentEncodingExplode;
- Procedure TestContentEncodingStyle;
- Procedure TestContentEncodingAllowReserved;
- Procedure TestContentEncodingHeaders;
- end;
- TTestOpenApiReaderPathParameters = Class(TTestOpenAPIReader)
- Procedure TestGetParametersEmpty;
- end;
- TTestOpenApiReaderPathResponses = Class(TTestOpenAPIReader)
- Procedure TestEmpty;
- Procedure TestHeaders;
- Procedure TestDescription;
- Procedure TestContentEmpty;
- Procedure TestContentSchema;
- Procedure TestContentExample;
- Procedure TestContentExamples;
- Procedure TestContentEncodingEmpty;
- Procedure TestContentEncodingContentType;
- end;
- TTestOpenApiReaderPathSecurity = Class(TTestOpenAPIReader)
- Procedure TestEmpty;
- Procedure TestAPIKey;
- end;
- TTestOpenApiReaderPathResponsesLinks = Class(TTestOpenAPIReader)
- Procedure TestEmpty;
- Procedure TestOperatonRef;
- Procedure TestOperatonId;
- Procedure TestParameters;
- Procedure TestRequestBody;
- Procedure TestDescription;
- Procedure TestServer;
- end;
- TTestOpenApiReaderWebHooks = Class(TTestOpenAPIReader)
- Procedure TestEmpty;
- Procedure TestSummary;
- end;
- TTestOpenApiReaderComponents = Class(TTestOpenAPIReader)
- Procedure TestSchemaEmpty;
- Procedure TestSchemaContentEncoding;
- end;
- TTestOpenApiReaderOAuth2Scopes = Class(TTestOpenAPIReader)
- Procedure TestOAuth2ScopesAsObject;
- Procedure TestOAuth2ScopesEmpty;
- end;
- TTestOpenApiReaderSecurity = Class(TTestOpenAPIReader)
- Procedure TestOne;
- end;
- implementation
- { TTestOpenApiReader }
- procedure TTestOpenApiReader.Setup;
- begin
- Inherited;
- FReader:=TOpenAPIReader.Create(Nil);
- end;
- procedure TTestOpenApiReader.TearDown;
- begin
- FreeAndNil(FOpenAPI);
- FreeAndNil(FReader);
- Inherited;
- end;
- procedure TTestOpenApiReader.LoadJSON(aJSON: TJSONStringType);
- begin
- FreeAndNil(FOpenAPI);
- FOpenAPI:=TOpenAPI.Create;
- Reader.ReadFromString(OpenAPI,aJSON);
- end;
- procedure TTestOpenApiReader.LoadJSONFile(aJSONFileName: TJSONStringType);
- var
- F : TFileStream;
- aJSON : TJSONStringType;
- begin
- aJSON:='';
- F:=TFileStream.Create(aJSONFileName,fmOpenRead or fmShareDenyWrite);
- try
- SetLength(aJSON,F.Size);
- F.ReadBuffer(aJSON[1],Length(aJSON));
- LoadJSON(aJSON);
- finally
- F.Free;
- end;
- end;
- procedure TTestOpenApiReader.TestRead(const aJSON: String);
- begin
- LoadJSON(aJSON);
- end;
- procedure TTestOpenApiReader.TestHookup;
- begin
- AssertNotNull('Have reader',FReader);
- end;
- procedure TTestOpenApiReaderLarge.TestTitle;
- const
- JSON =
- ' {' + sLineBreak+
- ' "openapi": "3.0.0",' + sLineBreak+
- ' "info": {' + sLineBreak+
- ' "version": "1.0.0",' + sLineBreak+
- ' "title": "Sample API",' + sLineBreak+
- ' "description": "A sample API to illustrate OpenAPI concepts"' + sLineBreak+
- ' }' + sLineBreak+
- ' }';
- begin
- LoadJSON(JSON);
- AssertEquals('OpenApi','3.0.0',OpenAPI.OpenApi);
- AssertEquals('OpenAPI.Info.Version','1.0.0',OpenAPI.Info.Version);
- AssertEquals('OpenAPI.Info.title','Sample API',OpenAPI.Info.Title);
- AssertEquals('OpenAPI.Info.description','A sample API to illustrate OpenAPI concepts',OpenAPI.Info.Description);
- end;
- procedure TTestOpenApiReaderLarge.TestLarge;
- begin
- LoadJSONFile('openapi-all.json');
- end;
- procedure TTestOpenApiReaderOpenAPI.TestOpenAPI;
- begin
- TestRead('{ "openapi" : "123" }');
- AssertEquals('OpenAPI.openapi','123',OpenAPI.openapi);
- end;
- procedure TTestOpenApiReaderOpenAPI.TestJSONSchemaDialect;
- begin
- TestRead('{ "jsonSchemaDialect" : "123" }');
- AssertEquals('OpenAPI.jsonSchemaDialect','123',OpenAPI.jsonSchemaDialect);
- end;
- procedure TTestOpenApiReaderInfo.TestVersion;
- begin
- TestRead('{ "info" : { "version" : "123" } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertEquals('OpenAPI.info.version','123',OpenAPI.info.version);
- end;
- procedure TTestOpenApiReaderInfo.TestTitle;
- begin
- TestRead('{ "info" : { "title" : "123" } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertEquals('OpenAPI.info.title','123',OpenAPI.info.title);
- end;
- procedure TTestOpenApiReaderInfo.TestSummary;
- begin
- TestRead('{ "info" : { "summary" : "123" } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertEquals('OpenAPI.info.summary','123',OpenAPI.info.summary);
- end;
- procedure TTestOpenApiReaderInfo.TestDescription;
- begin
- TestRead('{ "info" : { "description" : "123" } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertEquals('OpenAPI.info.description','123',OpenAPI.info.description);
- end;
- procedure TTestOpenApiReaderInfo.TestTermsOfService;
- begin
- TestRead('{ "info" : { "termsOfService" : "123" } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertEquals('OpenAPI.info.termsOfService','123',OpenAPI.info.termsOfService);
- end;
- procedure TTestOpenApiReaderInfo.TestContactEmail;
- begin
- TestRead('{ "info" : { "contact" : { "email" : "123" } } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertNotNull('OpenAPI.info.contact',OpenAPI.info.contact);
- AssertEquals('OpenAPI.info.contact.email','123',OpenAPI.info.contact.email);
- end;
- procedure TTestOpenApiReaderInfo.TestContactName;
- begin
- TestRead('{ "info" : { "contact" : { "name" : "123" } } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertNotNull('OpenAPI.info.contact',OpenAPI.info.contact);
- AssertEquals('OpenAPI.info.contact.name','123',OpenAPI.info.contact.name);
- end;
- procedure TTestOpenApiReaderInfo.TestContactURL;
- begin
- TestRead('{ "info" : { "contact" : { "url" : "123" } } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertNotNull('OpenAPI.info.contact',OpenAPI.info.contact);
- AssertEquals('OpenAPI.info.contact.url','123',OpenAPI.info.contact.url);
- end;
- procedure TTestOpenApiReaderInfo.TestLicenseUrl;
- begin
- TestRead('{ "info" : { "license" : { "url" : "123" } } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertNotNull('OpenAPI.info.license',OpenAPI.info.license);
- AssertEquals('OpenAPI.info.license.url','123',OpenAPI.info.license.url);
- end;
- procedure TTestOpenApiReaderInfo.TestLicenseIdentifier;
- begin
- TestRead('{ "info" : { "license" : { "identifier" : "123" } } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertNotNull('OpenAPI.info.license',OpenAPI.info.license);
- AssertEquals('OpenAPI.info.license.identifier','123',OpenAPI.info.license.identifier);
- end;
- procedure TTestOpenApiReaderInfo.TestLicenseName;
- begin
- TestRead('{ "info" : { "license" : { "name" : "123" } } }');
- AssertNotNull('OpenAPI.info',OpenAPI.info);
- AssertNotNull('OpenAPI.info.license',OpenAPI.info.license);
- AssertEquals('OpenAPI.info.license.name','123',OpenAPI.info.license.name);
- end;
- procedure TTestOpenApiReaderTags.TestName;
- begin
- TestRead('{ "tags" : [ { "name" : "123" } ] }');
- end;
- procedure TTestOpenApiReaderTags.TestDescription;
- begin
- TestRead('{ "tags" : [ { "description" : "123" } ] }');
- end;
- procedure TTestOpenApiReaderTags.TestExternalDocs;
- begin
- TestRead('{ "tags" : [ { "externalDocs" : { "url" :"123" } } ] }');
- end;
- procedure TTestOpenApiReaderTags.Test2Tags;
- begin
- TestRead('{ "tags" : [ { "name" : "123" }, { "name" : "456" } ] }');
- end;
- procedure TTestOpenApiReaderExternalDocs.TestUrl;
- begin
- TestRead('{ "externalDocs" : { "url" :"123" } }');
- AssertNotNull('OpenAPI.externalDocs',OpenAPI.externalDocs);
- AssertEquals('OpenAPI.externalDocs.url','123',OpenAPI.externalDocs.url);
- end;
- procedure TTestOpenApiReaderExternalDocs.TestDescription;
- begin
- TestRead('{ "externalDocs" : { "description" :"123" } }');
- AssertNotNull('OpenAPI.externalDocs',OpenAPI.externalDocs);
- AssertEquals('OpenAPI.externalDocs.description','123',OpenAPI.externalDocs.description);
- end;
- procedure TTestOpenApiReaderServers.TestUrl;
- begin
- TestRead('{ "servers" : [ { "url" :"123" } ] }');
- end;
- procedure TTestOpenApiReaderServers.TestDescription;
- begin
- TestRead('{ "servers" : [ { "description" :"123" } ] }');
- end;
- procedure TTestOpenApiReaderServers.TestVariablesDefault;
- begin
- TestRead('{ "servers" : [ { "variables" : { "user": { "default": "123" } } } ] }');
- end;
- procedure TTestOpenApiReaderServers.TestVariablesDescription;
- begin
- TestRead('{ "servers" : [ { "variables" : { "user": { "description": "123" } } } ] }');
- end;
- procedure TTestOpenApiReaderServers.TestVariablesEnum;
- begin
- TestRead('{ "servers" : [ { "variables" : { "user": { "enum": [ "123", "456" ] } } } ] }');
- end;
- procedure TTestOpenApiReaderServers.Test2Url;
- begin
- TestRead('{ "servers" : [ { "url" :"123" }, { "url" :"456" } ] }');
- end;
- procedure TTestOpenApiReaderPaths.TestEmpty;
- begin
- TestRead('{ "paths" : { "api" : {} } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.paths['api']);
- end;
- procedure TTestOpenApiReaderPaths.TestRef;
- begin
- TestRead('{ "paths" : { "api" : { "$ref": "abc"} } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.paths['api']);
- AssertEquals('OpenAPI.paths.api.$ref','abc',OpenAPI.Paths['api'].ref);
- end;
- procedure TTestOpenApiReaderPaths.TestSummary;
- begin
- TestRead('{ "paths" : { "api" : { "summary": "abc"} } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertEquals('OpenAPI.paths.api.summary','abc',OpenAPI.Paths['api'].summary);
- end;
- procedure TTestOpenApiReaderPaths.TestDescription;
- begin
- TestRead('{ "paths" : { "api" : { "description": "abc"} } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertEquals('OpenAPI.paths.api.description','abc',OpenAPI.Paths['api'].description);
- end;
- procedure TTestOpenApiReaderPaths.TestGetEmpty;
- begin
- TestRead('{ "paths" : { "api" : { "get": { } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- end;
- procedure TTestOpenApiReaderPaths.TestGetSummary;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "summary" : "123" } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertEquals('OpenAPI.paths.api.get.summary','123',OpenAPI.Paths['api'].get.summary);
- end;
- procedure TTestOpenApiReaderPaths.TestGetDescription;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "description" : "123" } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertEquals('OpenAPI.paths.api.get.description','123',OpenAPI.Paths['api'].get.description);
- end;
- procedure TTestOpenApiReaderPaths.TestGetOperationId;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "operationId" : "123" } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertEquals('OpenAPI.paths.api.get.operationId','123',OpenAPI.Paths['api'].get.operationId);
- end;
- procedure TTestOpenApiReaderPaths.TestGetDeprecated;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "deprecated" : true } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertEquals('OpenAPI.paths.api.get.deprecated',True,OpenAPI.Paths['api'].get.deprecated);
- end;
- procedure TTestOpenApiReaderPaths.TestGetExternalDocsEmpty;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "externalDocs" : { } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.externalDocs',OpenAPI.Paths['api'].get.externalDocs);
- end;
- procedure TTestOpenApiReaderPaths.TestGetExternalDocsURL;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "externalDocs" : { "url" : "123" } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.externalDocs',OpenAPI.Paths['api'].get.externalDocs);
- AssertEquals('OpenAPI.paths.api.get.externalDocs.url','123',OpenAPI.Paths['api'].get.externalDocs.url);
- end;
- procedure TTestOpenApiReaderPaths.TestGetServers;
- begin
- TestRead('{ "paths" : { "api" : { "servers": [ {} ] } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.servers[0]',OpenAPI.Paths['api'].servers[0]);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestEmpty;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestDescription;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "description" : "123" } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertEquals('OpenAPI.paths.api.get.requestBody.description','123',OpenAPI.Paths['api'].get.requestBody.description);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestRequired;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "required" : true} } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertEquals('OpenAPI.paths.api.get.requestBody.required',True,OpenAPI.Paths['api'].get.requestBody.required);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestContent;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "content" : { "123" : { } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content',OpenAPI.Paths['api'].get.requestBody.content);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123',OpenAPI.Paths['api'].get.requestBody.content['123']);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestContentSchema;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "content" : { "123" : { "schema" : true } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content',OpenAPI.Paths['api'].get.requestBody.content);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123',OpenAPI.Paths['api'].get.requestBody.content['123']);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.schema',OpenAPI.Paths['api'].get.requestBody.content['123'].schema);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestContentExample;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "content" : { "123" : { "example" : { } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content',OpenAPI.Paths['api'].get.requestBody.content);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123',OpenAPI.Paths['api'].get.requestBody.content['123']);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.example',OpenAPI.Paths['api'].get.requestBody.content['123'].example);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestContentExamples;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "content" : { "123" : { "examples" : { "abc" : { "summary": "x"} } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content',OpenAPI.Paths['api'].get.requestBody.content);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123',OpenAPI.Paths['api'].get.requestBody.content['123']);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.examples',OpenAPI.Paths['api'].get.requestBody.content['123'].examples);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.examples.abc',OpenAPI.Paths['api'].get.requestBody.content['123'].examples['abc']);
- AssertEquals('OpenAPI.paths.api.get.requestBody.content.123.examples.abc.summary','x',OpenAPI.Paths['api'].get.requestBody.content['123'].examples['abc'].summary);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestContentEncodingContentType;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "content" : { "123" : { "encoding" : { "abc" : { "contentType": "def"} } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content',OpenAPI.Paths['api'].get.requestBody.content);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.[123]',OpenAPI.Paths['api'].get.requestBody.content['123']);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc']);
- AssertEquals('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc.contentType','def',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc'].contentType);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestContentEncodingExplode;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "content" : { "123" : { "encoding" : { "abc" : { "explode": true} } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content',OpenAPI.Paths['api'].get.requestBody.content);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123',OpenAPI.Paths['api'].get.requestBody.content['123']);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc']);
- AssertEquals('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc.explode',True,OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc'].explode);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestContentEncodingStyle;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "content" : { "123" : { "encoding" : { "abc" : { "style": "def"} } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content',OpenAPI.Paths['api'].get.requestBody.content);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123',OpenAPI.Paths['api'].get.requestBody.content['123']);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc']);
- AssertEquals('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc.style','def',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc'].style);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestContentEncodingAllowReserved;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "content" : { "123" : { "encoding" : { "abc" : { "allowReserved": true} } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content',OpenAPI.Paths['api'].get.requestBody.content);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123',OpenAPI.Paths['api'].get.requestBody.content['123']);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc']);
- AssertEquals('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc.allowReserved',True,OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc'].allowReserved);
- end;
- procedure TTestOpenApiReaderPathRequestBody.TestContentEncodingHeaders;
- begin
- TestRead('{ "paths" : { "api" : { "get": { "requestBody" : { "content" : { "123" : { "encoding" : { "abc" : { "headers": { "def" : { "explode" : true } } } } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.requestBody',OpenAPI.Paths['api'].get.requestBody);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content',OpenAPI.Paths['api'].get.requestBody.content);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123',OpenAPI.Paths['api'].get.requestBody.content['123']);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc']);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc.headers',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc'].headers);
- AssertNotNull('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc.headers.def',OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc'].headers['def']);
- AssertEquals('OpenAPI.paths.api.get.requestBody.content.123.encoding.abc.headers.def.explode',True,OpenAPI.Paths['api'].get.requestBody.content['123'].encoding['abc'].headers['def'].explode);
- end;
- procedure TTestOpenApiReaderPathParameters.TestGetParametersEmpty;
- begin
- TestRead('{ "paths" : { "api" : { "parameters": [ {} ] } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.parameters[0]',OpenAPI.Paths['api'].parameters[0]);
- end;
- procedure TTestOpenApiReaderPathResponses.TestEmpty;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses": { "default" : {} } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- end;
- procedure TTestOpenApiReaderPathResponses.TestHeaders;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses": { "default" : { "headers" : { "x-content" : { } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses[default]',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.headers',OpenAPI.Paths['api'].get.responses['default'].headers);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.headers.x-content',OpenAPI.Paths['api'].get.responses['default'].headers['x-content']);
- end;
- procedure TTestOpenApiReaderPathResponses.TestDescription;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses": { "default" : { "description" : "abc" } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertEquals('OpenAPI.paths.api.get.responses.default.description','abc',OpenAPI.Paths['api'].get.responses['default'].description);
- end;
- procedure TTestOpenApiReaderPathResponses.TestContentEmpty;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses": { "default" : { "content" : { "application/json" : { } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content',OpenAPI.Paths['api'].get.responses['default'].content);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json',OpenAPI.Paths['api'].get.responses['default'].content['application/json']);
- end;
- procedure TTestOpenApiReaderPathResponses.TestContentSchema;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses": { "default" : { "content" : { "application/json" : { "schema" : true } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content',OpenAPI.Paths['api'].get.responses['default'].content);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json',OpenAPI.Paths['api'].get.responses['default'].content['application/json']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json.schema',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].schema);
- end;
- procedure TTestOpenApiReaderPathResponses.TestContentExample;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses": { "default" : { "content" : { "application/json" : { "example" : {} } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content',OpenAPI.Paths['api'].get.responses['default'].content);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json',OpenAPI.Paths['api'].get.responses['default'].content['application/json']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json.example',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].example);
- end;
- procedure TTestOpenApiReaderPathResponses.TestContentExamples;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses": { "default" : { "content" : { "application/json" : { "examples" : { "abc" : { "summary": "x"} } } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content',OpenAPI.Paths['api'].get.responses['default'].content);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json',OpenAPI.Paths['api'].get.responses['default'].content['application/json']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json.examples',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].examples);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json.examples.abc',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].examples['abc']);
- AssertEquals('OpenAPI.paths.api.get.responses.default.content.application/json.examples.abc.summary','x',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].examples['abc'].summary);
- end;
- procedure TTestOpenApiReaderPathResponses.TestContentEncodingEmpty;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses": { "default" : { "content" : { "application/json" : { "encoding" : { "abc" : { } } } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content',OpenAPI.Paths['api'].get.responses['default'].content);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json',OpenAPI.Paths['api'].get.responses['default'].content['application/json']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json.encoding',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].encoding);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json.encoding.abc',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].encoding['abc']);
- end;
- procedure TTestOpenApiReaderPathResponses.TestContentEncodingContentType;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses": { "default" : { "content" : { "application/json" : { "encoding" : { "abc" : { "contentType" : "application/json" } } } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content',OpenAPI.Paths['api'].get.responses['default'].content);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json',OpenAPI.Paths['api'].get.responses['default'].content['application/json']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json.encoding',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].encoding);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.content.application/json.encoding.abc',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].encoding['abc']);
- AssertEquals('OpenAPI.paths.api.get.responses.default.content.application/json.encoding.abc.contentType','application/json',OpenAPI.Paths['api'].get.responses['default'].content['application/json'].encoding['abc'].contentType);
- end;
- procedure TTestOpenApiReaderPathSecurity.TestEmpty;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "security" : [ {} ] } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.security[0]',OpenAPI.Paths['api'].get.security[0]);
- end;
- procedure TTestOpenApiReaderPathSecurity.TestAPIKey;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "security" : [ { "api_key" : ["akey"] } ] } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.security[0]',OpenAPI.Paths['api'].get.security[0]);
- AssertEquals('OpenAPI.paths.api.get.security[0].api_key[0]','akey',OpenAPI.Paths['api'].get.security[0].Requirements['api_key'].Strings[0]);
- end;
- procedure TTestOpenApiReaderPathResponsesLinks.TestEmpty;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses" : { "default" : { "links": { "abc" : { } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.links',OpenAPI.Paths['api'].get.responses['default'].links);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.links.abc',OpenAPI.Paths['api'].get.responses['default'].links['abc']);
- end;
- procedure TTestOpenApiReaderPathResponsesLinks.TestOperatonRef;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses" : { "default" : { "links": { "abc" : { "operationRef" : "123" } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.links',OpenAPI.Paths['api'].get.responses['default'].links);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.links.abc',OpenAPI.Paths['api'].get.responses['default'].links['abc']);
- AssertEquals('OpenAPI.paths.api.get.responses.default.links.abc.operationRef','123',OpenAPI.Paths['api'].get.responses['default'].links['abc'].operationRef);
- end;
- procedure TTestOpenApiReaderPathResponsesLinks.TestOperatonId;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses" : { "default" : { "links": { "abc" : { "operationId" : "123" } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.links',OpenAPI.Paths['api'].get.responses['default'].links);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.links.abc',OpenAPI.Paths['api'].get.responses['default'].links['abc']);
- AssertEquals('OpenAPI.paths.api.get.responses.default.links.abc.operationId','123',OpenAPI.Paths['api'].get.responses['default'].links['abc'].operationId);
- end;
- procedure TTestOpenApiReaderPathResponsesLinks.TestParameters;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses" : { "default" : { "links": { "abc" : { "parameters" : { "x" : "y" } } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.links',OpenAPI.Paths['api'].get.responses['default'].links);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.links.abc',OpenAPI.Paths['api'].get.responses['default'].links['abc']);
- AssertNotNull('OpenAPI.paths.api.get.responses.default.links.abc.parameters',OpenAPI.Paths['api'].get.responses['default'].links['abc'].parameters);
- AssertEquals('OpenAPI.paths.api.get.responses.default.links.abc.parameters.x','y',OpenAPI.Paths['api'].get.responses['default'].links['abc'].parameters['x'].AsString);
- end;
- procedure TTestOpenApiReaderPathResponsesLinks.TestRequestBody;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses" : { "default" : { "links": { "abc" : { "requestBody" : {} } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses.default',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses[default].links',OpenAPI.Paths['api'].get.responses['default'].links);
- AssertNotNull('OpenAPI.paths.api.get.responses[default].links.abc',OpenAPI.Paths['api'].get.responses['default'].links['abc']);
- AssertNotNull('OpenAPI.paths.api.get.responses[default].links.abc.requestBody',OpenAPI.Paths['api'].get.responses['default'].links['abc'].requestBody);
- end;
- procedure TTestOpenApiReaderPathResponsesLinks.TestDescription;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses" : { "default" : { "links": { "abc" : { "description" : "123" } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses[default]',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses[default].links',OpenAPI.Paths['api'].get.responses['default'].links);
- AssertNotNull('OpenAPI.paths.api.get.responses[default].links.abc',OpenAPI.Paths['api'].get.responses['default'].links['abc']);
- AssertEquals('OpenAPI.paths.api.get.responses[default].links.abc.description','123',OpenAPI.Paths['api'].get.responses['default'].links['abc'].description);
- end;
- procedure TTestOpenApiReaderPathResponsesLinks.TestServer;
- begin
- TestRead('{ "paths" : { "api" : { "get" : { "responses" : { "default" : { "links": { "abc" : { "server" : { "url" : "123" } } } } } } } } }');
- AssertNotNull('OpenAPI.paths',OpenAPI.paths);
- AssertNotNull('OpenAPI.paths.api',OpenAPI.Paths['api']);
- AssertNotNull('OpenAPI.paths.api.get',OpenAPI.Paths['api'].get);
- AssertNotNull('OpenAPI.paths.api.get.responses',OpenAPI.Paths['api'].get.responses);
- AssertNotNull('OpenAPI.paths.api.get.responses[default]',OpenAPI.Paths['api'].get.responses['default']);
- AssertNotNull('OpenAPI.paths.api.get.responses[default].links',OpenAPI.Paths['api'].get.responses['default'].links);
- AssertNotNull('OpenAPI.paths.api.get.responses[default].links.abc',OpenAPI.Paths['api'].get.responses['default'].links['abc']);
- AssertNotNull('OpenAPI.paths.api.get.responses[default].links.abc.server',OpenAPI.Paths['api'].get.responses['default'].links['abc'].server);
- AssertEquals('OpenAPI.paths.api.get.responses[default].links.abc.server.url','123',OpenAPI.Paths['api'].get.responses['default'].links['abc'].server.url);
- end;
- procedure TTestOpenApiReaderWebHooks.TestEmpty;
- begin
- TestRead('{ "webhooks" : { "newitem" : { } } }');
- AssertNotNull('OpenAPI.webhooks',OpenAPI.webhooks);
- AssertNotNull('OpenAPI.webhooks.newitem',OpenAPI.webhooks['newitem']);
- end;
- procedure TTestOpenApiReaderWebHooks.TestSummary;
- begin
- TestRead('{ "webhooks" : { "newitem" : { "summary" : "abc" } } }');
- AssertNotNull('OpenAPI.webhooks',OpenAPI.webhooks);
- AssertNotNull('OpenAPI.webhooks.newitem',OpenAPI.webhooks['newitem']);
- AssertEquals('OpenAPI.webhooks.newitem.summary','abc',OpenAPI.webhooks['newitem'].summary);
- end;
- procedure TTestOpenApiReaderComponents.TestSchemaEmpty;
- begin
- TestRead('{ "components" : { "schemas" : { "abc" : true } } }');
- AssertNotNull('OpenAPI.components',OpenAPI.components);
- AssertNotNull('OpenAPI.components.schemas',OpenAPI.components.schemas);
- AssertNotNUll('OpenAPI.components.schemas.abc',OpenAPI.components.schemas['abc']);
- end;
- procedure TTestOpenApiReaderComponents.TestSchemaContentEncoding;
- begin
- TestRead('{ "components" : { "schemas" : { "abc" : { "contentEncoding" : "utf8" } } } }');
- AssertNotNull('OpenAPI.components',OpenAPI.components);
- AssertNotNull('OpenAPI.components.schemas',OpenAPI.components.schemas);
- AssertNotNull('OpenAPI.components.schemas.abc',OpenAPI.components.schemas['abc']);
- AssertEquals('OpenAPI.components.schemas.abc.contentEncoding','utf8',OpenAPI.components.schemas['abc'].Validations.contentEncoding);
- end;
- { TTestOpenApiReaderOAuth2Scopes }
- procedure TTestOpenApiReaderOAuth2Scopes.TestOAuth2ScopesAsObject;
- begin
- TestRead('{ "components" : { "securitySchemes" : { "oauth2" : { "type" : "oauth2", "flows" : { "authorizationCode" : { "authorizationUrl" : "https://example.com/auth", "tokenUrl" : "https://example.com/token", "scopes" : { "read:user" : "Read user data", "write:user" : "Write user data" } } } } } } }');
- AssertNotNull('OpenAPI.components',OpenAPI.components);
- AssertNotNull('OpenAPI.components.securitySchemes',OpenAPI.components.securitySchemes);
- AssertNotNull('OpenAPI.components.securitySchemes.oauth2',OpenAPI.components.securitySchemes['oauth2']);
- AssertNotNull('OpenAPI.components.securitySchemes.oauth2.flows',OpenAPI.components.securitySchemes['oauth2'].flows);
- AssertNotNull('OpenAPI.components.securitySchemes.oauth2.flows.authorizationCode',OpenAPI.components.securitySchemes['oauth2'].flows.ClientAuthorizationCode);
- AssertEquals('scopes count', 2, OpenAPI.components.securitySchemes['oauth2'].flows.ClientAuthorizationCode.Scopes.Count);
- AssertEquals('scope read:user value', 'Read user data', OpenAPI.components.securitySchemes['oauth2'].flows.ClientAuthorizationCode.Scopes.Values['read:user']);
- AssertEquals('scope write:user value', 'Write user data', OpenAPI.components.securitySchemes['oauth2'].flows.ClientAuthorizationCode.Scopes.Values['write:user']);
- end;
- procedure TTestOpenApiReaderOAuth2Scopes.TestOAuth2ScopesEmpty;
- begin
- TestRead('{ "components" : { "securitySchemes" : { "oauth2" : { "type" : "oauth2", "flows" : { "authorizationCode" : { "authorizationUrl" : "https://example.com/auth", "tokenUrl" : "https://example.com/token", "scopes" : { } } } } } } }');
- AssertNotNull('OpenAPI.components',OpenAPI.components);
- AssertNotNull('OpenAPI.components.securitySchemes',OpenAPI.components.securitySchemes);
- AssertNotNull('OpenAPI.components.securitySchemes.oauth2',OpenAPI.components.securitySchemes['oauth2']);
- AssertEquals('scopes count', 0, OpenAPI.components.securitySchemes['oauth2'].flows.ClientAuthorizationCode.Scopes.Count);
- end;
- procedure TTestOpenApiReaderSecurity.TestOne;
- begin
- TestRead('{ "security" : [ { "abc" : [] } ] }');
- end;
- initialization
- registertests('Reader',[
- TTestOpenApiReaderLarge,
- TTestopenApiReaderOpenAPI,
- TTestopenApiReaderInfo,
- TTestopenApiReaderTags,
- TTestOpenApiReaderExternalDocs,
- TTestOpenApiReaderServers,
- TTestOpenApiReaderPaths,
- TTestOpenApiReaderPathRequestBody,
- TTestOpenApiReaderPathParameters,
- TTestOpenApiReaderPathResponses,
- TTestOpenApiReaderPathSecurity,
- TTestOpenApiReaderPathResponsesLinks,
- TTestOpenApiReaderWebHooks,
- TTestOpenApiReaderComponents,
- TTestOpenApiReaderOAuth2Scopes,
- TTestOpenApiReaderSecurity
- ]);
- end.
|