Skip to content

Commit

Permalink
Bug1562 - Fixing testcase
Browse files Browse the repository at this point in the history
  • Loading branch information
lananda committed Aug 20, 2022
1 parent 59c8eb9 commit a074410
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,30 +40,37 @@
public class PLSQLTypeReturnTestSuite extends DBWSTestSuite {
static final String EMPREC_TYPE = "TYPE EMP_RECORD_PACKAGE_EMPREC";

static final String CREATE_EMPTYPE_TABLE = "CREATE TABLE EMPTYPEX (" + "\nEMPNO NUMERIC(4) NOT NULL,"
static final String CREATE_EMPTYPE_TABLE = "CREATE TABLE EMPTYPEX1 (" + "\nEMPNO NUMERIC(4) NOT NULL,"
+ "\nENAME VARCHAR(25)," + "\nPRIMARY KEY (EMPNO)" + "\n)";
static final String[] POPULATE_EMPTYPE_TABLE = new String[] {
"INSERT INTO EMPTYPEX (EMPNO, ENAME) VALUES (69, 'Holly')",
"INSERT INTO EMPTYPEX (EMPNO, ENAME) VALUES (70, 'Brooke')",
"INSERT INTO EMPTYPEX (EMPNO, ENAME) VALUES (71, 'Patty')" };
static final String DROP_EMPTYPE_TABLE = "DROP TABLE EMPTYPEX";

static final String CREATE_EMP_RECORD_PACKAGE = "create or replace PACKAGE EMP_RECORD_PACKAGE IS \r\n"
+ "function get_emp_record (l_empno EMPTYPEX.EMPNO%TYPE) return EMPTYPEX.ENAME%TYPE;\r\n"
+ "END EMP_RECORD_PACKAGE;";
"INSERT INTO EMPTYPEX1 (EMPNO, ENAME) VALUES (69, 'Holly')",
"INSERT INTO EMPTYPEX1 (EMPNO, ENAME) VALUES (70, 'Brooke')",
"INSERT INTO EMPTYPEX1 (EMPNO, ENAME) VALUES (71, 'Patty')" };
static final String DROP_EMPTYPE_TABLE = "DROP TABLE EMPTYPEX1";

static final String CREATE_EMP_RECORD_PACKAGE = "CREATE PACKAGE EMP_RECORD_PACKAGE IS\r\n" +
"FUNCTION get_emp_record(l_empno in number) return EMPTYPEX1.ENAME%TYPE;\r\n" +
"END EMP_RECORD_PACKAGE;";
static final String DROP_EMP_RECORD_PACKAGE = "DROP PACKAGE EMP_RECORD_PACKAGE";

static final String DROP_EMP_RECORD_PACKAGE_BODY = "DROP PACKAGE BODY EMP_RECORD_PACKAGE";

static final String CREATE_EMP_RECORD_PACKAGE_BODY = "create or replace PACKAGE BODY EMP_RECORD_PACKAGE IS\r\n"
+ "function get_emp_record (l_empno EMPTYPEX.EMPNO%TYPE) return EMPTYPEX.ENAME%TYPE\r\n" + "is\r\n"
+ "ename_result EMPTYPEX.ENAME%TYPE;\r\n" + "BEGIN\r\n" + "SELECT ENAME into ename_result\r\n"
+ "FROM EMPTYPEX\r\n" + "WHERE \r\n" + "EMPNO = l_empno;\r\n" + "return ename_result;\r\n" + "END;\r\n"
+ "END EMP_RECORD_PACKAGE;";

static boolean ddlCreate = false;
static boolean ddlDrop = false;
static boolean ddlDebug = false;
static final String CREATE_EMP_RECORD_PACKAGE_BODY = "create or replace PACKAGE BODY EMP_RECORD_PACKAGE IS\r\n" +
"function get_emp_record(l_empno in number) return EMPTYPEX1.ENAME%TYPE\r\n" +
"is\r\n" +
"ename_result EMPTYPEX1.ENAME%TYPE;\r\n" +
"BEGIN\r\n" +
"SELECT ENAME into ename_result\r\n" +
"FROM EMPTYPEX1\r\n" +
"WHERE \r\n" +
"EMPNO = l_empno;\r\n" +
"return ename_result;\r\n" +
"END;\r\n" +
"END EMP_RECORD_PACKAGE;\r\n";

static boolean ddlCreate = true;
static boolean ddlDrop = true;
static boolean ddlDebug = true;

@BeforeClass
public static void setUp() throws WSDLException {
Expand All @@ -87,6 +94,8 @@ public static void setUp() throws WSDLException {
ddlDebug = true;
}
if (ddlCreate) {
runDdl(conn, CREATE_EMP_RECORD_PACKAGE, ddlDebug);
runDdl(conn, CREATE_EMP_RECORD_PACKAGE_BODY, ddlDebug);
runDdl(conn, CREATE_EMPTYPE_TABLE, ddlDebug);
try {
Statement stmt = conn.createStatement();
Expand All @@ -99,15 +108,13 @@ public static void setUp() throws WSDLException {
e.printStackTrace();
}
}
runDdl(conn, CREATE_EMP_RECORD_PACKAGE, ddlDebug);
runDdl(conn, CREATE_EMP_RECORD_PACKAGE_BODY, 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\">PLSQLRecord</property>" +
"<property name=\"logLevel\">off</property>" +
"<property name=\"logLevel\">on</property>" +
"<property name=\"username\">";
DBWS_BUILDER_XML_PASSWORD =
"</property><property name=\"password\">";
Expand Down Expand Up @@ -176,10 +183,13 @@ public static void tearDown() {
}

@Test
public void testRecordWithPercentTypeField() {
public void testRecWithPercentTypeField() {
Invocation invocation = new Invocation("TestRecWithPercentTypeField");
invocation.setParameter("EMPNO", 69);
invocation.setParameter("l_empno", 69);
Operation op = xrService.getOperation(invocation.getName());
System.out.println("XRSERVICE " + xrService);
System.out.println("invocation " + invocation.getName());
System.out.println("op " + invocation.getName());
Object result = op.invoke(xrService, invocation);
assertNotNull("result is null", result);
Document doc = xmlPlatform.createDocument();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
import static org.eclipse.persistence.tools.dbws.Util.isNullStream;
import static org.eclipse.persistence.tools.dbws.Util.requiresSimpleXMLFormat;
import static org.eclipse.persistence.tools.dbws.Util.sqlMatch;

import org.eclipse.persistence.tools.oracleddl.metadata.DatabaseTypeCompositeTestable;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;
Expand Down Expand Up @@ -1313,6 +1313,16 @@ protected org.eclipse.persistence.internal.helper.DatabaseType buildDatabaseType
plsqlCollection.setNestedType(buildDatabaseTypeFromMetadataType(((PLSQLCollectionType) dType).getEnclosedType(), catalog));
return plsqlCollection;
}

if(dType.isTYPEType()) {
OracleArrayType typeType = new OracleArrayType();
typeType.setTypeName(typeName);
typeType.setCompatibleType(compatibleType);
typeType.setJavaTypeName(getGeneratedWrapperClassName(javaTypeName, dbwsBuilder.getProjectName()));
typeType.setNestedType(buildDatabaseTypeFromMetadataType(((TYPEType) dType).getEnclosedType(), null));
System.out.println(">>RETURNING >>>>>>>>>>>>>> " + typeType);
return typeType;
}
// handle advanced Oracle types
if (dType.isVArrayType()) {
OracleArrayType varray = new OracleArrayType();
Expand Down

0 comments on commit a074410

Please sign in to comment.