| /* |
| * Copyright (c) 2005, 2020 Oracle and/or its affiliates. All rights reserved. |
| * Copyright (c) 2005, 2015 SAP. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // SAP - initial API and implementation |
| |
| package org.eclipse.persistence.testing.tests.wdf.jpa1.query; |
| |
| import java.math.BigInteger; |
| import java.util.Date; |
| |
| import jakarta.persistence.EntityManager; |
| import jakarta.persistence.Query; |
| import jakarta.persistence.TemporalType; |
| |
| import org.eclipse.persistence.testing.framework.wdf.JPAEnvironment; |
| import org.eclipse.persistence.testing.framework.wdf.ToBeInvestigated; |
| import org.eclipse.persistence.testing.models.wdf.jpa1.types.TemporalTypesFieldAccess; |
| import org.eclipse.persistence.testing.tests.wdf.jpa1.JPA1Base; |
| import org.junit.Assert; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| public class TestTemporalParameterTypes extends JPA1Base { |
| |
| private static final TemporalTypesFieldAccess DATA = new TemporalTypesFieldAccess(BigInteger.ONE); |
| static { |
| DATA.fill(); |
| } |
| private static final Date DATE = DATA.getUtilDateAsDate(); |
| private static final Date TIME = DATA.getUtilDateAsTime(); |
| |
| @Before |
| public void testInsert() { |
| JPAEnvironment env = getEnvironment(); |
| EntityManager em = env.getEntityManager(); |
| try { |
| TemporalTypesFieldAccess obj = new TemporalTypesFieldAccess(BigInteger.ONE); |
| obj.fill(); |
| env.beginTransaction(em); |
| em.persist(obj); |
| env.commitTransactionAndClear(em); |
| verify(true, "no Exception"); |
| obj = em.find(TemporalTypesFieldAccess.class, BigInteger.ONE); |
| } finally { |
| closeEntityManager(em); |
| } |
| } |
| |
| @Test |
| public void testCorrectTemporalTypes() { |
| JPAEnvironment env = getEnvironment(); |
| EntityManager em = env.getEntityManager(); |
| try { |
| Query queryDate = em.createQuery("select tt from TemporalTypesFieldAccess tt where tt.utilDateAsDate = ?1"); |
| Query queryTime = em.createQuery("select tt from TemporalTypesFieldAccess tt where tt.utilDateAsTime = ?1"); |
| |
| queryDate.setParameter(1, DATE, TemporalType.DATE); |
| queryTime.setParameter(1, TIME, TemporalType.TIME); |
| |
| } finally { |
| closeEntityManager(em); |
| } |
| |
| } |
| |
| @Test |
| @ToBeInvestigated |
| public void testIncorrectTemporalTypes() { |
| JPAEnvironment env = getEnvironment(); |
| EntityManager em = env.getEntityManager(); |
| try { |
| try { |
| Query queryDate = em.createQuery("select tt from TemporalTypesFieldAccess tt where tt.utilDateAsDate = ?1"); |
| |
| queryDate.setParameter(1, DATE, TemporalType.TIME); |
| Assert.fail(); |
| } catch (IllegalArgumentException ex) { |
| // OK |
| } |
| |
| } finally { |
| closeEntityManager(em); |
| } |
| |
| } |
| |
| } |