| /* |
| * 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 14, 2011 - 2.4 - Initial implementation |
| package dbws.testing.oxdescriptor; |
| |
| //javase imports |
| import java.math.BigDecimal; |
| 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.oxm.XMLDescriptor; |
| import org.eclipse.persistence.oxm.mappings.XMLCompositeCollectionMapping; |
| import org.eclipse.persistence.oxm.mappings.XMLCompositeDirectCollectionMapping; |
| import org.eclipse.persistence.oxm.mappings.XMLDirectMapping; |
| import org.eclipse.persistence.tools.dbws.BaseDBWSBuilderHelper; |
| |
| //test imports |
| import dbws.testing.DBWSTestSuite; |
| |
| /** |
| * Tests OXM Descriptor building. |
| * |
| */ |
| public class OXDescriptorTestSuite extends DBWSTestSuite { |
| public static final String TBL1_COMPATIBLETYPE = "OXPACKAGE_TBL1"; |
| public static final String TBL1_DATABASETYPE = "OXPACKAGE.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 = "OXPACKAGE_TBL2"; |
| public static final String TBL2_DATABASETYPE = "OXPACKAGE.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 = "OXPACKAGE_TBL3"; |
| public static final String TBL3_DATABASETYPE = "OXPACKAGE.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 = "OXPACKAGE_TBL4"; |
| public static final String TBL4_DATABASETYPE = "OXPACKAGE.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 = "OXPACKAGE_ARECORD"; |
| public static final String ARECORD_DATABASETYPE = "OXPACKAGE.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_OXPACKAGE = |
| "CREATE OR REPLACE PACKAGE OXPACKAGE 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 OXPACKAGE;"; |
| |
| static final String CREATE_PACKAGE_BODY_OXPACKAGE = |
| "\nCREATE OR REPLACE PACKAGE BODY OXPACKAGE 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 OXPACKAGE;"; |
| |
| static final String CREATE_TYPE_OXPACKAGE_TBL1 = |
| "CREATE OR REPLACE TYPE OXPACKAGE_TBL1 AS TABLE OF VARCHAR2(111)"; |
| static final String CREATE_TYPE_OXPACKAGE_TBL2 = |
| "CREATE OR REPLACE TYPE OXPACKAGE_TBL2 AS TABLE OF NUMBER"; |
| static final String CREATE_TYPE_OXPACKAGE_ARECORD = |
| "CREATE OR REPLACE TYPE OXPACKAGE_ARECORD AS OBJECT (" + |
| "\nT1 OXPACKAGE_TBL1," + |
| "\nT2 OXPACKAGE_TBL2," + |
| "\nT3 INTEGER" + |
| "\n)"; |
| static final String CREATE_TYPE_OXPACKAGE_TBL3 = |
| "CREATE OR REPLACE TYPE OXPACKAGE_TBL3 AS TABLE OF OXPACKAGE_ARECORD"; |
| static final String CREATE_TYPE_OXPACKAGE_TBL4 = |
| "CREATE OR REPLACE TYPE OXPACKAGE_TBL4 AS TABLE OF OXPACKAGE_TBL2"; |
| |
| static final String DROP_PACKAGE_OXPACKAGE = |
| "DROP PACKAGE OXPACKAGE"; |
| static final String DROP_TYPE_OXPACKAGE_TBL1= |
| "DROP TYPE OXPACKAGE_TBL1 FORCE"; |
| static final String DROP_TYPE_OXPACKAGE_TBL2= |
| "DROP TYPE OXPACKAGE_TBL2 FORCE"; |
| static final String DROP_TYPE_OXPACKAGE_ARECORD= |
| "DROP TYPE OXPACKAGE_ARECORD FORCE"; |
| static final String DROP_TYPE_OXPACKAGE_TBL3= |
| "DROP TYPE OXPACKAGE_TBL3 FORCE"; |
| static final String DROP_TYPE_OXPACKAGE_TBL4= |
| "DROP TYPE OXPACKAGE_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_OXPACKAGE_TBL1, ddlDebug); |
| runDdl(conn, CREATE_TYPE_OXPACKAGE_TBL2, ddlDebug); |
| runDdl(conn, CREATE_TYPE_OXPACKAGE_ARECORD, ddlDebug); |
| runDdl(conn, CREATE_TYPE_OXPACKAGE_TBL3, ddlDebug); |
| runDdl(conn, CREATE_TYPE_OXPACKAGE_TBL4, ddlDebug); |
| runDdl(conn, CREATE_PACKAGE_OXPACKAGE, ddlDebug); |
| runDdl(conn, CREATE_PACKAGE_BODY_OXPACKAGE, 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=\"OXPACKAGE\" " + |
| "procedurePattern=\"P%\" " + |
| "/>" + |
| "<plsql-procedure " + |
| "name=\"FTest\" " + |
| "catalogPattern=\"OXPACKAGE\" " + |
| "procedurePattern=\"F%\" " + |
| "/>" + |
| "</dbws-builder>"; |
| builder = null; |
| DBWSTestSuite.setUp("."); |
| } |
| |
| @AfterClass |
| public static void tearDown() { |
| if (ddlDrop) { |
| runDdl(conn, DROP_TYPE_OXPACKAGE_TBL1, ddlDebug); |
| runDdl(conn, DROP_TYPE_OXPACKAGE_TBL2, ddlDebug); |
| runDdl(conn, DROP_TYPE_OXPACKAGE_ARECORD, ddlDebug); |
| runDdl(conn, DROP_TYPE_OXPACKAGE_TBL3, ddlDebug); |
| runDdl(conn, DROP_TYPE_OXPACKAGE_TBL4, ddlDebug); |
| runDdl(conn, DROP_PACKAGE_OXPACKAGE, ddlDebug); |
| } |
| } |
| |
| // TEST METHODS |
| @Test |
| public void p1Test() { |
| XMLDescriptor tbl1Desc = null; |
| for (ClassDescriptor cDesc : builder.getOxProject().getOrderedDescriptors()) { |
| if (cDesc.getAlias().equals(TBL1_DESCRIPTOR_ALIAS)) { |
| tbl1Desc = (XMLDescriptor) cDesc; |
| break; |
| } |
| } |
| assertNotNull("No descriptor was found with alias [" + TBL1_DESCRIPTOR_ALIAS + "]", tbl1Desc); |
| tbl1Asserts(tbl1Desc); |
| } |
| |
| @Test |
| public void p2test() { |
| XMLDescriptor tbl2Desc = null; |
| for (ClassDescriptor cDesc : builder.getOxProject().getOrderedDescriptors()) { |
| if (cDesc.getAlias().equals(TBL2_DESCRIPTOR_ALIAS)) { |
| tbl2Desc = (XMLDescriptor) cDesc; |
| break; |
| } |
| } |
| assertNotNull("No descriptor was found with alias [" + TBL2_DESCRIPTOR_ALIAS + "]", tbl2Desc); |
| tbl2Asserts(tbl2Desc); |
| } |
| |
| @Test |
| public void p4test() { |
| XMLDescriptor tbl1Desc = null; |
| XMLDescriptor tbl2Desc = null; |
| XMLDescriptor aRecDesc = null; |
| for (ClassDescriptor cDesc : builder.getOxProject().getOrderedDescriptors()) { |
| String alias = cDesc.getAlias(); |
| if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) { |
| tbl1Desc = (XMLDescriptor) cDesc; |
| } else if (alias.equals(TBL2_DESCRIPTOR_ALIAS)) { |
| tbl2Desc = (XMLDescriptor) cDesc; |
| } else if (alias.equals(ARECORD_DESCRIPTOR_ALIAS)) { |
| aRecDesc = (XMLDescriptor) 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() { |
| XMLDescriptor tbl1Desc = null; |
| XMLDescriptor tbl2Desc = null; |
| XMLDescriptor aRecDesc = null; |
| for (ClassDescriptor cDesc : builder.getOxProject().getOrderedDescriptors()) { |
| String alias = cDesc.getAlias(); |
| if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) { |
| tbl1Desc = (XMLDescriptor) cDesc; |
| } else if (alias.equals(TBL2_DESCRIPTOR_ALIAS)) { |
| tbl2Desc = (XMLDescriptor) cDesc; |
| } else if (alias.equals(ARECORD_DESCRIPTOR_ALIAS)) { |
| aRecDesc = (XMLDescriptor) 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() { |
| XMLDescriptor tbl1Desc = null; |
| for (ClassDescriptor cDesc : builder.getOxProject().getOrderedDescriptors()) { |
| String alias = cDesc.getAlias(); |
| if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) { |
| tbl1Desc = (XMLDescriptor) cDesc; |
| break; |
| } |
| } |
| assertNotNull("No descriptor was found with alias [" + TBL1_DESCRIPTOR_ALIAS + "]", tbl1Desc); |
| tbl1Asserts(tbl1Desc); |
| } |
| |
| @Test |
| public void f2test() { |
| XMLDescriptor tbl1Desc = null; |
| XMLDescriptor tbl2Desc = null; |
| for (ClassDescriptor cDesc : builder.getOxProject().getOrderedDescriptors()) { |
| String alias = cDesc.getAlias(); |
| if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) { |
| tbl1Desc = (XMLDescriptor) cDesc; |
| } else if (alias.equals(TBL2_DESCRIPTOR_ALIAS)) { |
| tbl2Desc = (XMLDescriptor) 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() { |
| XMLDescriptor tbl1Desc = null; |
| XMLDescriptor tbl2Desc = null; |
| XMLDescriptor tbl3Desc = null; |
| XMLDescriptor aRecDesc = null; |
| for (ClassDescriptor cDesc : builder.getOxProject().getOrderedDescriptors()) { |
| String alias = cDesc.getAlias(); |
| if (alias.equals(TBL1_DESCRIPTOR_ALIAS)) { |
| tbl1Desc = (XMLDescriptor) cDesc; |
| } else if (alias.equals(TBL2_DESCRIPTOR_ALIAS)) { |
| tbl2Desc = (XMLDescriptor) cDesc; |
| } else if (alias.equals(TBL3_DESCRIPTOR_ALIAS)) { |
| tbl3Desc = (XMLDescriptor) cDesc; |
| } else if (alias.equals(ARECORD_DESCRIPTOR_ALIAS)) { |
| aRecDesc = (XMLDescriptor) 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(XMLDescriptor 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 type. Expected [(XML) AbstractCompositeDirectCollection mapping], but was [" + mapping.getClass().getName() + "]", mapping.isXMLMapping() && mapping.isAbstractCompositeDirectCollectionMapping()); |
| XMLCompositeDirectCollectionMapping xdcm = (XMLCompositeDirectCollectionMapping)mapping; |
| assertTrue("Incorrect mapping XPath. Expected [item/text()] but was [" + xdcm.getXPath() + "]", xdcm.getXPath().equals("item/text()")); |
| assertTrue("Wrong component class for mapping. Expected [" + String.class + "] but was [" + xdcm.getAttributeElementClass() + "]", xdcm.getAttributeElementClass().equals(String.class)); |
| } |
| |
| protected void tbl2Asserts(XMLDescriptor 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 type. Expected [(XML) AbstractCompositeDirectCollection mapping], but was [" + mapping.getClass().getName() + "]", mapping.isXMLMapping() && mapping.isAbstractCompositeDirectCollectionMapping()); |
| XMLCompositeDirectCollectionMapping xdcm = (XMLCompositeDirectCollectionMapping)mapping; |
| assertTrue("Incorrect mapping XPath. Expected [item/text()] but was [" + xdcm.getXPath() + "]", xdcm.getXPath().equals("item/text()")); |
| assertTrue("Wrong component class for mapping. Expected [" + BigDecimal.class + "] but was [" + xdcm.getAttributeElementClass() + "]", xdcm.getAttributeElementClass().equals(BigDecimal.class)); |
| } |
| |
| protected void tbl3Asserts(XMLDescriptor 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 type. Expected [(XML) AbstractCompositeCollection mapping] but was [" + mapping.getClass().getName() + "]", mapping.isXMLMapping() && mapping.isAbstractCompositeCollectionMapping()); |
| XMLCompositeCollectionMapping xccm = (XMLCompositeCollectionMapping)mapping; |
| assertTrue("Incorrect mapping XPath. Expected [item] but was [" + xccm.getXPath() + "]", xccm.getXPath().equals("item")); |
| assertTrue("Incorrect reference class name. Expected [" + ARECORD_DESCRIPTOR_JAVACLASSNAME + "] but was [" + xccm.getReferenceClassName() + "]", xccm.getReferenceClassName().equals(ARECORD_DESCRIPTOR_JAVACLASSNAME)); |
| } |
| protected void tbl4Asserts(XMLDescriptor 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 type. Expected [AbstractCompositeCollection mapping] but was [" + mapping.getClass().getName() + "]", mapping.isAbstractCompositeCollectionMapping()); |
| } |
| protected void aRecordAsserts(XMLDescriptor 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 [(XML) AbstractCompositeDirectCollection mapping] but was [" + dm1.getClass().getName() +"]", dm1.isXMLMapping() && dm1.isAbstractCompositeDirectCollectionMapping()); |
| XMLCompositeDirectCollectionMapping xcom1 = (XMLCompositeDirectCollectionMapping)dm1; |
| assertTrue("Incorrect mapping XPath. Expected [t1/item/text()] but was [" + xcom1.getXPath() + "]", xcom1.getXPath().equals("t1/item/text()")); |
| assertTrue("Incorrect attribute element class. Expected [" + String.class + "] but was [" + xcom1.getAttributeElementClass() + "]", xcom1.getAttributeElementClass().equals(String.class)); |
| 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 [(XML) AbstractCompositeDirectCollection mapping ]but was [" + dm2.getClass().getName() +"]", dm2.isXMLMapping() && dm2.isAbstractCompositeDirectCollectionMapping()); |
| XMLCompositeDirectCollectionMapping xcom2 = (XMLCompositeDirectCollectionMapping)dm2; |
| assertTrue("Incorrect mapping XPath. Expected [t2/item/text()] but was [" + xcom2.getXPath() + "]", xcom2.getXPath().equals("t2/item/text()")); |
| assertTrue("Incorrect attribute element class. Expected [" + BigDecimal.class + "] but was [" + xcom2.getAttributeElementClass() + "]", xcom2.getAttributeElementClass().equals(BigDecimal.class)); |
| 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 [(XML) DirectToField mapping] but was [" + dm3.getClass().getName() + "]", dm3.isXMLMapping() && dm3.isDirectToFieldMapping()); |
| assertTrue("Incorrect mapping XPath. Expected [t3/text()] but was [" + ((XMLDirectMapping)dm3).getXPath() + "]", ((XMLDirectMapping)dm3).getXPath().equals("t3/text()")); |
| } |
| } |