From ec4a1865064e7754ed68d8fc19bff9223bfaeb53 Mon Sep 17 00:00:00 2001 From: Michael Rudolf Date: Wed, 13 Apr 2011 12:31:49 +0200 Subject: [PATCH] Added test showing misbehaviour of AbstractPathImpl.get(String), which throws a NullPointerException while preparing an IllegalArgumentException that should be thrown here. Signed-off-by: Michael Rudolf --- .../criteria/paths/AbstractPathImplTest.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 hibernate-entitymanager/src/test/java/org/hibernate/ejb/criteria/paths/AbstractPathImplTest.java diff --git a/hibernate-entitymanager/src/test/java/org/hibernate/ejb/criteria/paths/AbstractPathImplTest.java b/hibernate-entitymanager/src/test/java/org/hibernate/ejb/criteria/paths/AbstractPathImplTest.java new file mode 100644 index 0000000000..49de96067c --- /dev/null +++ b/hibernate-entitymanager/src/test/java/org/hibernate/ejb/criteria/paths/AbstractPathImplTest.java @@ -0,0 +1,57 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * Copyright (c) 2010, Red Hat Inc. or third-party contributors as + * indicated by the @author tags or express copyright attribution + * statements applied by the authors. All third-party contributions are + * distributed under license by Red Hat Inc. + * + * This copyrighted material is made available to anyone wishing to use, modify, + * copy, or redistribute it subject to the terms and conditions of the GNU + * Lesser General Public License, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this distribution; if not, write to: + * Free Software Foundation, Inc. + * 51 Franklin Street, Fifth Floor + * Boston, MA 02110-1301 USA + */ +package org.hibernate.ejb.criteria.paths; + +import javax.persistence.EntityManager; +import javax.persistence.TypedQuery; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Join; +import javax.persistence.criteria.Root; + +import org.hibernate.ejb.metamodel.AbstractMetamodelSpecificTest; +import org.hibernate.ejb.metamodel.LineItem; +import org.hibernate.ejb.metamodel.LineItem_; +import org.hibernate.ejb.metamodel.Order; +import org.hibernate.ejb.metamodel.Order_; + +import org.junit.Test; + +/** + * @author Michael Rudolf + */ +public class AbstractPathImplTest extends AbstractMetamodelSpecificTest { + @Test(expected=IllegalArgumentException.class) + public void testGetNonExistingAttributeViaName() { + EntityManager em = getOrCreateEntityManager(); + try { + CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder(); + CriteriaQuery criteria = criteriaBuilder.createQuery( Order.class ); + Root orderRoot = criteria.from( Order.class ); + orderRoot.get( "nonExistingAttribute" ); + } finally { + em.close(); + } + } +}