[teiid-commits] teiid SVN: r2658 - branches/7.1.x/engine/src/test/java/org/teiid/query/validator.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Mon Oct 18 15:03:21 EDT 2010


Author: shawkins
Date: 2010-10-18 15:03:20 -0400 (Mon, 18 Oct 2010)
New Revision: 2658

Modified:
   branches/7.1.x/engine/src/test/java/org/teiid/query/validator/TestValidator.java
Log:
updating test to ensure that the nested procedure gets validated

Modified: branches/7.1.x/engine/src/test/java/org/teiid/query/validator/TestValidator.java
===================================================================
--- branches/7.1.x/engine/src/test/java/org/teiid/query/validator/TestValidator.java	2010-10-18 15:23:08 UTC (rev 2657)
+++ branches/7.1.x/engine/src/test/java/org/teiid/query/validator/TestValidator.java	2010-10-18 19:03:20 UTC (rev 2658)
@@ -39,6 +39,7 @@
 import org.junit.Test;
 import org.teiid.api.exception.query.QueryMetadataException;
 import org.teiid.api.exception.query.QueryResolverException;
+import org.teiid.api.exception.query.QueryValidatorException;
 import org.teiid.client.metadata.ParameterInfo;
 import org.teiid.core.TeiidComponentException;
 import org.teiid.core.TeiidException;
@@ -56,7 +57,6 @@
 import org.teiid.query.sql.lang.Command;
 import org.teiid.query.sql.lang.ProcedureContainer;
 import org.teiid.query.sql.lang.SPParameter;
-import org.teiid.query.sql.proc.CreateUpdateProcedureCommand;
 import org.teiid.query.sql.symbol.ElementSymbol;
 import org.teiid.query.sql.symbol.GroupSymbol;
 import org.teiid.query.sql.visitor.SQLStringVisitor;
@@ -381,37 +381,39 @@
         QueryMetadataInterface metadata = FakeMetadataFactory.exampleUpdateProc(procedureType, procedure);
 
         try {
-        	
-	        Command command = helpResolve(userUpdateStr, metadata);
-        	//System.out.println(command.printCommandTree());
-            ValidatorReport report = Validator.validate(command, metadata); 
-            //System.out.println("\nReport = \n" + report);
-        
-            // Get invalid objects from report
-            Collection actualObjs = new ArrayList();
-            report.collectInvalidObjects(actualObjs);
-            if(actualObjs.size() > 0) {
-                fail("Expected no failures but got some: " + report.getFailureMessage());            	 //$NON-NLS-1$
-            }
+        	validateProcedure(userUpdateStr, metadata);
         } catch(TeiidException e) {
             throw new TeiidRuntimeException(e);
         }
 	}
+
+	private void validateProcedure(String userUpdateStr,
+			QueryMetadataInterface metadata) throws QueryResolverException,
+			QueryMetadataException, TeiidComponentException,
+			QueryValidatorException {
+		ProcedureContainer command = (ProcedureContainer)helpResolve(userUpdateStr, metadata);
+		
+		Command proc = QueryResolver.expandCommand(command, metadata, AnalysisRecord.createNonRecordingRecord());
+		
+		ValidatorReport report = Validator.validate(proc, metadata);
+		if(report.hasItems()) {
+		    throw new QueryValidatorException(report.getFailureMessage());
+		}
+
+		report = Validator.validate(command, metadata);
+		if(report.hasItems()) {
+		    throw new QueryValidatorException(report.getFailureMessage());
+		}
+	}
 	
 	private void helpFailProcedure(String procedure, String userUpdateStr, String procedureType) {
 
         QueryMetadataInterface metadata = FakeMetadataFactory.exampleUpdateProc(procedureType, procedure);
 
         try {
-        	
-	        ProcedureContainer command = (ProcedureContainer)helpResolve(userUpdateStr, metadata);
-        	CreateUpdateProcedureCommand cmd = (CreateUpdateProcedureCommand)QueryResolver.expandCommand(command, metadata, null);
-            ValidatorReport report = Validator.validate(cmd, metadata); 
-        
-            // Get invalid objects from report
-            Collection actualObjs = new ArrayList();
-            report.collectInvalidObjects(actualObjs);
-            assertTrue("Expected some failures but got none for procedure = " + procedure, !actualObjs.isEmpty()); //$NON-NLS-1$ 
+        	validateProcedure(userUpdateStr, metadata);
+        	fail("Expected failures for " + procedure);
+        } catch (QueryValidatorException e) {
         } catch(TeiidException e) {
 			throw new RuntimeException(e);
         }



More information about the teiid-commits mailing list