-
Notifications
You must be signed in to change notification settings - Fork 0
TEST REPORT BACKEND notifications
| Issue | S4-10 |
| Datum | 31. 5. 2026 |
| Framework | JUnit 5 + Mockito |
| Avtor | Tilen Brunec |
| Razred | Vloga |
|---|---|
ObvestiloService |
Poslovna logika za ustvarjanje, pridobivanje in označevanje obvestil |
ObvestiloController |
REST endpointi za upravljanje obvestil |
VpisService |
Poslovna logika za vpis učencev v module |
| Razred | Skupaj | ✅ Pravilen | ❌ Napačen | |
|---|---|---|---|---|
ObvestiloServiceTest |
11 | 8 | 4 | 0 |
ObvestiloControllerTest |
6 | 4 | 2 | 0 |
VpisServiceTest |
12 | 6 | 2 | 4 |
| Skupaj | 29 | 18 | 8 | 4 |
| Oznaka | Pomen |
|---|---|
| ✅ Pravilen primer | Normalen potek — vse deluje kot pričakovano |
| Mejni pogoji — prazni seznami, null vrednosti | |
| ❌ Napačen primer | Napačni vhodi, neobstoječi zapisi |
Testi pokrivajo vso poslovno logiko v
ObvestiloService— ustvarjanje obvestil, pridobivanje, štetje neprebranih ter označevanje kot prebrano.
Cilj: Preveriti da se obvestilo pravilno shrani v repozitorij.
| Vhod | Veljavni uporabnikId, tip, naslov, sporočilo, povezava |
| Pričakovan rezultat |
save() klican enkrat |
Cilj: Preveriti da so vsa polja pravilno nastavljena pri shranjevanju.
| Vhod | Tip MODULE, naslov, sporočilo |
| Pričakovan rezultat | Shranjeno obvestilo ima pravilne vrednosti, jePrebrano = false
|
Cilj: Preveriti da metoda vrne seznam obvestil za uporabnika.
| Vhod | Veljavni uporabnikId z enim obvestilom |
| Pričakovan rezultat | Seznam z 1 elementom, naslov = "Test notification"
|
Cilj: Preveriti da metoda vrne prazen seznam ko ni obvestil.
| Vhod |
uporabnikId brez obvestil |
| Pričakovan rezultat | Prazen seznam |
Cilj: Preveriti da metoda vrne pravilno število neprebranih obvestil.
| Vhod |
uporabnikId s 3 neprebranimi |
| Pričakovan rezultat | 3 |
Cilj: Preveriti da metoda vrne 0 ko so vsa obvestila prebrana.
| Vhod |
uporabnikId brez neprebranih |
| Pričakovan rezultat | 0 |
Cilj: Preveriti da se obvestilo uspešno označi kot prebrano.
| Vhod | Veljavni obvestiloId z jePrebrano = false
|
| Pričakovan rezultat |
save() klican, jePrebrano = true
|
Cilj: Preveriti da sistem ne pade ko obvestilo ne obstaja.
| Vhod | Neobstoječi obvestiloId
|
| Pričakovan rezultat | Brez napake, save() nikoli klican |
Cilj: Preveriti da se vsa obvestila označijo kot prebrana.
| Vhod |
uporabnikId z dvema neprebranima obvestiloma |
| Pričakovan rezultat |
save() klican dvakrat |
Cilj: Preveriti da metoda ne pade ko ni obvestil.
| Vhod |
uporabnikId brez obvestil |
| Pričakovan rezultat | Brez napake, save() nikoli klican |
Testi pokrivajo vse REST endpointe za obvestila.
Cilj: Preveriti da endpoint vrne seznam obvestil za prijavljenega uporabnika.
| Vhod | JWT z veljavnim subject
|
| Pričakovan rezultat | HTTP 200, seznam z 1 elementom |
Cilj: Preveriti da endpoint vrne prazen seznam ko ni obvestil.
| Vhod | JWT z veljavnim subject, brez obvestil |
| Pričakovan rezultat | HTTP 200, prazen seznam |
Cilj: Preveriti da endpoint vrne pravilno število neprebranih obvestil.
| Vhod | JWT z veljavnim subject
|
| Pričakovan rezultat | HTTP 200, vrednost 5
|
Cilj: Preveriti da endpoint vrne 0 ko ni neprebranih obvestil.
| Vhod | JWT z veljavnim subject
|
| Pričakovan rezultat | HTTP 200, vrednost 0
|
Cilj: Preveriti da endpoint označi obvestilo kot prebrano in vrne 200.
| Vhod | Veljavni obvestiloId
|
| Pričakovan rezultat | HTTP 200, service metoda klicana enkrat |
Cilj: Preveriti da endpoint označi vsa obvestila kot prebrana in vrne 200.
| Vhod | JWT z veljavnim subject
|
| Pričakovan rezultat | HTTP 200, service metoda klicana enkrat |
Testi pokrivajo vso poslovno logiko v
VpisService— vpis z kodo, pridobivanje vpisov, posodobitev časa, odjavo in obvestila.
Cilj: Preveriti da se učenec uspešno vpiše v modul z veljavno kodo.
| Vhod | Veljavna koda vpisa "TST-001", ucenecId
|
| Pričakovan rezultat | DTO uspešno vrnjen, save() klican enkrat |
Cilj: Preveriti da sistem vrže napako pri napačni kodi vpisa.
| Vhod | Neveljavna koda "INVALID"
|
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da sistem prepreči dvojni vpis učenca v isti modul.
| Vhod | Veljavna koda, učenec je že vpisan |
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da profesor dobi obvestilo ob vpisu novega učenca.
| Vhod | Veljavna koda, nov učenec |
| Pričakovan rezultat |
ObvestiloService.ustvari() klican za profesorja z tipom MODULE
|
Cilj: Preveriti da metoda vrne aktivne vpise učenca.
| Vhod |
ucenecId z enim aktivnim vpisom |
| Pričakovan rezultat | Seznam z 1 elementom |
Cilj: Preveriti da metoda vrne prazen seznam ko učenec ni vpisan nikamor.
| Vhod |
ucenecId brez vpisov |
| Pričakovan rezultat | Prazen seznam |
Cilj: Preveriti da se čas na modulu pravilno posodobi.
| Vhod | Veljaven vpis, cas = 60
|
| Pričakovan rezultat |
save() klican enkrat |
Cilj: Preveriti da sistem vrže napako ko vpis ne obstaja.
| Vhod |
ucenecId ki ni vpisan |
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da metoda vrne pravilno število vpisanih učencev.
| Vhod |
predmetId s 5 vpisanimi |
| Pričakovan rezultat | 5 |
Cilj: Preveriti da metoda vrne 0 ko ni vpisanih učencev.
| Vhod |
predmetId brez vpisanih |
| Pričakovan rezultat | 0 |
Cilj: Preveriti da se vpis uspešno deaktivira ob odjavi.
| Vhod | Veljavni predmetId in ucenecId
|
| Pričakovan rezultat |
save() klican, jeAktiven = false
|
Cilj: Preveriti da sistem vrže napako pri odjavi neobstoječega vpisa.
| Vhod |
ucenecId ki ni vpisan |
| Pričakovan rezultat | RuntimeException |
Cilj: Preveriti da se email pošlje ko ima uporabnik veljavni email naslov.
| Vhod |
uporabnikId s profilom in emailom test@gmail.com
|
| Pričakovan rezultat |
EmailService.poslji() klican enkrat z emailom, tipom, naslovom |
Cilj: Preveriti da sistem ne pade ko profil uporabnika ne obstaja.
| Vhod |
uporabnikId brez profila v bazi |
| Pričakovan rezultat | Brez napake, EmailService.poslji() nikoli klican |
Cilj: Preveriti da sistem ne pade ko profil nima nastavljenega emaila.
| Vhod | Profil z email = null
|
| Pričakovan rezultat | Brez napake, EmailService.poslji() nikoli klican |