Skip to content

Commit a074410

Browse files
committed
Bug1562 - Fixing testcase
1 parent 59c8eb9 commit a074410

File tree

2 files changed

+44
-24
lines changed

2 files changed

+44
-24
lines changed

utils/eclipselink.dbws.builder.test.oracle/src/it/java/dbws/testing/plsqlrecord/PLSQLTypeReturnTestSuite.java

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -40,30 +40,37 @@
4040
public class PLSQLTypeReturnTestSuite extends DBWSTestSuite {
4141
static final String EMPREC_TYPE = "TYPE EMP_RECORD_PACKAGE_EMPREC";
4242

43-
static final String CREATE_EMPTYPE_TABLE = "CREATE TABLE EMPTYPEX (" + "\nEMPNO NUMERIC(4) NOT NULL,"
43+
static final String CREATE_EMPTYPE_TABLE = "CREATE TABLE EMPTYPEX1 (" + "\nEMPNO NUMERIC(4) NOT NULL,"
4444
+ "\nENAME VARCHAR(25)," + "\nPRIMARY KEY (EMPNO)" + "\n)";
4545
static final String[] POPULATE_EMPTYPE_TABLE = new String[] {
46-
"INSERT INTO EMPTYPEX (EMPNO, ENAME) VALUES (69, 'Holly')",
47-
"INSERT INTO EMPTYPEX (EMPNO, ENAME) VALUES (70, 'Brooke')",
48-
"INSERT INTO EMPTYPEX (EMPNO, ENAME) VALUES (71, 'Patty')" };
49-
static final String DROP_EMPTYPE_TABLE = "DROP TABLE EMPTYPEX";
50-
51-
static final String CREATE_EMP_RECORD_PACKAGE = "create or replace PACKAGE EMP_RECORD_PACKAGE IS \r\n"
52-
+ "function get_emp_record (l_empno EMPTYPEX.EMPNO%TYPE) return EMPTYPEX.ENAME%TYPE;\r\n"
53-
+ "END EMP_RECORD_PACKAGE;";
46+
"INSERT INTO EMPTYPEX1 (EMPNO, ENAME) VALUES (69, 'Holly')",
47+
"INSERT INTO EMPTYPEX1 (EMPNO, ENAME) VALUES (70, 'Brooke')",
48+
"INSERT INTO EMPTYPEX1 (EMPNO, ENAME) VALUES (71, 'Patty')" };
49+
static final String DROP_EMPTYPE_TABLE = "DROP TABLE EMPTYPEX1";
50+
51+
static final String CREATE_EMP_RECORD_PACKAGE = "CREATE PACKAGE EMP_RECORD_PACKAGE IS\r\n" +
52+
"FUNCTION get_emp_record(l_empno in number) return EMPTYPEX1.ENAME%TYPE;\r\n" +
53+
"END EMP_RECORD_PACKAGE;";
5454
static final String DROP_EMP_RECORD_PACKAGE = "DROP PACKAGE EMP_RECORD_PACKAGE";
5555

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

58-
static final String CREATE_EMP_RECORD_PACKAGE_BODY = "create or replace PACKAGE BODY EMP_RECORD_PACKAGE IS\r\n"
59-
+ "function get_emp_record (l_empno EMPTYPEX.EMPNO%TYPE) return EMPTYPEX.ENAME%TYPE\r\n" + "is\r\n"
60-
+ "ename_result EMPTYPEX.ENAME%TYPE;\r\n" + "BEGIN\r\n" + "SELECT ENAME into ename_result\r\n"
61-
+ "FROM EMPTYPEX\r\n" + "WHERE \r\n" + "EMPNO = l_empno;\r\n" + "return ename_result;\r\n" + "END;\r\n"
62-
+ "END EMP_RECORD_PACKAGE;";
63-
64-
static boolean ddlCreate = false;
65-
static boolean ddlDrop = false;
66-
static boolean ddlDebug = false;
58+
static final String CREATE_EMP_RECORD_PACKAGE_BODY = "create or replace PACKAGE BODY EMP_RECORD_PACKAGE IS\r\n" +
59+
"function get_emp_record(l_empno in number) return EMPTYPEX1.ENAME%TYPE\r\n" +
60+
"is\r\n" +
61+
"ename_result EMPTYPEX1.ENAME%TYPE;\r\n" +
62+
"BEGIN\r\n" +
63+
"SELECT ENAME into ename_result\r\n" +
64+
"FROM EMPTYPEX1\r\n" +
65+
"WHERE \r\n" +
66+
"EMPNO = l_empno;\r\n" +
67+
"return ename_result;\r\n" +
68+
"END;\r\n" +
69+
"END EMP_RECORD_PACKAGE;\r\n";
70+
71+
static boolean ddlCreate = true;
72+
static boolean ddlDrop = true;
73+
static boolean ddlDebug = true;
6774

6875
@BeforeClass
6976
public static void setUp() throws WSDLException {
@@ -87,6 +94,8 @@ public static void setUp() throws WSDLException {
8794
ddlDebug = true;
8895
}
8996
if (ddlCreate) {
97+
runDdl(conn, CREATE_EMP_RECORD_PACKAGE, ddlDebug);
98+
runDdl(conn, CREATE_EMP_RECORD_PACKAGE_BODY, ddlDebug);
9099
runDdl(conn, CREATE_EMPTYPE_TABLE, ddlDebug);
91100
try {
92101
Statement stmt = conn.createStatement();
@@ -99,15 +108,13 @@ public static void setUp() throws WSDLException {
99108
e.printStackTrace();
100109
}
101110
}
102-
runDdl(conn, CREATE_EMP_RECORD_PACKAGE, ddlDebug);
103-
runDdl(conn, CREATE_EMP_RECORD_PACKAGE_BODY, ddlDebug);
104111
}
105112
DBWS_BUILDER_XML_USERNAME =
106113
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
107114
"<dbws-builder xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
108115
"<properties>" +
109116
"<property name=\"projectName\">PLSQLRecord</property>" +
110-
"<property name=\"logLevel\">off</property>" +
117+
"<property name=\"logLevel\">on</property>" +
111118
"<property name=\"username\">";
112119
DBWS_BUILDER_XML_PASSWORD =
113120
"</property><property name=\"password\">";
@@ -176,10 +183,13 @@ public static void tearDown() {
176183
}
177184

178185
@Test
179-
public void testRecordWithPercentTypeField() {
186+
public void testRecWithPercentTypeField() {
180187
Invocation invocation = new Invocation("TestRecWithPercentTypeField");
181-
invocation.setParameter("EMPNO", 69);
188+
invocation.setParameter("l_empno", 69);
182189
Operation op = xrService.getOperation(invocation.getName());
190+
System.out.println("XRSERVICE " + xrService);
191+
System.out.println("invocation " + invocation.getName());
192+
System.out.println("op " + invocation.getName());
183193
Object result = op.invoke(xrService, invocation);
184194
assertNotNull("result is null", result);
185195
Document doc = xmlPlatform.createDocument();

utils/org.eclipse.persistence.dbws.builder/src/main/java/org/eclipse/persistence/tools/dbws/BaseDBWSBuilderHelper.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
import static org.eclipse.persistence.tools.dbws.Util.isNullStream;
7777
import static org.eclipse.persistence.tools.dbws.Util.requiresSimpleXMLFormat;
7878
import static org.eclipse.persistence.tools.dbws.Util.sqlMatch;
79-
79+
import org.eclipse.persistence.tools.oracleddl.metadata.DatabaseTypeCompositeTestable;
8080
import java.io.BufferedOutputStream;
8181
import java.io.IOException;
8282
import java.io.OutputStream;
@@ -1313,6 +1313,16 @@ protected org.eclipse.persistence.internal.helper.DatabaseType buildDatabaseType
13131313
plsqlCollection.setNestedType(buildDatabaseTypeFromMetadataType(((PLSQLCollectionType) dType).getEnclosedType(), catalog));
13141314
return plsqlCollection;
13151315
}
1316+
1317+
if(dType.isTYPEType()) {
1318+
OracleArrayType typeType = new OracleArrayType();
1319+
typeType.setTypeName(typeName);
1320+
typeType.setCompatibleType(compatibleType);
1321+
typeType.setJavaTypeName(getGeneratedWrapperClassName(javaTypeName, dbwsBuilder.getProjectName()));
1322+
typeType.setNestedType(buildDatabaseTypeFromMetadataType(((TYPEType) dType).getEnclosedType(), null));
1323+
System.out.println(">>RETURNING >>>>>>>>>>>>>> " + typeType);
1324+
return typeType;
1325+
}
13161326
// handle advanced Oracle types
13171327
if (dType.isVArrayType()) {
13181328
OracleArrayType varray = new OracleArrayType();

0 commit comments

Comments
 (0)