Skip to content
Snippets Groups Projects
Commit e8903f07 authored by Szeghy Géza László's avatar Szeghy Géza László
Browse files

Merge branch 'database' into 'main'

database

See merge request !1
parents e62d5664 aa6e5571
Branches
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