Testcases
De service metadata bevat expliciet supportedOperations en supportedExpands, bedoeld om verbs, paden en expandbare objecten van een implementatie te communiceren.
| ID | Testcase | Doel | Verwacht resultaat |
|---|
| GEN-01 | OpenAPI document is valide | Controleren dat de implementatie op OEAPI 6.0 gebaseerd is | OpenAPI is parsebaar en versie is 6.0 / 3.1.1 structuur aanwezig |
| GEN-02 | Service metadata endpoint beschikbaar | Verifiëren dat implementatie eigen metadata publiceert | Endpoint geeft servicemetadata terug |
| GEN-03 | supportedOperations gevuld | Controleren of ondersteunde verbs/paden gecommuniceerd worden | Lijst bevat pad + verbs |
| GEN-04 | supportedExpands gevuld | Controleren of expand-mogelijkheden gepubliceerd zijn | Lijst bevat pad + expandableObjects |
| GEN-05 | Response content type | Verifiëren dat JSON-responses correct zijn | application/json |
| GEN-06 | Onbekend endpoint | Foutafhandeling testen | 404 |
| GEN-07 | Niet-ondersteunde methode op endpoint | Method handling testen | 405 |
| GEN-08 | Ongeldige Accept-header | Content negotiation testen | 406 indien geïmplementeerd conform spec |
B. Basisresource-tests
| ID | Testcase | Doel | Verwacht resultaat |
|---|
| RES-01 | GET lijst van programmes | Ophalen basisresource | 200 met paged lijst |
| RES-02 | GET programme by id | Detailresource | 200 met exact object |
| RES-03 | GET lijst van courses | Ophalen basisresource | 200 |
| RES-04 | GET course by id | Detailresource | 200 |
| RES-10 | GET lijst van organisations | Ondersteunende resource | 200 |
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.
| ID | Testcase | Doel | Verwacht resultaat |
|---|
| QRY-01 | pageSize=1 | Paging testen | Exact 1 item in response |
| QRY-02 | pageNumber=2 | Paging testen | Tweede pagina met juiste items |
| QRY-03 | fields=<subset> | Sparse fieldsets testen | Alleen gevraagde velden aanwezig |
| QRY-04 | search=<match> | Zoekfunctionaliteit | Alleen relevante records |
| QRY-05 | search=<geen match> | Negatieve test | Lege lijst |
| QRY-06 | filterQuery=<geldige expressie> | Filterlogica | Juiste subset |
| QRY-07 | filterQueryOr=<geldige expressie> | OR-filterlogica | Juiste subset |
| QRY-08 | Ongeldige filtersyntax | Validatie | 400 |
| QRY-09 | Te grote pageSize | Grenswaarde | 400 of max cap toegepast |
| QRY-10 | Onbekend veld in fields | Robuustheid | 400 of genegeerd conform implementatie |
D. Expand- en relatietests
| ID | Testcase | Doel | Verwacht resultaat |
|---|
| EXP-01 | Expand ondersteunde relatie op programme | Relatie-opname testen | Embedded object aanwezig |
| EXP-02 | Expand ondersteunde relatie op course | Relatie-opname testen | Embedded object aanwezig |
| EXP-03 | Expand unsupported object | Contracthandhaving | 400 of duidelijke fout |
| EXP-04 | supportedExpands komt overeen met feitelijk gedrag | Metadata-consistentie | Alleen gepubliceerde expands werken |
| EXP-05 | Zonder expand alleen referentie | Default gedrag | Geen onnodige embedded objecten |
De specificatie gebruikt standaard OpenAPI-typen en string formats zoals date, date-time, byte, binary; diverse path-id’s zijn als uuid gemodelleerd.
| ID | Testcase | Doel | Verwacht resultaat |
|---|
| DAT-01 | UUID padparameter geldig | Correct detailobject ophalen | 200 |
| DAT-02 | UUID padparameter ongeldig formaat | Validatie | 400 |
| DAT-03 | date-time veld RFC3339 correct | Formaatcontrole | Valide serialisatie |
| DAT-04 | date-time ongeldig formaat in query | Validatie | 400 |
| DAT-05 | Nullable velden als null | Contractcontrole | Toegestaan waar schema dit aangeeft |
| DAT-06 | Lege string waar niet toegestaan | Validatie | 400 |
| DAT-07 | Array-velden met juiste itemtypen | Contractcontrole | Valide response |
F. Supporting domain-tests
De specificatie bevat onder meer buildings, rooms, groups, memberships, academic sessions, documents en learning outcomes als aparte API-domeinen.
| ID | Testcase | Doel | Verwacht resultaat |
|---|
| SUP-06 | GET academic sessions | Tijdsdomein | 200 |
| SUP-07 | Offerings linken correct naar academic session | Integriteit | Geldige 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.
| ID | Testcase | Doel | Verwacht resultaat |
|---|
| SEC-01 | Publiek endpoint zonder token | Controleren dat publiek endpoint werkt | 200 |
| SEC-02 | Beschermd endpoint zonder token | Autorisatie | 401 |
| SEC-03 | Beschermd endpoint met onvoldoende rechten | Autorisatie | 403 |
| SEC-04 | Beschermd endpoint met geldig token | Toegang | 200/201 |
| SEC-05 | Externe association flow met ongeldig token | Beveiliging | 401/403 |
H. Error handling-tests
| ID | Testcase | Doel | Verwacht resultaat |
|---|
| ERR-01 | Niet-bestaand object-id | Correcte not-found | 404 |
| ERR-02 | Verplichte pathparameter ontbreekt | Router/contract | 404 of request rejected |
| ERR-03 | Ongeldige queryparameterwaarde | Validatie | 400 |
| ERR-04 | Unsupported method | Method control | 405 |
| ERR-05 | Rate limiting simulatie | Robustness | 429 indien ondersteund |
| ERR-06 | Serverfout simulatie | Error schema | 500 met foutbody |