mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-08-16 13:47:28 +02:00
Create AuthorityTest.java
This commit is contained in:
parent
17970ce56d
commit
0aa7da1634
@ -0,0 +1,96 @@
|
|||||||
|
package stirling.software.proprietary.security.model;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import stirling.software.proprietary.model.Team;
|
||||||
|
|
||||||
|
class AuthorityTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void noArgsConstructor_allowsSettersAndGetters() {
|
||||||
|
Authority a = new Authority();
|
||||||
|
assertNull(a.getId());
|
||||||
|
assertNull(a.getAuthority());
|
||||||
|
assertNull(a.getUser());
|
||||||
|
|
||||||
|
a.setId(42L);
|
||||||
|
a.setAuthority("ROLE_USER");
|
||||||
|
User u = new User();
|
||||||
|
a.setUser(u);
|
||||||
|
|
||||||
|
assertEquals(42L, a.getId());
|
||||||
|
assertEquals("ROLE_USER", a.getAuthority());
|
||||||
|
assertSame(u, a.getUser());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void ctorWithUser_setsFields_and_registersInUserAuthorities() {
|
||||||
|
User u = new User();
|
||||||
|
// sanity: authorities set initialized?
|
||||||
|
assertNotNull(u.getAuthorities());
|
||||||
|
assertTrue(u.getAuthorities().isEmpty());
|
||||||
|
|
||||||
|
Authority a = new Authority("ROLE_ADMIN", u);
|
||||||
|
|
||||||
|
assertEquals("ROLE_ADMIN", a.getAuthority());
|
||||||
|
assertSame(u, a.getUser());
|
||||||
|
assertTrue(u.getAuthorities().contains(a), "Authority should be registered in user's set");
|
||||||
|
assertEquals(1, u.getAuthorities().size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void multipleAuthorities_registerEachInUser() {
|
||||||
|
User u = new User();
|
||||||
|
|
||||||
|
Authority a1 = new Authority("ROLE_A", u);
|
||||||
|
Authority a2 = new Authority("ROLE_B", u);
|
||||||
|
|
||||||
|
assertTrue(u.getAuthorities().contains(a1));
|
||||||
|
assertTrue(u.getAuthorities().contains(a2));
|
||||||
|
assertEquals(2, u.getAuthorities().size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void ctorWithNullUser_throwsNpe_dueToRegistrationInUserSet() {
|
||||||
|
assertThrows(
|
||||||
|
NullPointerException.class,
|
||||||
|
() -> new Authority("ROLE_X", null),
|
||||||
|
"Constructor calls user.getAuthorities() and should throw NPE when null");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void setUser_doesNotAutoRegisterInUserAuthorities_currentBehavior() {
|
||||||
|
User u = new User();
|
||||||
|
Authority a = new Authority();
|
||||||
|
a.setAuthority("ROLE_VIEWER");
|
||||||
|
|
||||||
|
// only using the setter → no automatic entry in the user's set
|
||||||
|
a.setUser(u);
|
||||||
|
|
||||||
|
assertSame(u, a.getUser());
|
||||||
|
assertTrue(
|
||||||
|
u.getAuthorities().isEmpty(),
|
||||||
|
"Current behavior: setUser() does not automatically register in user's set");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void toString_equalsHashCode_fromLombok_defaultObjectSemantics() {
|
||||||
|
// no @EqualsAndHashCode annotation -> default Object semantics
|
||||||
|
Authority a1 = new Authority();
|
||||||
|
Authority a2 = new Authority();
|
||||||
|
assertNotEquals(a1, a2);
|
||||||
|
assertNotEquals(a1.hashCode(), a2.hashCode());
|
||||||
|
assertNotNull(a1.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optional: shows that User has other fields that don't interfere
|
||||||
|
@Test
|
||||||
|
void worksWithUserHavingTeamField() {
|
||||||
|
User u = new User();
|
||||||
|
u.setTeam(new Team()); // just to show that it has no effect
|
||||||
|
Authority a = new Authority("ROLE_TEST", u);
|
||||||
|
assertTrue(u.getAuthorities().contains(a));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user