12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079 |
- 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;
- 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;
- 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,
- TTestOpenApiReaderSecurity
- ]);
- end.
|