Testcases

A. Algemene contract- en metadata-tests

De service metadata bevat expliciet supportedOperations en supportedExpands, bedoeld om verbs, paden en expandbare objecten van een implementatie te communiceren.

IDTestcaseDoelVerwacht resultaat
GEN-01OpenAPI document is valideControleren dat de implementatie op OEAPI 6.0 gebaseerd isOpenAPI is parsebaar en versie is 6.0 / 3.1.1 structuur aanwezig
GEN-02Service metadata endpoint beschikbaarVerifiëren dat implementatie eigen metadata publiceertEndpoint geeft servicemetadata terug
GEN-03supportedOperations gevuldControleren of ondersteunde verbs/paden gecommuniceerd wordenLijst bevat pad + verbs
GEN-04supportedExpands gevuldControleren of expand-mogelijkheden gepubliceerd zijnLijst bevat pad + expandableObjects
GEN-05Response content typeVerifiëren dat JSON-responses correct zijnapplication/json
GEN-06Onbekend endpointFoutafhandeling testen404
GEN-07Niet-ondersteunde methode op endpointMethod handling testen405
GEN-08Ongeldige Accept-headerContent negotiation testen406 indien geïmplementeerd conform spec

B. Basisresource-tests

IDTestcaseDoelVerwacht resultaat
RES-01GET lijst van programmesOphalen basisresource200 met paged lijst
RES-02GET programme by idDetailresource200 met exact object
RES-03GET lijst van coursesOphalen basisresource200
RES-04GET course by idDetailresource200
RES-10GET lijst van organisationsOndersteunende resource200

De specificatie benoemt expliciet since en until als filters op offerings en geeft aan dat standaard alleen toekomstige offerings getoond worden.



C. Zoek-, filter-, paging- en veldselectietests

Bij diverse collectie-endpoints worden parameters gebruikt zoals pageSize, pageNumber, fields, search, filterQuery en filterQueryOr; bij sommige endpoints ook domeinspecifieke filters, zoals roomType.

IDTestcaseDoelVerwacht resultaat
QRY-01pageSize=1Paging testenExact 1 item in response
QRY-02pageNumber=2Paging testenTweede pagina met juiste items
QRY-03fields=<subset>Sparse fieldsets testenAlleen gevraagde velden aanwezig
QRY-04search=<match>ZoekfunctionaliteitAlleen relevante records
QRY-05search=<geen match>Negatieve testLege lijst
QRY-06filterQuery=<geldige expressie>FilterlogicaJuiste subset
QRY-07filterQueryOr=<geldige expressie>OR-filterlogicaJuiste subset
QRY-08Ongeldige filtersyntaxValidatie400
QRY-09Te grote pageSizeGrenswaarde400 of max cap toegepast
QRY-10Onbekend veld in fieldsRobuustheid400 of genegeerd conform implementatie

D. Expand- en relatietests

IDTestcaseDoelVerwacht resultaat
EXP-01Expand ondersteunde relatie op programmeRelatie-opname testenEmbedded object aanwezig
EXP-02Expand ondersteunde relatie op courseRelatie-opname testenEmbedded object aanwezig
EXP-03Expand unsupported objectContracthandhaving400 of duidelijke fout
EXP-04supportedExpands komt overeen met feitelijk gedragMetadata-consistentieAlleen gepubliceerde expands werken
EXP-05Zonder expand alleen referentieDefault gedragGeen onnodige embedded objecten

E. Identifiers, formats en datatypen

De specificatie gebruikt standaard OpenAPI-typen en string formats zoals date, date-time, byte, binary; diverse path-id’s zijn als uuid gemodelleerd.

IDTestcaseDoelVerwacht resultaat
DAT-01UUID padparameter geldigCorrect detailobject ophalen200
DAT-02UUID padparameter ongeldig formaatValidatie400
DAT-03date-time veld RFC3339 correctFormaatcontroleValide serialisatie
DAT-04date-time ongeldig formaat in queryValidatie400
DAT-05Nullable velden als nullContractcontroleToegestaan waar schema dit aangeeft
DAT-06Lege string waar niet toegestaanValidatie400
DAT-07Array-velden met juiste itemtypenContractcontroleValide response

F. Supporting domain-tests

De specificatie bevat onder meer buildings, rooms, groups, memberships, academic sessions, documents en learning outcomes als aparte API-domeinen.

IDTestcaseDoelVerwacht resultaat
SUP-06GET academic sessionsTijdsdomein200
SUP-07Offerings linken correct naar academic sessionIntegriteitGeldige referentie

G. Security- en autorisatietests

Er is geen globale security-definitie in de specificatie; waar authenticatie of autorisatie nodig is, moet dat per endpoint/documentatie duidelijk zijn.

IDTestcaseDoelVerwacht resultaat
SEC-01Publiek endpoint zonder tokenControleren dat publiek endpoint werkt200
SEC-02Beschermd endpoint zonder tokenAutorisatie401
SEC-03Beschermd endpoint met onvoldoende rechtenAutorisatie403
SEC-04Beschermd endpoint met geldig tokenToegang200/201
SEC-05Externe association flow met ongeldig tokenBeveiliging401/403

H. Error handling-tests

IDTestcaseDoelVerwacht resultaat
ERR-01Niet-bestaand object-idCorrecte not-found404
ERR-02Verplichte pathparameter ontbreektRouter/contract404 of request rejected
ERR-03Ongeldige queryparameterwaardeValidatie400
ERR-04Unsupported methodMethod control405
ERR-05Rate limiting simulatieRobustness429 indien ondersteund
ERR-06Serverfout simulatieError schema500 met foutbody