blob: 824b98e9c7132fd9240388f2c6553940543b9bc3 [file] [log] [blame]
/*
* Copyright (c) 2011, 2020 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 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:
// David McCann - November 16, 2011 - 2.4 - Initial implementation
package dbws.testing.ordescriptor;
//javase imports
import java.util.Vector;
//java eXtension imports
import javax.wsdl.WSDLException;
//JUnit4 imports
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.eclipse.persistence.internal.xr.XRDynamicClassLoader.COLLECTION_WRAPPER_SUFFIX;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
//EclipseLink imports
import org.eclipse.persistence.descriptors.ClassDescriptor;
import org.eclipse.persistence.mappings.DatabaseMapping;
import org.eclipse.persistence.mappings.structures.ArrayMapping;
import org.eclipse.persistence.mappings.structures.ObjectArrayMapping;
import org.eclipse.persistence.tools.dbws.BaseDBWSBuilderHelper;
//test imports
import dbws.testing.DBWSTestSuite;
/**
* Tests OXM Descriptor building.
*
*/
public class ORDescriptorTestSuite extends DBWSTestSuite {
public static final String TBL1_COMPATIBLETYPE = "ORPACKAGE_TBL1";
public static final String TBL1_DATABASETYPE = "ORPACKAGE.TBL1";
public static final String TBL1_DESCRIPTOR_ALIAS = TBL1_COMPATIBLETYPE.toLowerCase();
public static final String TBL1_DESCRIPTOR_JAVACLASSNAME = TBL1_DATABASETYPE.toLowerCase() + COLLECTION_WRAPPER_SUFFIX;
public static final String TBL2_COMPATIBLETYPE = "ORPACKAGE_TBL2";
public static final String TBL2_DATABASETYPE = "ORPACKAGE.TBL2";
public static final String TBL2_DESCRIPTOR_ALIAS = TBL2_COMPATIBLETYPE.toLowerCase();
public static final String TBL2_DESCRIPTOR_JAVACLASSNAME = TBL2_DATABASETYPE.toLowerCase() + COLLECTION_WRAPPER_SUFFIX;
public static final String TBL3_COMPATIBLETYPE = "ORPACKAGE_TBL3";
public static final String TBL3_DATABASETYPE = "ORPACKAGE.TBL3";
public static final String TBL3_DESCRIPTOR_ALIAS = TBL3_COMPATIBLETYPE.toLowerCase();
public static final String TBL3_DESCRIPTOR_JAVACLASSNAME = TBL3_DATABASETYPE.toLowerCase() + COLLECTION_WRAPPER_SUFFIX;
public static final String TBL4_COMPATIBLETYPE = "ORPACKAGE_TBL4";
public static final String TBL4_DATABASETYPE = "ORPACKAGE.TBL4";
public static final String TBL4_DESCRIPTOR_ALIAS = TBL4_COMPATIBLETYPE.toLowerCase();
public static final String TBL4_DESCRIPTOR_JAVACLASSNAME = TBL4_DATABASETYPE.toLowerCase() + COLLECTION_WRAPPER_SUFFIX;
public static final String ARECORD_COMPATIBLETYPE = "ORPACKAGE_ARECORD";
public static final String ARECORD_DATABASETYPE = "ORPACKAGE.ARECORD";
public static final String ARECORD_DESCRIPTOR_ALIAS = ARECORD_COMPATIBLETYPE.toLowerCase();
public static final String ARECORD_DESCRIPTOR_JAVACLASSNAME = ARECORD_DATABASETYPE.toLowerCase();
static final String CREATE_PACKAGE_ORPACKAGE =
"CREATE OR REPLACE PACKAGE ORPACKAGE AS" +
"\nTYPE TBL1 IS TABLE OF VARCHAR2(111) INDEX BY BINARY_INTEGER;" +
"\nTYPE TBL2 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;" +
"\nTYPE ARECORD IS RECORD (" +
"\nT1 TBL1," +
"\nT2 TBL2," +
"\nT3 BOOLEAN" +
"\n);" +
"\nTYPE TBL3 IS TABLE OF ARECORD INDEX BY PLS_INTEGER;" +
"\nTYPE TBL4 IS TABLE OF TBL2 INDEX BY PLS_INTEGER;" +
"\nPROCEDURE P1(SIMPLARRAY IN TBL1, FOO IN VARCHAR2);" +
"\nPROCEDURE P2(OLD IN TBL2, NEW IN TBL2);" +
"\nPROCEDURE P4(REC IN ARECORD);" +
"\nPROCEDURE P5(OLDREC IN ARECORD, NEWREC OUT ARECORD);" +
"\nPROCEDURE P7(SIMPLARRAY IN TBL1, FOO IN VARCHAR2);" +
"\nPROCEDURE P7(SIMPLARRAY IN TBL1, FOO IN VARCHAR2, BAR IN VARCHAR2);" +
"\nPROCEDURE P8(FOO IN VARCHAR2);" +
"\nPROCEDURE P8(FOO IN VARCHAR2, BAR IN VARCHAR2);" +
"\nFUNCTION F2(OLD IN TBL2, SIMPLARRAY IN TBL1) RETURN TBL2;" +
"\nFUNCTION F4(RECARRAY IN TBL3, OLDREC IN ARECORD) RETURN TBL3;" +
"\nEND ORPACKAGE;";
static final String CREATE_PACKAGE_BODY_ORPACKAGE =
"\nCREATE OR REPLACE PACKAGE BODY ORPACKAGE AS" +
"\nPROCEDURE P1(SIMPLARRAY IN TBL1, FOO IN VARCHAR2) AS" +
"\nBEGIN" +
"\nNULL;" +
"\nEND P1;" +
"\nPROCEDURE P2(OLD IN TBL2, NEW IN TBL2) AS" +
"\nBEGIN" +
"\nNULL;" +
"\nEND P2;" +
"\nPROCEDURE P4(REC IN ARECORD) AS" +
"\nBEGIN" +
"\nNULL;" +
"\nEND P4;" +
"\nPROCEDURE P5(OLDREC IN ARECORD, NEWREC OUT ARECORD) AS" +
"\nBEGIN" +
"\nNEWREC.T1 := OLDREC.T1;" +
"\nNEWREC.T2 := OLDREC.T2;" +
"\nNEWREC.T3 := OLDREC.T3;" +
"\nEND P5;" +
"\nPROCEDURE P7(SIMPLARRAY IN TBL1, FOO IN VARCHAR2) AS" +
"\nBEGIN" +
"\nNULL;" +
"\nEND P7;" +
"\nPROCEDURE P7(SIMPLARRAY IN TBL1, FOO IN VARCHAR2, BAR IN VARCHAR2) AS" +
"\nBEGIN" +
"\nNULL;" +
"\nEND P7;" +
"\nPROCEDURE P8(FOO IN VARCHAR2) AS" +
"\nBEGIN" +
"\nNULL;" +
"\nEND P8;" +
"\nPROCEDURE P8(FOO IN VARCHAR2, BAR IN VARCHAR2) AS" +
"\nBEGIN" +
"\nNULL;" +
"\nEND P8;" +
"\nFUNCTION F2(OLD IN TBL2, SIMPLARRAY IN TBL1) RETURN TBL2 IS" +
"\nBEGIN" +
"\nRETURN OLD;" +
"\nEND F2;" +
"\nFUNCTION F4(RECARRAY IN TBL3, OLDREC IN ARECORD) RETURN TBL3 IS" +
"\nBEGIN" +
"\nRETURN RECARRAY;" +
"\nEND F4;" +
"\nEND ORPACKAGE;";
static final String CREATE_TYPE_ORPACKAGE_TBL1 =
"CREATE OR REPLACE TYPE ORPACKAGE_TBL1 AS TABLE OF VARCHAR2(111)";
static final String CREATE_TYPE_ORPACKAGE_TBL2 =
"CREATE OR REPLACE TYPE ORPACKAGE_TBL2 AS TABLE OF NUMBER";
static final String CREATE_TYPE_ORPACKAGE_ARECORD =
"CREATE OR REPLACE TYPE ORPACKAGE_ARECORD AS OBJECT (" +
"\nT1 ORPACKAGE_TBL1," +
"\nT2 ORPACKAGE_TBL2," +
"\nT3 INTEGER" +
"\n)";
static final String CREATE_TYPE_ORPACKAGE_TBL3 =
"CREATE OR REPLACE TYPE ORPACKAGE_TBL3 AS TABLE OF ORPACKAGE_ARECORD";
static final String CREATE_TYPE_ORPACKAGE_TBL4 =
"CREATE OR REPLACE TYPE ORPACKAGE_TBL4 AS TABLE OF ORPACKAGE_TBL2";
static final String DROP_PACKAGE_ORPACKAGE =
"DROP PACKAGE ORPACKAGE";
static final String DROP_TYPE_ORPACKAGE_TBL1=
"DROP TYPE ORPACKAGE_TBL1 FORCE";
static final String DROP_TYPE_ORPACKAGE_TBL2=
"DROP TYPE ORPACKAGE_TBL2 FORCE";
static final String DROP_TYPE_ORPACKAGE_ARECORD=
"DROP TYPE ORPACKAGE_ARECORD FORCE";
static final String DROP_TYPE_ORPACKAGE_TBL3=
"DROP TYPE ORPACKAGE_TBL3 FORCE";
static final String DROP_TYPE_ORPACKAGE_TBL4=
"DROP TYPE ORPACKAGE_TBL4 FORCE";
static boolean ddlCreate = false;
static boolean ddlDrop = false;
static boolean ddlDebug = false;
@BeforeClass
public static void setUp() throws WSDLException {
if (conn == null) {
try {
conn = buildConnection();
}
catch (Exception e) {
e.printStackTrace();
}
}
String ddlCreateProp = System.getProperty(DATABASE_DDL_CREATE_KEY, DEFAULT_DATABASE_DDL_CREATE);
if ("true".equalsIgnoreCase(ddlCreateProp)) {
ddlCreate = true;
}
String ddlDropProp = System.getProperty(DATABASE_DDL_DROP_KEY, DEFAULT_DATABASE_DDL_DROP);
if ("true".equalsIgnoreCase(ddlDropProp)) {
ddlDrop = true;
}
String ddlDebugProp = System.getProperty(DATABASE_DDL_DEBUG_KEY, DEFAULT_DATABASE_DDL_DEBUG);
if ("true".equalsIgnoreCase(ddlDebugProp)) {
ddlDebug = true;
}
if (ddlCreate) {
runDdl(conn, CREATE_TYPE_ORPACKAGE_TBL1, ddlDebug);
runDdl(conn, CREATE_TYPE_ORPACKAGE_TBL2, ddlDebug);
runDdl(conn, CREATE_TYPE_ORPACKAGE_ARECORD, ddlDebug);
runDdl(conn, CREATE_TYPE_ORPACKAGE_TBL3, ddlDebug);
runDdl(conn, CREATE_TYPE_ORPACKAGE_TBL4, ddlDebug);
runDdl(conn, CREATE_PACKAGE_ORPACKAGE, ddlDebug);
runDdl(conn, CREATE_PACKAGE_BODY_ORPACKAGE, ddlDebug);
}
DBWS_BUILDER_XML_USERNAME =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<dbws-builder xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
"<properties>" +
"<property name=\"projectName\">ObjectTypeTests</property>" +
"<property name=\"logLevel\">off</property>" +
"<property name=\"username\">";
DBWS_BUILDER_XML_PASSWORD =
"</property><property name=\"password\">";
DBWS_BUILDER_XML_URL =
"</property><property name=\"url\">";
DBWS_BUILDER_XML_DRIVER =
"</property><property name=\"driver\">";
DBWS_BUILDER_XML_PLATFORM =
"</property><property name=\"platformClassname\">";
DBWS_BUILDER_XML_MAIN =
"</property>" +
"</properties>" +
"<plsql-procedure " +
"name=\"PTest\" " +
"catalogPattern=\"ORPACKAGE\" " +
"procedurePattern=\"P%\" " +
"/>" +
"<plsql-procedure " +
"name=\"FTest\" " +
"catalogPattern=\"ORPACKAGE\" " +
"procedurePattern=\"F%\" " +
"/>" +
"</dbws-builder>";
builder = null;
DBWSTestSuite.setUp(".");
}
@AfterClass
public static void tearDown() {
if (ddlDrop) {
runDdl(conn, DROP_TYPE_ORPACKAGE_TBL1, ddlDebug);
runDdl(conn, DROP_TYPE_ORPACKAGE_TBL2, ddlDebug);
runDdl(conn, DROP_TYPE_ORPACKAGE_ARECORD, ddlDebug);
runDdl(conn, DROP_TYPE_ORPACKAGE_TBL3, ddlDebug);
runDdl(conn, DROP_TYPE_ORPACKAGE_TBL4, ddlDebug);
runDdl(conn, DROP_PACKAGE_ORPACKAGE, ddlDebug);
}
}
// TEST METHODS
@Test
public void p1Test() {
ClassDescriptor tbl1Desc = null;
for (ClassDescriptor cDesc : builder.getOrProject().getOrderedDescriptors()) {
if (cDesc.getAlias().equals(TBL1_DESCRIPTOR_ALIAS)) {
tbl1Desc = cDesc;
break;
}
}
assertNotNull("No descriptor was found with alias [" + TBL1_DESCRIPTOR_ALIAS + "]", tbl1Desc);
tbl1Asserts(tbl1Desc);
}
@Test
public void p2test() {
ClassDescriptor tbl2Desc = null;
for (ClassDescriptor cDesc : builder.getOrProject().getOrderedDescriptors()) {
if (cDesc.getAlias().equals(TBL2_DESCRIPTOR_ALIAS)) {
tbl2Desc = cDesc;
break;
}
}
assertNotNull("No descriptor was found with alias [" + TBL2_DESCRIPTOR_ALIAS + "]", tbl2Desc);
tbl2Asserts(tbl2Desc);
}
@Test
public void p4test() {
ClassDescriptor tbl1Desc = null;
ClassDescriptor tbl2Desc = null;
ClassDescriptor aRecDesc = null;
for (ClassDescriptor cDesc : builder.getOrProject().getOrderedDescriptors()) {
String alias = cDesc.getAlias();
if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) {
tbl1Desc = cDesc;
} else if (alias.equals(TBL2_DESCRIPTOR_ALIAS)) {
tbl2Desc = cDesc;
} else if (alias.equals(ARECORD_DESCRIPTOR_ALIAS)) {
aRecDesc = cDesc;
}
}
assertNotNull("No descriptor was found with alias [" + TBL1_DESCRIPTOR_ALIAS + "]", tbl1Desc);
assertNotNull("No descriptor was found with alias [" + TBL2_DESCRIPTOR_ALIAS + "]", tbl2Desc);
assertNotNull("No descriptor was found with alias [" + ARECORD_DESCRIPTOR_ALIAS + "]", aRecDesc);
aRecordAsserts(aRecDesc);
tbl1Asserts(tbl1Desc);
tbl2Asserts(tbl2Desc);
}
@Test
public void p5test() {
ClassDescriptor tbl1Desc = null;
ClassDescriptor tbl2Desc = null;
ClassDescriptor aRecDesc = null;
for (ClassDescriptor cDesc : builder.getOrProject().getOrderedDescriptors()) {
String alias = cDesc.getAlias();
if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) {
tbl1Desc = cDesc;
} else if (alias.equals(TBL2_DESCRIPTOR_ALIAS)) {
tbl2Desc = cDesc;
} else if (alias.equals(ARECORD_DESCRIPTOR_ALIAS)) {
aRecDesc = cDesc;
}
}
assertNotNull("No descriptor was found with alias [" + TBL1_DESCRIPTOR_ALIAS + "]", tbl1Desc);
assertNotNull("No descriptor was found with alias [" + TBL2_DESCRIPTOR_ALIAS + "]", tbl2Desc);
assertNotNull("No descriptor was found with alias [" + ARECORD_DESCRIPTOR_ALIAS + "]", aRecDesc);
aRecordAsserts(aRecDesc);
tbl1Asserts(tbl1Desc);
tbl2Asserts(tbl2Desc);
}
@Test
public void p7test() {
ClassDescriptor tbl1Desc = null;
for (ClassDescriptor cDesc : builder.getOrProject().getOrderedDescriptors()) {
String alias = cDesc.getAlias();
if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) {
tbl1Desc = cDesc;
}
}
assertNotNull("No descriptor was found with alias [" + TBL1_DESCRIPTOR_ALIAS + "]", tbl1Desc);
tbl1Asserts(tbl1Desc);
}
@Test
public void f2test() {
ClassDescriptor tbl1Desc = null;
ClassDescriptor tbl2Desc = null;
for (ClassDescriptor cDesc : builder.getOrProject().getOrderedDescriptors()) {
String alias = cDesc.getAlias();
if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) {
tbl1Desc = cDesc;
} else if (alias.equals(TBL2_DESCRIPTOR_ALIAS)) {
tbl2Desc = cDesc;
}
}
assertNotNull("No descriptor was found with alias [" + TBL1_DESCRIPTOR_ALIAS + "]", tbl1Desc);
assertNotNull("No descriptor was found with alias [" + TBL2_DESCRIPTOR_ALIAS + "]", tbl2Desc);
tbl1Asserts(tbl1Desc);
tbl2Asserts(tbl2Desc);
}
@Test
public void f4Test() {
ClassDescriptor tbl1Desc = null;
ClassDescriptor tbl2Desc = null;
ClassDescriptor tbl3Desc = null;
ClassDescriptor aRecDesc = null;
for (ClassDescriptor cDesc : builder.getOrProject().getOrderedDescriptors()) {
String alias = cDesc.getAlias();
if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) {
tbl1Desc = cDesc;
} else if (alias.equals(TBL2_DESCRIPTOR_ALIAS)) {
tbl2Desc = cDesc;
} else if (alias.equals(TBL3_DESCRIPTOR_ALIAS)) {
tbl3Desc = cDesc;
} else if (alias.equals(ARECORD_DESCRIPTOR_ALIAS)) {
aRecDesc = cDesc;
}
}
assertNotNull("No descriptor was found with alias [" + TBL1_DESCRIPTOR_ALIAS + "]", tbl1Desc);
assertNotNull("No descriptor was found with alias [" + TBL2_DESCRIPTOR_ALIAS + "]", tbl2Desc);
assertNotNull("No descriptor was found with alias [" + TBL3_DESCRIPTOR_ALIAS + "]", tbl3Desc);
assertNotNull("No descriptor was found with alias [" + ARECORD_DESCRIPTOR_ALIAS + "]", aRecDesc);
tbl3Asserts(tbl3Desc);
aRecordAsserts(aRecDesc);
tbl1Asserts(tbl1Desc);
tbl2Asserts(tbl2Desc);
}
// ASSERT METHODS
protected void tbl1Asserts(ClassDescriptor tbl1Descriptor) {
assertTrue("Wrong Java class name. Expected [" + TBL1_DESCRIPTOR_JAVACLASSNAME + "] but was [" + tbl1Descriptor.getJavaClassName() + "]", tbl1Descriptor.getJavaClassName().equals(TBL1_DESCRIPTOR_JAVACLASSNAME));
Vector<DatabaseMapping> mappings = tbl1Descriptor.getMappings();
assertTrue("Wrong number of mappings. Expected [1] but was [" + mappings.size() + "]", mappings.size() == 1);
DatabaseMapping mapping = mappings.get(0);
assertTrue("Incorrect mapping attribute name. Expected [" + BaseDBWSBuilderHelper.ITEMS_MAPPING_ATTRIBUTE_NAME + "] but was [" + mapping.getAttributeName() + "]", mapping.getAttributeName().equals(BaseDBWSBuilderHelper.ITEMS_MAPPING_ATTRIBUTE_NAME));
assertTrue("Incorrect mapping field name. Expected [" + BaseDBWSBuilderHelper.ITEMS_MAPPING_FIELD_NAME + "] but was [" + mapping.getField().getName() + "]", mapping.getField().getName().equals(BaseDBWSBuilderHelper.ITEMS_MAPPING_FIELD_NAME));
assertTrue("Incorrect mapping type. Expected [AbstractCompositeDirectCollection mapping], but was [" + mapping.getClass().getName() + "]", mapping.isAbstractCompositeDirectCollectionMapping());
ArrayMapping arrayMapping = (ArrayMapping)mapping;
assertTrue("Wrong structure name for mapping. Expected [" + TBL1_COMPATIBLETYPE + "] but was [" + arrayMapping.getStructureName() + "]", arrayMapping.getStructureName().equals(TBL1_COMPATIBLETYPE));
}
protected void tbl2Asserts(ClassDescriptor tbl2Descriptor) {
assertTrue("Wrong Java class name. Expected [" + TBL2_DESCRIPTOR_JAVACLASSNAME + "] but was [" + tbl2Descriptor.getJavaClassName() + "]", tbl2Descriptor.getJavaClassName().equals(TBL2_DESCRIPTOR_JAVACLASSNAME));
Vector<DatabaseMapping> mappings = tbl2Descriptor.getMappings();
assertTrue("Wrong number of mappings. Expected [1] but was [" + mappings.size() + "]", mappings.size() == 1);
DatabaseMapping mapping = mappings.get(0);
assertTrue("Incorrect mapping attribute name. Expected [" + BaseDBWSBuilderHelper.ITEMS_MAPPING_ATTRIBUTE_NAME + "] but was [" + mapping.getAttributeName() + "]", mapping.getAttributeName().equals(BaseDBWSBuilderHelper.ITEMS_MAPPING_ATTRIBUTE_NAME));
assertTrue("Incorrect mapping field name. Expected [" + BaseDBWSBuilderHelper.ITEMS_MAPPING_FIELD_NAME + "] but was [" + mapping.getField().getName() + "]", mapping.getField().getName().equals(BaseDBWSBuilderHelper.ITEMS_MAPPING_FIELD_NAME));
assertTrue("Incorrect mapping type. Expected [AbstractCompositeDirectCollection mapping], but was [" + mapping.getClass().getName() + "]", mapping.isAbstractCompositeDirectCollectionMapping());
ArrayMapping arrayMapping = (ArrayMapping)mapping;
assertTrue("Wrong structure name for mapping. Expected [" + TBL2_COMPATIBLETYPE + "] but was [" + arrayMapping.getStructureName() + "]", arrayMapping.getStructureName().equals(TBL2_COMPATIBLETYPE));
}
protected void tbl3Asserts(ClassDescriptor tbl3Descriptor) {
assertTrue("Wrong Java class name. Expected [" + TBL3_DESCRIPTOR_JAVACLASSNAME + "] but was [" + tbl3Descriptor.getJavaClassName() + "]", tbl3Descriptor.getJavaClassName().equals(TBL3_DESCRIPTOR_JAVACLASSNAME));
Vector<DatabaseMapping> mappings = tbl3Descriptor.getMappings();
assertTrue("Wrong number of mappings. Expected [1] but was [" + mappings.size() + "]", mappings.size() == 1);
DatabaseMapping mapping = mappings.get(0);
assertTrue("Incorrect mapping attribute name. Expected [" + BaseDBWSBuilderHelper.ITEMS_MAPPING_ATTRIBUTE_NAME + "] but was [" + mapping.getAttributeName() + "]", mapping.getAttributeName().equals(BaseDBWSBuilderHelper.ITEMS_MAPPING_ATTRIBUTE_NAME));
assertTrue("Incorrect mapping field name. Expected [" + BaseDBWSBuilderHelper.ITEMS_MAPPING_FIELD_NAME + "] but was [" + mapping.getField().getName() + "]", mapping.getField().getName().equals(BaseDBWSBuilderHelper.ITEMS_MAPPING_FIELD_NAME));
assertTrue("Incorrect mapping type. Expected [AbstractCompositeCollection mapping] but was [" + mapping.getClass().getName() + "]", mapping.isAbstractCompositeCollectionMapping());
ObjectArrayMapping oArrayMapping = (ObjectArrayMapping)mapping;
assertTrue("Incorrect structure name. Expected [" + TBL3_COMPATIBLETYPE + "] but was [" + oArrayMapping.getStructureName() + "]", oArrayMapping.getStructureName().equals(TBL3_COMPATIBLETYPE));
assertTrue("Incorrect reference class name. Expected [" + ARECORD_DESCRIPTOR_JAVACLASSNAME + "] but was [" + oArrayMapping.getReferenceClassName() + "]", oArrayMapping.getReferenceClassName().equals(ARECORD_DESCRIPTOR_JAVACLASSNAME));
}
protected void tbl4Asserts(ClassDescriptor tbl4Descriptor) {
assertTrue("Wrong Java class name. Expected [" +TBL4_DESCRIPTOR_JAVACLASSNAME + "] but was [" + tbl4Descriptor.getJavaClassName() + "]", tbl4Descriptor.getJavaClassName().equals(TBL4_DESCRIPTOR_JAVACLASSNAME));
Vector<DatabaseMapping> mappings = tbl4Descriptor.getMappings();
assertTrue("Wrong number of mappings. Expected [1] but was [" + mappings.size() + "]", mappings.size() == 1);
DatabaseMapping mapping = mappings.get(0);
assertTrue("Incorrect mapping attribute name. Expected [" + BaseDBWSBuilderHelper.ITEMS_MAPPING_ATTRIBUTE_NAME + "] but was [" + mapping.getAttributeName() + "]", mapping.getAttributeName().equals(BaseDBWSBuilderHelper.ITEMS_MAPPING_ATTRIBUTE_NAME));
assertTrue("Incorrect mapping field name. Expected [" + BaseDBWSBuilderHelper.ITEMS_MAPPING_FIELD_NAME + "] but was [" + mapping.getField().getName() + "]", mapping.getField().getName().equals(BaseDBWSBuilderHelper.ITEMS_MAPPING_FIELD_NAME));
assertTrue("Incorrect mapping type. Expected [isAbstractCompositeDirectCollectionMapping mapping] but was [" + mapping.getClass().getName() + "]", mapping.isAbstractCompositeDirectCollectionMapping());
ArrayMapping arrayMapping2 = (ArrayMapping)mapping;
assertTrue("Incorrect structure name. Expected [" + TBL4_COMPATIBLETYPE + "] but was [" +arrayMapping2.getStructureName() + "]", arrayMapping2.getStructureName().equals(TBL4_COMPATIBLETYPE));
}
protected void aRecordAsserts(ClassDescriptor aRecordDescriptor) {
assertTrue("Wrong Java class name. Expected [" + ARECORD_DESCRIPTOR_JAVACLASSNAME + "] but was [" + aRecordDescriptor.getJavaClassName() + "]", aRecordDescriptor.getJavaClassName().equals(ARECORD_DESCRIPTOR_JAVACLASSNAME));
Vector<DatabaseMapping> mappings = aRecordDescriptor.getMappings();
assertTrue("Wrong number of mappings. Expected [3] but was [" + mappings.size() + "]", mappings.size() == 3);
DatabaseMapping dm1 = mappings.get(0);
assertTrue("Incorrect mapping attribute name. Expected [t1] but was [" + dm1.getAttributeName() + "]", dm1.getAttributeName().equals("t1"));
assertTrue("Incorrect mapping type. Expected [AbstractCompositeDirectCollection mapping] but was [" + dm1.getClass().getName() +"]", dm1.isAbstractCompositeDirectCollectionMapping());
ArrayMapping arrayMapping1 = (ArrayMapping)dm1;
assertTrue("Incorrect attribute element class. Expected [" + TBL1_COMPATIBLETYPE + "] but was [" + arrayMapping1.getStructureName() + "]", arrayMapping1.getStructureName().equals(TBL1_COMPATIBLETYPE));
DatabaseMapping dm2 = mappings.get(1);
assertTrue("Incorrect mapping attribute name. Expected [t2] but was [" + dm2.getAttributeName() + "]", dm2.getAttributeName().equals("t2"));
assertTrue("Incorrect mapping type. Expected [AbstractCompositeDirectCollection mapping ]but was [" + dm2.getClass().getName() +"]", dm2.isAbstractCompositeDirectCollectionMapping());
ArrayMapping arrayMapping2 = (ArrayMapping)dm2;
assertTrue("Incorrect structure name. Expected [" + TBL2_COMPATIBLETYPE + "] but was [" + arrayMapping2.getStructureName() + "]", arrayMapping2.getStructureName().equals(TBL2_COMPATIBLETYPE));
DatabaseMapping dm3 = mappings.get(2);
assertTrue("Incorrect mapping attribute name. Expected [t3] but was [" + dm3.getAttributeName() + "]", dm3.getAttributeName().equals("t3"));
assertTrue("Incorrect mapping type. Expected [DirectToField mapping] but was [" + dm3.getClass().getName() + "]", dm3.isDirectToFieldMapping());
}
}