[teiid-commits] teiid SVN: r3883 - in branches/7.7.x/engine/src: test/java/org/teiid/dqp/internal/process/multisource and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Feb 14 14:50:36 EST 2012


Author: shawkins
Date: 2012-02-14 14:50:36 -0500 (Tue, 14 Feb 2012)
New Revision: 3883

Modified:
   branches/7.7.x/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java
   branches/7.7.x/engine/src/test/java/org/teiid/dqp/internal/process/multisource/TestMultiSourceMetadataWrapper.java
Log:
TEIID-1939 fix for error with multisource metadata

Modified: branches/7.7.x/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java
===================================================================
--- branches/7.7.x/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java	2012-02-14 19:24:21 UTC (rev 3882)
+++ branches/7.7.x/engine/src/main/java/org/teiid/query/metadata/TempMetadataAdapter.java	2012-02-14 19:50:36 UTC (rev 3883)
@@ -766,5 +766,23 @@
     	}
     	return this.actualMetadata.getPrimaryKey(metadataID);
     }
+    
+    @Override
+    public boolean isMultiSource(Object modelId) throws QueryMetadataException,
+    		TeiidComponentException {
+    	if (modelId instanceof TempMetadataID) {
+    		return false;
+    	}
+    	return this.actualMetadata.isMultiSource(modelId);
+    }
+    
+    @Override
+    public boolean isMultiSourceElement(Object elementId)
+    		throws QueryMetadataException, TeiidComponentException {
+    	if (elementId instanceof TempMetadataID) {
+    		return false;
+    	} 
+    	return this.actualMetadata.isMultiSourceElement(elementId);
+    }
 
 }

Modified: branches/7.7.x/engine/src/test/java/org/teiid/dqp/internal/process/multisource/TestMultiSourceMetadataWrapper.java
===================================================================
--- branches/7.7.x/engine/src/test/java/org/teiid/dqp/internal/process/multisource/TestMultiSourceMetadataWrapper.java	2012-02-14 19:24:21 UTC (rev 3882)
+++ branches/7.7.x/engine/src/test/java/org/teiid/dqp/internal/process/multisource/TestMultiSourceMetadataWrapper.java	2012-02-14 19:50:36 UTC (rev 3883)
@@ -22,24 +22,26 @@
 
 package org.teiid.dqp.internal.process.multisource;
 
+import static org.junit.Assert.*;
+
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Properties;
 
-import junit.framework.TestCase;
-
+import org.junit.Test;
 import org.teiid.core.types.DataTypeManager;
+import org.teiid.query.metadata.TempMetadataAdapter;
+import org.teiid.query.metadata.TempMetadataID;
+import org.teiid.query.metadata.TempMetadataStore;
+import org.teiid.query.sql.symbol.ElementSymbol;
 import org.teiid.query.sql.symbol.SingleElementSymbol;
 import org.teiid.query.unittest.RealMetadataFactory;
 
+ at SuppressWarnings("nls")
+public class TestMultiSourceMetadataWrapper {
 
-
-/** 
- * @since 4.2
- */
-public class TestMultiSourceMetadataWrapper extends TestCase {
-
-    public void testMultiSourcePseudoElement() throws Exception {
+    @Test public void testMultiSourcePseudoElement() throws Exception {
         HashSet<String> multiSourceModels = new HashSet<String>();
         multiSourceModels.add("BQT1");
         MultiSourceMetadataWrapper wrapper = new MultiSourceMetadataWrapper(RealMetadataFactory.exampleBQTCached(), multiSourceModels);
@@ -71,5 +73,14 @@
         assertEquals(0, wrapper.getRadix(instanceElementID));
         assertEquals(MultiSourceElement.MULTI_SOURCE_ELEMENT_NAME, SingleElementSymbol.getShortName(fullName));
         assertEquals(fullName, wrapper.getFullName(groupID) + SingleElementSymbol.SEPARATOR + MultiSourceElement.MULTI_SOURCE_ELEMENT_NAME);
+        
+        
+        TempMetadataAdapter tma = new TempMetadataAdapter(wrapper, new TempMetadataStore());
+        ElementSymbol elementSymbol = new ElementSymbol("y");
+        elementSymbol.setType(DataTypeManager.DefaultDataClasses.STRING);
+		TempMetadataID id = tma.getMetadataStore().addTempGroup("x", Arrays.asList(elementSymbol));
+        
+        assertFalse(tma.isMultiSourceElement(id.getElements().get(0)));
+        assertTrue(tma.isMultiSourceElement(instanceElementID));
     }
 }



More information about the teiid-commits mailing list