| /* |
| * TestUnionPlaceholderTypes.java |
| * |
| * Created on October 5, 2006, 2:04 PM |
| * |
| * To change this template, choose Tools | Template Manager |
| * and open the template in the editor. |
| */ |
| |
| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.openjpa.persistence.jdbc.meta.tableperclass; |
| |
| |
| import org.apache.openjpa.jdbc.conf.JDBCConfiguration; |
| import org.apache.openjpa.kernel.Broker; |
| import org.apache.openjpa.persistence.jdbc.common.apps.PlaceholderTypesA; |
| import org.apache.openjpa.persistence.jdbc.common.apps.PlaceholderTypesB; |
| import org.apache.openjpa.util.Id; |
| |
| |
| public class TestUnionPlaceholderTypes |
| extends org.apache.openjpa.persistence.jdbc.kernel.TestSQLListenerTestCase { |
| |
| /** Creates a new instance of TestUnionPlaceholderTypes */ |
| public TestUnionPlaceholderTypes(String name) |
| { |
| super(name); |
| } |
| |
| private boolean _union = false; |
| |
| @Override |
| public void setUpTestCase() { |
| JDBCConfiguration conf = (JDBCConfiguration) getConfiguration(); |
| //FIXME jthomas |
| //_union = ((SQLFactory) conf.getSQLFactoryInstance()) |
| //.getAdvancedSQL().getSupportsUnion(); |
| } |
| |
| public void testUnion() |
| throws Exception { |
| deleteAll(PlaceholderTypesA.class); |
| |
| PlaceholderTypesA pta = new PlaceholderTypesA(); |
| pta.setIntA(1); |
| PlaceholderTypesB ptb = new PlaceholderTypesB(); |
| ptb.setIntA(2); |
| ptb.setIntB(3); |
| ptb.setBooleanB(true); |
| ptb.setByteB((byte) 64); |
| ptb.setCharB('a'); |
| ptb.setFloatB(99.9F); |
| ptb.setStringB("stringB"); |
| ptb.setClobB("clobB"); |
| ptb.setBlobB("blobB"); |
| |
| Broker broker = getBrokerFactory().newBroker(); |
| broker.begin(); |
| broker.persist(pta, null); |
| broker.persist(ptb, null); |
| broker.commit(); |
| Object oida = broker.getObjectId(pta); |
| long idb = ((Id) broker.getObjectId(ptb)).getId(); |
| broker.close(); |
| |
| broker = getBrokerFactory().newBroker(); |
| broker.begin(); |
| sql.clear(); |
| pta = (PlaceholderTypesA) broker.find(oida, true, null); |
| assertEquals(1, pta.getIntA()); |
| if (_union) |
| assertEquals(1, sql.size()); |
| else |
| assertNotSQL("UNION"); |
| broker.close(); |
| |
| broker = getBrokerFactory().newBroker(); |
| broker.begin(); |
| sql.clear(); |
| ptb = (PlaceholderTypesB) broker.find(broker.newObjectId |
| (PlaceholderTypesB.class, idb), true, null); |
| assertEquals(2, ptb.getIntA()); |
| assertEquals(3, ptb.getIntB()); |
| assertTrue(ptb.getBooleanB()); |
| assertEquals(64, ptb.getByteB()); |
| assertEquals('a', ptb.getCharB()); |
| assertEquals(99.9F, ptb.getFloatB(), .001); |
| assertEquals("stringB", ptb.getStringB()); |
| assertEquals("clobB", ptb.getClobB()); |
| assertEquals("blobB", ptb.getBlobB()); |
| if (_union) |
| assertEquals(1, sql.size()); |
| else |
| assertNotSQL("UNION"); |
| broker.close(); |
| } |
| |
| } |