Hibernate Associations

This commit is contained in:
Kingsley Amankwah 2023-04-27 05:10:50 +05:30
parent 82f9d6a500
commit 1767ea3cdc
3 changed files with 0 additions and 236 deletions

View File

@ -1,103 +0,0 @@
// package com.baeldung.hibernate.associations;
// import org.junit.jupiter.api.Test;
// import org.junit.jupiter.api.extension.ExtendWith;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
// import org.springframework.test.context.junit.jupiter.SpringExtension;
// import java.util.Arrays;
// import java.util.List;
// import com.baeldung.associations.biredirectional.*;
// import static org.assertj.core.api.Assertions.assertThat;
// @ExtendWith(SpringExtension.class)
// @DataJpaTest
// public class BidirectionalHibernateIntegrationTest {
// @Autowired
// private Course courseRepository;
// @Autowired
// private Student studentRepository;
// @Test
// public void whenAddingStudentsToCourse_thenCourseHasStudents() {
// // given
// Student student1 = new Student();
// student1.setName("John");
// Student student2 = new Student();
// student2.setName("Jane");
// studentRepository.saveAll(Arrays.asList(student1, student2));
// Course course = new Course();
// course.setName("History");
// courseRepository.save(course);
// // when
// List<Student> students = studentRepository.findAll();
// course.setStudents(students);
// courseRepository.save(course);
// // then
// Course result = courseRepository.findById(course.getId()).get();
// assertThat(result.getStudents()).containsExactlyInAnyOrder(student1, student2);
// }
// }
package com.baeldung.hibernate.associations;
import com.baeldung.associations.biredirectional.*;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
import java.util.List;
public class BidirectionalUnitTest {
@Test
public void givenDepartmentWithEmployees_whenGetEmployees_thenReturnListWithEmployees() {
// given
Department department = new Department();
Employee employee1 = new Employee();
Employee employee2 = new Employee();
department.getEmployees().add(employee1);
department.getEmployees().add(employee2);
// when
List<Employee> result = department.getEmployees();
// then
assertAll("department employees",
() -> assertEquals(2, result.size()),
() -> assertTrue(result.contains(employee1)),
() -> assertTrue(result.contains(employee2))
);
}
@Test
public void givenCourseWithStudents_whenGetStudents_thenReturnListWithStudents() {
// given
Course course = new Course();
Student student1 = new Student();
Student student2 = new Student();
course.getStudents().add(student1);
course.getStudents().add(student2);
// when
List<Student> result = course.getStudents();
// then
assertAll("course students",
() -> assertEquals(2, result.size()),
() -> assertTrue(result.contains(student1)),
() -> assertTrue(result.contains(student2))
);
}
}

View File

@ -1,5 +0,0 @@
package com.baeldung.hibernate.associations;
public @interface DataJpaTest {
}

View File

@ -1,128 +0,0 @@
// // import org.junit.jupiter.api.Assertions;
// // import org.junit.jupiter.api.Test;
// // import org.springframework.beans.factory.annotation.Autowired;
// // import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
// // import org.springframework.boot.test.context.SpringBootTest;
// // import org.springframework.transaction.annotation.Transactional;
// // import java.util.Collections;
// // import java.util.List;
// // @DataJpaTest
// // @Transactional
// // public class UnidirectionalUnitTest {
// // @Autowired
// // private EntityManager entityManager;
// // @Test
// // public void givenBookWithAuthor_whenSaved_thenFindBookByAuthor() {
// // // given
// // Author author = new Author();
// // author.setName("John Doe");
// // Book book = new Book();
// // book.setTitle("My Book");
// // book.setAuthors(Collections.singleton(author));
// // entityManager.persist(author);
// // entityManager.persist(book);
// // entityManager.flush();
// // entityManager.clear();
// // // when
// // List<Book> booksByAuthor = entityManager.createQuery(
// // "select b from Book b join b.authors a where a.name = :name", Book.class)
// // .setParameter("name", "John Doe")
// // .getResultList();
// // // then
// // Assertions.assertEquals(1, booksByAuthor.size());
// // Assertions.assertEquals(book, booksByAuthor.get(0));
// // }
// // }
// package com.baeldung.hibernate.associations;
// import com.baeldung.associations.unidirectional.*;
// import org.junit.jupiter.api.Test;
// import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
// import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
// import java.util.List;
// import java.util.Set;
// import static org.assertj.core.api.Assertions.assertThat;
// @DataJpaTest
// public class UnidirectionalUnitTest {
// @Autowired
// private TestEntityManager entityManager;
// @Test
// public void givenDepartmentWithEmployees_whenFindById_thenDepartmentWithEmployeesReturned() {
// // given
// Employee employee1 = new Employee();
// Employee employee2 = new Employee();
// Department department = new Department();
// department.setEmployees(List.of(employee1, employee2));
// entityManager.persist(department);
// entityManager.flush();
// // when
// Department foundDepartment = entityManager.find(Department.class, department.getId());
// // then
// assertThat(foundDepartment).isEqualTo(department);
// assertThat(foundDepartment.getEmployees()).containsExactly(employee1, employee2);
// }
// @Test
// public void givenEmployeeWithParkingSpot_whenFindById_thenEmployeeWithParkingSpotReturned() {
// // given
// ParkingSpot parkingSpot = new ParkingSpot();
// entityManager.persist(parkingSpot);
// entityManager.flush();
// Employee employee = new Employee();
// employee.setParkingSpot(parkingSpot);
// entityManager.persist(employee);
// entityManager.flush();
// // when
// Employee foundEmployee = entityManager.find(Employee.class, employee.getId());
// // then
// assertThat(foundEmployee).isEqualTo(employee);
// assertThat(foundEmployee.getParkingSpot()).isEqualTo(parkingSpot);
// }
// @Test
// public void givenBookWithAuthors_whenFindById_thenBookWithAuthorsReturned() {
// // given
// Author author1 = new Author();
// Author author2 = new Author();
// entityManager.persist(author1);
// entityManager.persist(author2);
// entityManager.flush();
// Book book = new Book();
// book.setAuthors(Set.of(author1, author2));
// entityManager.persist(book);
// entityManager.flush();
// // when
// Book foundBook = entityManager.find(Book.class, book.getId());
// // then
// assertThat(foundBook).isEqualTo(book);
// assertThat(foundBook.getAuthors()).containsExactly(author1, author2);
// }
// }