Skip to content

Commit

Permalink
Improve a bit HibernateMainIT test
Browse files Browse the repository at this point in the history
  • Loading branch information
andrei-punko committed Jun 7, 2024
1 parent 8fe1eca commit 1c50d51
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions hibernate-mappings/src/test/java/by/andd3dfx/HibernateMainIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.util.List;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
Expand All @@ -30,10 +31,10 @@ public void checkRecordsAmount() {
var emFactory = session.getEntityManagerFactory();
var em = emFactory.createEntityManager();

getFromDbAndCheck(em, Book.class, 4);
getFromDbAndCheck(em, Publisher.class, 2);
getFromDbAndCheck(em, Address.class, 2);
getFromDbAndCheck(em, Author.class, 3);
getFromDbAndCheck(em, Publisher.class, 2);
getFromDbAndCheck(em, Book.class, 4);

getFromDbAndCheck_ForEntityWithDiscriminator(em, ZeroSizeItem.class, 1);
getFromDbAndCheck_ForEntityWithDiscriminator(em, OneSizeItem.class, 1);
Expand All @@ -43,26 +44,33 @@ public void checkRecordsAmount() {
}
}

private <T> void getFromDbAndCheck(EntityManager em, Class<T> clazz, int expectedItemsCount) {
private <T> List<T> getFromDbAndCheck(EntityManager em, Class<T> clazz, int expectedItemsCount) {
System.out.println("---");
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<T> query = builder.createQuery(clazz);
Root<T> variableRoot = query.from(clazz);
query.select(variableRoot);
var items = em.createQuery(query).getResultList();

System.out.println("Retrieved next items: " + items);
assertThat("Wrong items count", items.size(), is(expectedItemsCount));
printExtractedItems_andCheckTheirAmount(items, expectedItemsCount);
System.out.println("---");
return items;
}

private <T> void getFromDbAndCheck_ForEntityWithDiscriminator(EntityManager em, Class<T> clazz, int expectedItemsCount) {
private <T> List<T> getFromDbAndCheck_ForEntityWithDiscriminator(EntityManager em, Class<T> clazz, int expectedItemsCount) {
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<T> query = builder.createQuery(clazz);
Root<T> variableRoot = query.from(clazz);
query.where(builder.equal(variableRoot.type(), clazz));
query.select(variableRoot);
var items = em.createQuery(query).getResultList();

System.out.println("Retrieved next items: " + items);
printExtractedItems_andCheckTheirAmount(items, expectedItemsCount);
return items;
}

private static <T> void printExtractedItems_andCheckTheirAmount(List<T> items, int expectedItemsCount) {
System.out.println(">> Retrieved next items: " + items);
assertThat("Wrong items count", items.size(), is(expectedItemsCount));
}
}

0 comments on commit 1c50d51

Please sign in to comment.