/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* Oracle - initial API and implementation from Oracle TopLink | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.tests.sessionsxml; | |
import org.eclipse.persistence.logging.SessionLog; | |
import org.eclipse.persistence.sequencing.NativeSequence; | |
import org.eclipse.persistence.sessions.DatabaseSession; | |
import org.eclipse.persistence.testing.framework.AutoVerifyTestCase; | |
import org.eclipse.persistence.testing.framework.TestErrorException; | |
import org.eclipse.persistence.sessions.server.ConnectionPool; | |
import org.eclipse.persistence.sessions.server.ServerSession; | |
import org.eclipse.persistence.internal.sessions.factories.XMLSessionConfigProject; | |
import org.eclipse.persistence.internal.sessions.factories.XMLSessionConfigProject_11_1_1; | |
import org.eclipse.persistence.sessions.factories.SessionManager; | |
import org.eclipse.persistence.sessions.factories.XMLSessionConfigLoader; | |
/** | |
* Tests that some of the defaulted values from the XML Schema are set properly. | |
* BUG #3455771 and 3454653 | |
* | |
* @author Guy Pelletier | |
* @revisor Edwin Tang | |
* @version 2.0 | |
* @date December 08, 2004 | |
*/ | |
public class SessionsXMLSchemaDefaultValueTest extends AutoVerifyTestCase { | |
DatabaseSession employeeSession; | |
ServerSession serverSession; | |
public SessionsXMLSchemaDefaultValueTest() { | |
setDescription("Test default values from the XML schema."); | |
} | |
public void reset() { | |
if (employeeSession != null && employeeSession.isConnected()) { | |
employeeSession.logout(); // If session is logged in, log it out | |
SessionManager.getManager().getSessions().remove(employeeSession); | |
employeeSession = null; | |
} | |
} | |
public void test() { | |
XMLSessionConfigLoader loader = new XMLSessionConfigLoader("org/eclipse/persistence/testing/models/sessionsxml/XMLSchemaSessionNoDefaultedTagsAllowed.xml"); | |
// don't log in the session | |
employeeSession = (DatabaseSession)SessionManager.getManager().getSession(loader, "EmployeeSession", getClass().getClassLoader(), false, true); // refresh the session | |
// don't log in the session | |
serverSession = (ServerSession)SessionManager.getManager().getSession(loader, "ServerSession", getClass().getClassLoader(), false, true); // refresh the session | |
} | |
protected void verify() { | |
if (employeeSession == null) { | |
throw new TestErrorException("Employee session is null"); | |
} | |
// Bug 300111 - Platform should specify default sequence table | |
if (!employeeSession.getDatasourceLogin().getPlatform().getSequenceTableName().equals(employeeSession.getPlatform().getDefaultSequenceTableName())) { | |
throw new TestErrorException("The sequence table had the wrong default value"); | |
} | |
if (!employeeSession.getDatasourceLogin().getPlatform().getSequenceCounterFieldName().equals(XMLSessionConfigProject.SEQUENCE_COUNTER_FIELD_DEFAULT)) { | |
throw new TestErrorException("The sequence counter field name had the wrong default value"); | |
} | |
if (!employeeSession.getDatasourceLogin().getPlatform().getSequenceNameFieldName().equals(XMLSessionConfigProject.SEQUENCE_NAME_FIELD_DEFAULT)) { | |
throw new TestErrorException("The sequence name field name had the wrong default value"); | |
} | |
// We could check a few others. More can be added later. | |
// Most defaults were verified in the debugger at runtime. | |
// The three above were explicitly tested since they were the cause of | |
// error for BUG 3454653 | |
if (employeeSession.getDatasourceLogin().getPlatform().getSequencePreallocationSize() != XMLSessionConfigProject.SEQUENCE_PREALLOCATION_SIZE_DEFAULT) { | |
throw new TestErrorException("The sequence preallocation size had the wrong default value"); | |
} | |
if ((employeeSession.getDatasourceLogin().getPlatform().getDefaultSequence() instanceof NativeSequence) != XMLSessionConfigProject.NATIVE_SEQUENCING_DEFAULT) { | |
throw new TestErrorException("usesNativeSequencing status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().getMaxBatchWritingSize() != XMLSessionConfigProject.MAX_BATCH_WRITING_SIZE_DEFAULT) { | |
throw new TestErrorException("The max batch writing had the wrong default value"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().usesNativeSQL() != XMLSessionConfigProject.NATIVE_SQL_DEFAULT) { | |
throw new TestErrorException("usesNativeSQL status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().usesBatchWriting() != XMLSessionConfigProject.BATCH_WRITING_DEFAULT) { | |
throw new TestErrorException("usesBatchWriting status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().usesJDBCBatchWriting() != XMLSessionConfigProject.JDBC20_BATCH_WRITING_DEFAULT) { | |
throw new TestErrorException("usesJDBCBatchWriting status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().usesNativeSQL() != XMLSessionConfigProject.NATIVE_SQL_DEFAULT) { | |
throw new TestErrorException("usesNativeSQL status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().usesStringBinding() != XMLSessionConfigProject.STRING_BINDING_DEFAULT) { | |
throw new TestErrorException("usesStringBinding status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().usesStreamsForBinding() != XMLSessionConfigProject.STREAMS_FOR_BINDING_DEFAULT) { | |
throw new TestErrorException("usesStreamsForBinding status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().usesByteArrayBinding() != XMLSessionConfigProject.BYTE_ARRAY_BINDING_DEFAULT) { | |
throw new TestErrorException("usesByteArrayBinding status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().shouldBindAllParameters() != XMLSessionConfigProject_11_1_1.BIND_ALL_PARAMETERS_DEFAULT) { | |
throw new TestErrorException("shouldBindAllParameters status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().shouldCacheAllStatements() != XMLSessionConfigProject.CACHE_ALL_STATEMENTS_DEFAULT) { | |
throw new TestErrorException("shouldCacheAllStatements status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().shouldForceFieldNamesToUpperCase() != XMLSessionConfigProject.FORCE_FIELD_NAMES_TO_UPPERCASE_DEFAULT) { | |
throw new TestErrorException("shouldForceFieldNamesToUpperCase status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().shouldTrimStrings() != XMLSessionConfigProject.TRIM_STRINGS_DEFAULT) { | |
throw new TestErrorException("shouldTrimStrings status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().getPlatform().shouldOptimizeDataConversion() != XMLSessionConfigProject.OPTIMIZE_DATA_CONVERSION_DEFAULT) { | |
throw new TestErrorException("shouldOptimizeDataConversion status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().shouldUseExternalConnectionPooling() != XMLSessionConfigProject.EXTERNAL_CONNECTION_POOL_DEFAULT) { | |
throw new TestErrorException("shouldUseExternalConnectionPooling status did not match the default setting"); | |
} | |
if (employeeSession.getDatasourceLogin().shouldUseExternalTransactionController() != XMLSessionConfigProject.EXTERNAL_TRANSACTION_CONTROLLER_DEFAULT) { | |
throw new TestErrorException("shouldUseExternalTransactionController status did not match the default setting"); | |
} | |
String logLevel = null; | |
switch (employeeSession.getLogLevel()) { | |
case (SessionLog.OFF): | |
{ | |
logLevel = "off"; | |
break; | |
} | |
case (SessionLog.SEVERE): | |
{ | |
logLevel = "severe"; | |
break; | |
} | |
case (SessionLog.WARNING): | |
{ | |
logLevel = "warning"; | |
break; | |
} | |
case (SessionLog.INFO): | |
{ | |
logLevel = "info"; | |
break; | |
} | |
case (SessionLog.CONFIG): | |
logLevel = "config"; | |
{ | |
logLevel = "config"; | |
break; | |
} | |
case (SessionLog.FINE): | |
logLevel = "fine"; | |
{ | |
logLevel = "fine"; | |
break; | |
} | |
case (SessionLog.FINER): | |
logLevel = "finer"; | |
{ | |
logLevel = "finer"; | |
break; | |
} | |
case (SessionLog.FINEST): | |
logLevel = "finest"; | |
{ | |
logLevel = "finest"; | |
break; | |
} | |
case (SessionLog.ALL): | |
logLevel = "all"; | |
{ | |
logLevel = "all"; | |
break; | |
} | |
} | |
if (!logLevel.equals(XMLSessionConfigProject.LOG_LEVEL_DEFAULT)) { | |
throw new TestErrorException("The log level had the wrong default value"); | |
} | |
if (serverSession == null) { | |
throw new TestErrorException("Server session is null"); | |
} | |
if (serverSession.getCommandManager().shouldPropagateAsynchronously() != XMLSessionConfigProject.IS_ASYNCHRONOUS_DEFAULT) { | |
throw new TestErrorException("The initial context factory name had the wrong default value"); | |
} | |
if (!serverSession.getCommandManager().getChannel().equals(XMLSessionConfigProject.CHANNEL_DEFAULT)) { | |
throw new TestErrorException("The channel the wrong default value"); | |
} | |
if (!serverSession.getCommandManager().getTransportManager().getUserName().equals(XMLSessionConfigProject.USERNAME_DEFAULT)) { | |
throw new TestErrorException("The user name had the wrong default value"); | |
} | |
if (!serverSession.getCommandManager().getTransportManager().getPassword().equals(XMLSessionConfigProject.PASSWORD_DEFAULT)) { | |
throw new TestErrorException("The password had the wrong default value"); | |
} | |
if (!serverSession.getCommandManager().getTransportManager().getInitialContextFactoryName().equals(XMLSessionConfigProject.INITIAL_CONTEXT_FACTORY_NAME_DEFAULT)) { | |
throw new TestErrorException("The initial context factory name had the wrong default value"); | |
} | |
if (serverSession.getCommandManager().getTransportManager().DEFAULT_REMOVE_CONNECTION_ON_ERROR_MODE != XMLSessionConfigProject.REMOVE_CONNECTION_ON_ERROR_DEFAULT) { | |
throw new TestErrorException("The DEFAULT_REMOVE_CONNECTION_ON_ERROR_MODE had the wrong default value"); | |
} | |
if (!serverSession.getCommandManager().getDiscoveryManager().DEFAULT_MULTICAST_GROUP.equals(XMLSessionConfigProject.MULTICAST_GROUP_ADDRESS_DEFAULT)) { | |
throw new TestErrorException("The multicast group address had the wrong default value"); | |
} | |
if (serverSession.getCommandManager().getDiscoveryManager().DEFAULT_MULTICAST_PORT != XMLSessionConfigProject.MULTICAST_PORT_DEFAULT) { | |
throw new TestErrorException("The multicast port had the wrong default value"); | |
} | |
if (serverSession.getCommandManager().getDiscoveryManager().DEFAULT_ANNOUNCEMENT_DELAY != XMLSessionConfigProject.ANNOUNCEMENT_DELAY_DEFAULT) { | |
throw new TestErrorException("The announcement delay had the wrong default value"); | |
} | |
if (serverSession.getCommandManager().getDiscoveryManager().DEFAULT_PACKET_TIME_TO_LIVE != XMLSessionConfigProject.PACKET_TIME_TO_LIVE_DEFAULT) { | |
throw new TestErrorException("The packet time to live had the wrong default value"); | |
} | |
/* | |
if (serverSession.getServerPlatform().isRuntimeServicesEnabled() != XMLSessionConfigProject.ENABLE_RUNTIME_SERVICES_DEFAULT) | |
{ | |
throw new TestErrorException("isRuntimeServicesEnabled did not match the default setting"); | |
} | |
if (serverSession.getServerPlatform().isJTAEnabled() != XMLSessionConfigProject.ENABLE_JTA_DEFAULT) | |
{ | |
throw new TestErrorException("isJTAEnabled did not match the default setting"); | |
} | |
*/ | |
ConnectionPool readConnPool = serverSession.getConnectionPool("ReadConnectionPool"); | |
ConnectionPool writeConnPool = serverSession.getConnectionPool("WriteConnectionPool"); | |
ConnectionPool seqConnPool = serverSession.getConnectionPool("SequenceConnectionPool"); | |
/* | |
if((readConnPool == null) || (writeConnPool == null) || (seqConnPool == null)) | |
{ | |
throw new TestErrorException("Connection Pools were not created correctly"); | |
} | |
if((readConnPool.getMaxNumberOfConnections()!=XMLSessionConfigProject.READ_CONNECTION_POOL_MAX_DEFAULT) || | |
(readConnPool.getMinNumberOfConnections()!=XMLSessionConfigProject.READ_CONNECTION_POOL_MIN_DEFAULT) || | |
(writeConnPool.getMaxNumberOfConnections()!=XMLSessionConfigProject.CONNECTION_POOL_MAX_DEFAULT) || | |
(writeConnPool.getMinNumberOfConnections()!=XMLSessionConfigProject.CONNECTION_POOL_MIN_DEFAULT) || | |
(seqConnPool.getMaxNumberOfConnections()!=XMLSessionConfigProject.CONNECTION_POOL_MAX_DEFAULT) || | |
(seqConnPool.getMinNumberOfConnections()!=XMLSessionConfigProject.CONNECTION_POOL_MIN_DEFAULT)) | |
{ | |
throw new TestErrorException("Connection Pools had the wrong default sizes"); | |
} | |
*/ | |
} | |
} |