Skip to content
Snippets Groups Projects
Commit aa6e5571 authored by SajtosKifli's avatar SajtosKifli
Browse files

update database

parent e62d5664
No related branches found
No related tags found
1 merge request!1database
package hu.pazmany;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Column;
import jakarta.persistence.Table;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.JoinColumn;
import java.time.LocalDateTime;
@Entity
@Table(name = "DOCUMENTS")
public class Document {
@Id
@Column(name = "id", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "userId", nullable = false)
private hu.pazmany.User user;
@ManyToOne
@JoinColumn(name = "subjectId", nullable = false)
private Subject subject;
@Column(name = "title", nullable = false)
private String title;
@Column(name = "description")
private String description;
@Column(name = "uploaded")
private LocalDateTime uploaded;
@Column(name = "filepath", nullable = false)
private String filepath;
// Getters and setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public hu.pazmany.User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Subject getSubject() {
return subject;
}
public void setSubject(Subject subject) {
this.subject = subject;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public LocalDateTime getUploaded() {
return uploaded;
}
public void setUploaded(LocalDateTime uploaded) {
this.uploaded = uploaded;
}
public String getFilepath() {
return filepath;
}
public void setFilepath(String filepath) {
this.filepath = filepath;
}
}
package hu.pazmany;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface DocumentRepository extends JpaRepository<Document, Long>{
List<Document> findAllByUser(User user);
List<Document> findAllBySubject(Subject subject);
}
package hu.pazmany;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Column;
import jakarta.persistence.Table;
@Entity
@Table(name = "SUBJECTS")
public class Subject {
@Id
@Column(name = "id", unique = true, nullable = false)
private String subjectId;
@Column(name = "name", nullable = false)
private String name;
// Getters and setters
public String getSubjectId() {
return subjectId;
}
public void setSubjectId(String subjectId) {
this.subjectId = subjectId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package hu.pazmany;
import org.springframework.data.jpa.repository.JpaRepository;
public interface SubjectRepository extends JpaRepository<Subject, String>{
Subject findBySubjectId(String subjectId);
}
package hu.pazmany;
import jakarta.persistence.*;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Column;
import jakarta.persistence.Table;
@Entity
@Table(name = "`user`")
@Table(name = "USERS")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String fullName;
@Column(name = "username", unique = true, nullable = false)
private String username;
private String password; //Ide fog kelleni egy enkriptálás (hajrá)
public Long getId() {
return id;
}
@Column(name = "password", nullable = false)
private String password;
public void setId(Long id) {
this.id = id;
}
@Column(name = "fullName")
private String fullName;
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
// Getters and setters
public String getUsername() {
return username;
......@@ -43,4 +35,12 @@ public class User {
public void setPassword(String password) {
this.password = password;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
}
......@@ -2,6 +2,6 @@ package hu.pazmany;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
public interface UserRepository extends JpaRepository<User, String> {
User findByUsername(String username);
}
package hu.pazmany;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
public class DocumentRepositoryTests {
@Autowired
private DocumentRepository documentRepository;
@Autowired
private UserRepository userRepository;
@Autowired
private SubjectRepository subjectRepository;
@Test
public void testFindAllByUser() {
User user = new User();
user.setUsername("testUser");
user.setPassword("testPassword");
userRepository.save(user);
Subject subject = new Subject();
subject.setSubjectId("testId");
subject.setName("testName");
subjectRepository.save(subject);
int n = 4;
for (int i = 0; i < n; i++) {
Document document = new Document();
document.setUser(user);
document.setSubject(subject);
document.setTitle("testTitle" + i);
document.setFilepath("testFilepath" + i);
documentRepository.save(document);
}
List<Document> documents = documentRepository.findAllByUser(user);
assertThat(documents).hasSize(n);
for (int i = 0; i < n; i++) {
assertThat(documents.get(i).getUser().getUsername()).isEqualTo(user.getUsername());
}
}
@Test
public void testFindAllBySubject() {
Subject subject = new Subject();
subject.setSubjectId("testId");
subject.setName("testName");
subjectRepository.save(subject);
User user = new User();
user.setUsername("testUser");
user.setPassword("testPassword");
userRepository.save(user);
int n = 4;
for (int i = 0; i < n; i++) {
Document document = new Document();
document.setUser(user);
document.setSubject(subject);
document.setTitle("testTitle" + i);
document.setFilepath("testFilepath" + i);
documentRepository.save(document);
}
List<Document> documents = documentRepository.findAllBySubject(subject);
assertThat(documents).hasSize(n);
for (int i = 0; i < n; i++) {
assertThat(documents.get(i).getSubject().getSubjectId()).isEqualTo(subject.getSubjectId());
}
}
@Test
public void testFindById() {
Subject subject = new Subject();
subject.setSubjectId("testId");
subject.setName("testName");
subjectRepository.save(subject);
User user = new User();
user.setUsername("testUser");
user.setPassword("testPassword");
userRepository.save(user);
Document document = new Document();
document.setUser(user);
document.setSubject(subject);
document.setTitle("testTitle");
document.setFilepath("testFilepath");
documentRepository.save(document);
Document found = documentRepository.findById(document.getId()).get();
assertThat(found.getTitle()).isEqualTo(document.getTitle());
}
}
\ No newline at end of file
package hu.pazmany;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
public class SubjectRepositoryTests {
@Autowired
private SubjectRepository subjectRepository;
@Test
public void testFindBySubjectId() {
Subject subject = new Subject();
subject.setSubjectId("testId");
subject.setName("testName");
subjectRepository.save(subject);
Subject found = subjectRepository.findBySubjectId(subject.getSubjectId());
// Ids have to be compared, as the objects differ, even if their data does not
assertThat(found.getSubjectId()).isEqualTo(subject.getSubjectId());
}
@Test
public void testFindAll() {
Subject subject = new Subject();
subject.setSubjectId("testId");
subject.setName("testName");
subjectRepository.save(subject);
int n = 4;
for (int i = 0; i < n; i++) {
Subject tempSubject = new Subject();
tempSubject.setSubjectId("testId" + i);
tempSubject.setName("testName" + i);
subjectRepository.save(tempSubject);
}
List<Subject> subjects = subjectRepository.findAll();
assertThat(subjects).hasSize(n+1);
assertThat(subjects.get(0).getSubjectId()).isEqualTo(subject.getSubjectId());
}
}
\ No newline at end of file
package hu.pazmany;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
public class UserRepositoryTests {
@Autowired
private UserRepository userRepository;
@Test
public void testUserRepository() {
// Create a new User
User user = new User();
user.setUsername("testUser");
user.setPassword("testPassword");
// Save the User
userRepository.save(user);
// Retrieve the User
User retrievedUser = userRepository.findByUsername("testUser");
// Assert that the retrieved User is the same as the one we saved
assertThat(retrievedUser).isNotNull();
assertThat(retrievedUser.getUsername()).isEqualTo(user.getUsername());
assertThat(retrievedUser.getPassword()).isEqualTo(user.getPassword());
}
@Test
public void testMissingUser() {
// Retrieve a User that doesn't exist
User retrievedUser = userRepository.findByUsername("missingUser");
// Assert that the retrieved User is null
assertThat(retrievedUser).isNull();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment