Skip to content
Snippets Groups Projects
Commit 52cc22ad authored by Birk Øvstetun Narvhus's avatar Birk Øvstetun Narvhus
Browse files

Merge branch 'test/71-setup-repo-testing' into 'main'

Resolve "Setup repo testing"

Closes #71

See merge request idatt2106-v23-03/backend!40
parents ab634178 ad479956
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@ package ntnu.idatt2016.v233.SmartMat.entity.user;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import ntnu.idatt2016.v233.SmartMat.dto.enums.Authority;
import org.springframework.security.core.GrantedAuthority;
......@@ -23,6 +24,8 @@ import java.util.List;
* @since 19.04.2023
*
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity(name = "users")
......
package ntnu.idatt2016.v233.SmartMat.repository;
import ntnu.idatt2016.v233.SmartMat.dto.enums.Authority;
import ntnu.idatt2016.v233.SmartMat.entity.user.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import java.sql.Date;
import java.util.List;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.*;
@DataJpaTest // this annotation will setup an in-memory database for testing
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
void testSaveUser() {
User user = User.builder()
.username("testuser")
.password("password")
.enabled(true)
.email("testuser@example.com")
.firstName("Test")
.lastName("User")
.dateOfBirth(Date.valueOf("1990-01-01"))
.authority(Authority.USER)
.build();
userRepository.save(user);
Optional<User> retrievedUser = userRepository.findByUsername(user.getUsername());
assertTrue(retrievedUser.isPresent());
assertEquals(user.getUsername(), retrievedUser.get().getUsername());
assertEquals(user.getEmail(), retrievedUser.get().getEmail());
assertEquals(user.getFirstName(), retrievedUser.get().getFirstName());
assertEquals(user.getLastName(), retrievedUser.get().getLastName());
assertEquals(user.getDateOfBirth(), retrievedUser.get().getDateOfBirth());
assertEquals(user.getAuthorities(), retrievedUser.get().getAuthorities());
userRepository.delete(user);
assertFalse(userRepository.findByUsername(user.getUsername()).isPresent());
}
@Test
public void findAllTest() {
User user1 = new User();
user1.setUsername("testuser1");
user1.setPassword("password1");
user1.setEnabled(true);
user1.setEmail("testuser1@example.com");
user1.setFirstName("Test1");
user1.setLastName("User1");
userRepository.save(user1);
User user2 = new User();
user2.setUsername("testuser2");
user2.setPassword("password2");
user2.setEnabled(true);
user2.setEmail("testuser2@example.com");
user2.setFirstName("Test2");
user2.setLastName("User2");
userRepository.save(user2);
List<User> users = userRepository.findAll();
assertEquals(2, users.size());
assertEquals(user1.getUsername(), users.get(0).getUsername());
assertEquals(user2.getUsername(), users.get(1).getUsername());
}
@Test
public void deleteTest() {
User user = new User();
user.setUsername("testuser");
user.setPassword("password");
user.setEnabled(true);
user.setEmail("testuser@example.com");
user.setFirstName("Test");
user.setLastName("User");
userRepository.save(user);
userRepository.delete(user);
Optional<User> optionalUser = userRepository.findByUsername(user.getUsername());
assertFalse(optionalUser.isPresent());
}
@Test
void testOverwriteUser() {
// Create a new user and save it to the database
User user = User.builder()
.username("testuser")
.password("password")
.enabled(true)
.email("testuser@example.com")
.firstName("Test")
.lastName("User")
.dateOfBirth(Date.valueOf("1990-01-01"))
.authority(Authority.USER)
.build();
userRepository.save(user);
// Modify the user's details and save it again
User modifiedUser = User.builder()
.username("testuser")
.password("newpassword")
.enabled(false)
.email("newemail@example.com")
.firstName("New")
.lastName("Name")
.dateOfBirth(Date.valueOf("1995-01-01"))
.authority(Authority.ADMIN)
.build();
userRepository.save(modifiedUser);
// Verify that the modified user has replaced the original user
Optional<User> retrievedUser = userRepository.findByUsername(user.getUsername());
assertTrue(retrievedUser.isPresent());
assertEquals(modifiedUser.getUsername(), retrievedUser.get().getUsername());
assertEquals(modifiedUser.getEmail(), retrievedUser.get().getEmail());
assertEquals(modifiedUser.getFirstName(), retrievedUser.get().getFirstName());
assertEquals(modifiedUser.getLastName(), retrievedUser.get().getLastName());
assertEquals(modifiedUser.getDateOfBirth(), retrievedUser.get().getDateOfBirth());
assertEquals(modifiedUser.getAuthorities(), retrievedUser.get().getAuthorities());
// Clean up by deleting the modified user
userRepository.delete(modifiedUser);
assertFalse(userRepository.findByUsername(user.getUsername()).isPresent());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment