package org.hibernate.jpa.test.graphs.named.subgraph; import java.util.List; import javax.persistence.AttributeNode; import javax.persistence.EntityGraph; import javax.persistence.EntityManager; import org.hibernate.jpa.test.BaseEntityManagerFunctionalTestCase; import org.hibernate.testing.TestForIssue; import org.junit.Assert; import org.junit.Test; import static org.junit.Assert.assertNotNull; public class SubgraphOrmNamedEntityGraphTest extends BaseEntityManagerFunctionalTestCase { @Override public String[] getEjb3DD() { return new String[]{"org/hibernate/jpa/test/graphs/named/subgraph/orm.xml"}; } @Test @TestForIssue( jiraKey = "HHH-10633" ) public void testSubgraphsAreLoadededFromOrmXml() throws Exception { EntityManager entityManager = getOrCreateEntityManager(); List<EntityGraph<? super Book>> lneg = entityManager.getEntityGraphs( Book.class ); assertNotNull( lneg ); Assert.assertEquals(2, lneg.size()); for (EntityGraph<? super Book> neg : lneg){ if (neg.getName().equalsIgnoreCase( "full" )){ assertNotNull( neg.getAttributeNodes() ); for (AttributeNode<?> n : neg.getAttributeNodes()){ if (n.getAttributeName().equalsIgnoreCase( "authors" )) { Assert.assertEquals(1, n.getSubgraphs().size()); java.util.List<javax.persistence.AttributeNode<?>> attributeNodes = n.getSubgraphs().get(Author.class).getAttributeNodes(); assertNotNull("Subgraph attributes missing", attributeNodes); Assert.assertEquals("Subgraph wrong number of attributes ", 3, attributeNodes.size()); } } } } entityManager.close(); } }