-
Notifications
You must be signed in to change notification settings - Fork 0
TEST REPORT BACKEND predmeti
| Issue | S5-01 |
| Datum | 23. 5. 2026 |
| Framework | JUnit 5 + Mockito |
| Avtor | Tilen Brunec |
| Razred | Vloga |
|---|---|
PredmetService |
Poslovna logika za upravljanje modulov |
PredmetMapper |
Pretvorba med JPA entitetami in DTO objekti |
PredmetController |
REST endpointi za CRUD operacije nad moduli |
| Razred | Skupaj | ✅ Pravilen | ❌ Napačen | |
|---|---|---|---|---|
PredmetServiceTest |
16 | 6 | 2 | 8 |
PredmetMapperTest |
3 | 2 | 1 | 0 |
PredmetControllerTest |
11 | 6 | 0 | 5 |
| Skupaj | 30 | 14 | 3 | 13 |
| Oznaka | Pomen |
|---|---|
| ✅ Pravilen primer | Normalen potek — vse deluje kot pričakovano |
| Mejni pogoji — prazni seznami, null profil | |
| ❌ Napačen primer | Napačen lastnik, neobstoječ ID, kršitev avtorizacije |
Testi pokrivajo vso poslovno logiko v
PredmetService— pridobivanje, ustvarjanje, urejanje, brisanje in objavo modulov. Posebna pozornost je namenjena preverjanju lastništva in obstoja modulov.
Cilj: Preveriti da metoda pravilno filtrira in vrne samo objavljene module.
| Vhod | En objavljen modul v repozitoriju |
| Pričakovan rezultat | Seznam z 1 elementom, naziv = "Mathematics"
|
Cilj: Preveriti da neobjavljeni moduli niso izpostavljeni javnosti.
| Vhod | En neobjavljen modul (jeObjavljen = false) |
| Pričakovan rezultat | Prazen seznam |
Cilj: Preveriti da metoda vrne točno določen modul po ID-ju.
| Vhod | Veljavni UUID modula |
| Pričakovan rezultat | DTO z ustreznim nazivom |
Cilj: Preveriti da sistem vrže napako, ko zahtevani modul ne obstaja v bazi.
| Vhod | Neobstoječi UUID modula |
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da se nov modul pravilno shrani v repozitorij z vsemi zahtevanimi polji.
| Vhod |
PredmetRequestDTO z nazivom, opisom, kodo vpisa, težavnostjo |
| Pričakovan rezultat | Vrnjeni DTO z nazivom "Physics", save() klican enkrat |
Cilj: Preveriti da lastnik modula uspešno posodobi vse spremenljive podatke.
| Vhod | Veljavni UUID, posodobljeni DTO, ujemajoči uciteljId
|
| Pričakovan rezultat | Posodobljeni DTO, save() klican enkrat |
Cilj: Preveriti da sistem prepreči urejanje modula s strani nepooblaščenega učitelja.
| Vhod | Veljavni UUID modula, drug uciteljId
|
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da sistem vrže napako pri poskusu urejanja neobstoječega modula.
| Vhod | Neobstoječi UUID modula |
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da lastnik modula uspešno izbriše modul iz repozitorija.
| Vhod | Veljavni UUID, ujemajoči uciteljId
|
| Pričakovan rezultat |
delete() klican enkrat na repozitoriju |
Cilj: Preveriti da sistem prepreči brisanje modula s strani nepooblaščenega učitelja.
| Vhod | Veljavni UUID modula, drug uciteljId
|
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da sistem vrže napako pri poskusu brisanja neobstoječega modula.
| Vhod | Neobstoječi UUID modula |
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da lastnik modula uspešno objavi modul in se status pravilno posodobi.
| Vhod | Neobjavljen modul, ujemajoči uciteljId
|
| Pričakovan rezultat | Modul shranjen z jeObjavljen = true
|
Cilj: Preveriti da sistem prepreči objavo modula s strani nepooblaščenega učitelja.
| Vhod | Veljavni UUID modula, drug uciteljId
|
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da sistem vrže napako pri objavi neobstoječega modula.
| Vhod | Neobstoječi UUID modula |
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da učitelj dobi seznam samo svojih modulov, ne vseh.
| Vhod | En modul, ki pripada učitelju |
| Pričakovan rezultat | Seznam z 1 elementom |
Cilj: Preveriti da nov učitelj brez ustvarjenih modulov dobi prazen seznam brez napake.
| Vhod |
uciteljId brez povezanih modulov |
| Pričakovan rezultat | Prazen seznam |
Testi pokrivajo pretvorbo med JPA entitetami in DTO objekti v obe smeri.
Cilj: Preveriti da mapper pravilno preslika vsa polja iz entitete v DTO, vključno z imenom učitelja iz profila.
| Vhod |
Predmet entiteta z vsemi polji, Profil z imenom |
| Pričakovan rezultat | DTO vsebuje pravilen naziv, kodo vpisa, ime učitelja, status objave |
Cilj: Preveriti da mapper ne pade, ko profil učitelja ni na voljo, temveč vrne nadomestno vrednost.
| Vhod |
Predmet entiteta, profil = null
|
| Pričakovan rezultat | uciteljImePriimek = "Neznan" |
Cilj: Preveriti da mapper pravilno preslika DTO v entiteto in nastavi čas ustvarjanja.
| Vhod |
PredmetRequestDTO z nazivom, opisom, kodo, težavnostjo in uciteljId
|
| Pričakovan rezultat | Entiteta z ustreznimi vrednostmi in nastavljenim ustvarjenOb
|
Testi pokrivajo vse REST endpointe in preverjanje vlog (
ucitelj/ucenec). Vsak zaščiten endpoint je testiran z obema vlogama.
Cilj: Preveriti da javni endpoint brez avtentikacije vrne seznam objavljenih modulov.
| Vhod | Brez avtentikacije |
| Pričakovan rezultat | HTTP 200, seznam z 1 elementom |
Cilj: Preveriti da endpoint vrne posamezen modul po ID-ju.
| Vhod | Veljavni UUID modula |
| Pričakovan rezultat | HTTP 200, modul z ustreznim nazivom |
Cilj: Preveriti da sistem zavrne dostop, ko uporabnik nima profila v bazi.
| Vhod | JWT z veljavnim subject, brez ujemajočega profila |
| Pričakovan rezultat | HTTP 403 |
Cilj: Preveriti da učitelj uspešno dobi seznam svojih modulov.
| Vhod | JWT z vlogo ucitelj
|
| Pričakovan rezultat | HTTP 200, seznam modulov |
Cilj: Preveriti da učitelj uspešno ustvari nov modul.
| Vhod | JWT z vlogo ucitelj, veljaven PredmetRequestDTO
|
| Pričakovan rezultat | HTTP 200, ustvarjeni modul |
Cilj: Preveriti da učenec ne more ustvariti modula — kršitev avtorizacijskih pravil.
| Vhod | JWT z vlogo ucenec
|
| Pričakovan rezultat | HTTP 403 |
Cilj: Preveriti da učitelj uspešno izbriše svoj modul.
| Vhod | JWT z vlogo ucitelj, veljavni UUID modula |
| Pričakovan rezultat | HTTP 204 No Content |
Cilj: Preveriti da učenec ne more brisati modulov — kršitev avtorizacijskih pravil.
| Vhod | JWT z vlogo ucenec
|
| Pričakovan rezultat | HTTP 403 |
Cilj: Preveriti da učitelj uspešno posodobi podatke svojega modula.
| Vhod | JWT z vlogo ucitelj, veljavni UUID, posodobljeni DTO |
| Pričakovan rezultat | HTTP 200, posodobljeni modul |
Cilj: Preveriti da učenec ne more urejati modulov — kršitev avtorizacijskih pravil.
| Vhod | JWT z vlogo ucenec
|
| Pričakovan rezultat | HTTP 403 |
Cilj: Preveriti da učitelj uspešno objavi modul.
| Vhod | JWT z vlogo ucitelj, veljavni UUID modula |
| Pričakovan rezultat | HTTP 200, objavljen modul |
Cilj: Preveriti da učenec ne more objavljati modulov — kršitev avtorizacijskih pravil.
| Vhod | JWT z vlogo ucenec
|
| Pričakovan rezultat | HTTP 403 |