Skip to content

Commit

Permalink
HHH-15256 Add test for issue
Browse files Browse the repository at this point in the history
  • Loading branch information
dreab8 committed May 16, 2022
1 parent 5d6e9a1 commit 7477771
Showing 1 changed file with 52 additions and 3 deletions.
Expand Up @@ -10,6 +10,7 @@
import org.hibernate.testing.orm.junit.DomainModel;
import org.hibernate.testing.orm.junit.SessionFactory;
import org.hibernate.testing.orm.junit.SessionFactoryScope;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

Expand All @@ -19,6 +20,8 @@
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertNotNull;

@DomainModel(
Expand All @@ -28,17 +31,19 @@
}
)
@SessionFactory
@TestForIssue(jiraKey = "HHH-15223")
public class EntityAsParamValueTest {

public static long ID_ENTITY_WHITOUT_ORGANIZER = 1;
public static long ID_ENTITY_WHIT_ORGANIZER = 2;

@BeforeEach
public void setUp(SessionFactoryScope scope) {
scope.inTransaction(
session -> {
Organizer organizer = new Organizer( 1L, "Test Organizer" );

Event eventWithOrganizer = new Event( 1L, "Test Event", organizer );
Event eventWithoutOrganizer = new Event( 2L, "Null Event", null );
Event eventWithOrganizer = new Event( ID_ENTITY_WHIT_ORGANIZER, "Test Event", organizer );
Event eventWithoutOrganizer = new Event( ID_ENTITY_WHITOUT_ORGANIZER, "Null Event", null );

session.persist( organizer );
session.persist( eventWithOrganizer );
Expand All @@ -47,7 +52,49 @@ public void setUp(SessionFactoryScope scope) {
);
}

@AfterEach
public void tearDown(SessionFactoryScope scope) {
scope.inTransaction(
session -> {
session.createMutationQuery( "delete from Event" ).executeUpdate();
session.createMutationQuery( "delete from Organizer" ).executeUpdate();
}
);
}

@Test
@TestForIssue(jiraKey = "HHH-15256")
public void testQueryWithLeftJoinEntityAsParamValue(SessionFactoryScope scope) {
scope.inTransaction(
session -> {
Organizer organizer = session.get( Organizer.class, 1L );
assertNotNull( organizer );

Event event = session.createQuery(
"FROM Event e LEFT JOIN e.organizer WHERE (:organizer IS NULL AND e.organizer IS NULL OR e.organizer = :organizer)",
Event.class
)
.setParameter( "organizer", organizer )
.setMaxResults( 1 )
.uniqueResult();
assertNotNull( event );
assertThat( event.getId(), is( ID_ENTITY_WHIT_ORGANIZER ) );

event = session.createQuery(
"FROM Event e LEFT JOIN e.organizer WHERE (:organizer IS NULL AND e.organizer IS NULL OR e.organizer = :organizer)",
Event.class
)
.setParameter( "organizer", null )
.setMaxResults( 1 )
.uniqueResult();
assertNotNull( event );
assertThat( event.getId(), is( ID_ENTITY_WHITOUT_ORGANIZER ) );
}
);
}

@Test
@TestForIssue(jiraKey = "HHH-15223")
public void testQueryWithEntityAsParamValue(SessionFactoryScope scope) {
scope.inTransaction(
session -> {
Expand All @@ -62,6 +109,7 @@ public void testQueryWithEntityAsParamValue(SessionFactoryScope scope) {
.setMaxResults( 1 )
.uniqueResult();
assertNotNull( event );
assertThat( event.getId(), is( ID_ENTITY_WHIT_ORGANIZER ) );

event = session.createQuery(
"FROM Event e WHERE (:organizer IS NULL AND e.organizer IS NULL OR e.organizer = :organizer)",
Expand All @@ -71,6 +119,7 @@ public void testQueryWithEntityAsParamValue(SessionFactoryScope scope) {
.setMaxResults( 1 )
.uniqueResult();
assertNotNull( event );
assertThat( event.getId(), is( ID_ENTITY_WHITOUT_ORGANIZER ) );
}
);
}
Expand Down

0 comments on commit 7477771

Please sign in to comment.