Skip to content

Commit

Permalink
Added Junit tests to User
Browse files Browse the repository at this point in the history
  • Loading branch information
robinsp committed Mar 3, 2026
1 parent 5ed46ad commit 1bb6914
Show file tree
Hide file tree
Showing 5 changed files with 218 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
package ntnu.sytemutvikling.team6.models.user;

import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

import java.util.UUID;

import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertEquals;

class UserTest {

@Nested
class constructorTests {
private final UUID validID = UUID.randomUUID();
private final String validName = "Name";
private final String validEmail = "Email@gmail.com";
private final String validPassword = "Password";
private final Role validRole = Role.NORMAL_USER;
private final Settings validSettings = new Settings();
private final Inbox validInbox = new Inbox();

@Test
void shouldThrowIfIdIsNull() {
assertThrows(IllegalArgumentException.class, () ->
new User(
null,
validName,
validEmail,
validPassword,
validRole,
validSettings,
validInbox
));
}

@Test
void shouldThrowIfNameIsNull() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
null,
validEmail,
validPassword,
validRole,
validSettings,
validInbox
));
}

@Test
void shouldThrowIfNameIsBlank() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
" ",
validEmail,
validPassword,
validRole,
validSettings,
validInbox
));
}

@Nested
class emailTests {

@Test
void shouldThrowIfEmailIsNull() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
validName,
null,
validPassword,
validRole,
validSettings,
validInbox
));
}

@Test
void shouldThrowIfEmailIsBlank() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
validName,
" ",
validPassword,
validRole,
validSettings,
validInbox
));
}

@Test
void shouldThrowIfEmailDoesNotContainAt() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
validName,
"test.gmail.com",
validPassword,
validRole,
validSettings,
validInbox
));
}

@Test
void shouldThrowIfEmailDoesNotContainPeriod() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
validName,
"test@gmailcom",
validPassword,
validRole,
validSettings,
validInbox
));
}
}

@Test
void shouldThrowIfPasswordIsNull() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
validName,
validEmail,
null,
validRole,
validSettings,
validInbox
));
}

@Test
void shouldThrowIfRoleIsNull() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
validName,
validEmail,
validPassword,
null,
validSettings,
validInbox
));
}

@Test
void shouldThrowIfPasswordIsBlank() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
validName,
validEmail,
" ",
validRole,
validSettings,
validInbox
));
}

@Test
void shouldThrowIfSettingsIsNull() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
validName,
validEmail,
validPassword,
validRole,
null,
validInbox
));
}

@Test
void shouldThrowIfInboxIsNull() {
assertThrows(IllegalArgumentException.class, () ->
new User(
validID,
validName,
validEmail,
validPassword,
validRole,
validSettings,
null
));
}

@Test
void shouldCreateUser() {
User user = new User(
validID,
validName,
validEmail,
validPassword,
validRole,
validSettings,
validInbox
);

assertAll(
() -> assertEquals(validID, user.getId()),
() -> assertEquals(validName, user.getName()),
() -> assertEquals(validEmail, user.getEmail()),
() -> assertEquals(validRole, user.getRole()),
() -> assertEquals(validSettings, user.getSettings()),
() -> assertEquals(validInbox, user.getInbox())
);
}

}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 comments on commit 1bb6914

Please sign in to comment.