Author: shawkins
Date: 2010-11-03 17:35:27 -0400 (Wed, 03 Nov 2010)
New Revision: 2703
Added:
branches/7.1.x/connectors/translator-salesforce/src/test/java/org/teiid/translator/salesforce/execution/TestQueryExecutionImpl.java
Modified:
branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java
Log:
TEIID-1302 additional fix to salesforce indexing
Modified:
branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java
===================================================================
---
branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java 2010-11-03
17:55:20 UTC (rev 2702)
+++
branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java 2010-11-03
21:35:27 UTC (rev 2703)
@@ -41,6 +41,7 @@
import org.teiid.language.TableReference;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
+import org.teiid.logging.MessageLevel;
import org.teiid.metadata.AbstractMetadataRecord;
import org.teiid.metadata.Column;
import org.teiid.metadata.RuntimeMetadata;
@@ -185,7 +186,7 @@
results = connection.queryMore(results.getQueryLocator(), context.getBatchSize());
}
resultBatch = new ArrayList<List<Object>>();
-
+ topResultIndex = 0;
for(SObject sObject : results.getRecords()) {
List<Object[]> result = getObjectData(sObject);
for(Iterator<Object[]> i = result.iterator(); i.hasNext(); ) {
@@ -291,6 +292,9 @@
}
private void logFields(String sObjectName, List<Object> fields) throws
TranslatorException {
+ if (!LogManager.isMessageToBeRecorded(LogConstants.CTX_CONNECTOR, MessageLevel.DETAIL))
{
+ return;
+ }
LogManager.logDetail(LogConstants.CTX_CONNECTOR, "SalesForce Object Name = "
+ sObjectName); //$NON-NLS-1$
LogManager.logDetail(LogConstants.CTX_CONNECTOR, "FieldCount = " +
fields.size()); //$NON-NLS-1$
for(int i = 0; i < fields.size(); i++) {
Added:
branches/7.1.x/connectors/translator-salesforce/src/test/java/org/teiid/translator/salesforce/execution/TestQueryExecutionImpl.java
===================================================================
---
branches/7.1.x/connectors/translator-salesforce/src/test/java/org/teiid/translator/salesforce/execution/TestQueryExecutionImpl.java
(rev 0)
+++
branches/7.1.x/connectors/translator-salesforce/src/test/java/org/teiid/translator/salesforce/execution/TestQueryExecutionImpl.java 2010-11-03
21:35:27 UTC (rev 2703)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.translator.salesforce.execution;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.teiid.cdk.api.TranslationUtility;
+import org.teiid.language.Select;
+import org.teiid.metadata.RuntimeMetadata;
+import org.teiid.translator.ExecutionContext;
+import org.teiid.translator.salesforce.SalesforceConnection;
+import org.teiid.translator.salesforce.execution.visitors.TestVisitors;
+import org.w3c.dom.Element;
+
+import com.sforce.soap.partner.QueryResult;
+import com.sforce.soap.partner.sobject.SObject;
+
+@SuppressWarnings("nls")
+public class TestQueryExecutionImpl {
+
+ private static TranslationUtility translationUtility = new
TranslationUtility(TestVisitors.exampleSalesforce());
+
+ @Test public void testBatching() throws Exception {
+ Select command = (Select)translationUtility.parseCommand("select Name from
Account"); //$NON-NLS-1$
+ SalesforceConnection sfc = Mockito.mock(SalesforceConnection.class);
+ QueryResult qr = new QueryResult();
+ SObject so = new SObject();
+ so.setType("Account");
+ Element elem = Mockito.mock(Element.class);
+ Mockito.stub(elem.getLocalName()).toReturn("AccountName");
+ so.getAny().add(elem);
+ qr.getRecords().add(so);
+ qr.setDone(false);
+ QueryResult finalQr = new QueryResult();
+ so.getAny().add(elem);
+ finalQr.getRecords().add(so);
+ finalQr.setDone(true);
+ Mockito.stub(sfc.query("SELECT Account.AccountName FROM Account", 0,
false)).toReturn(qr);
+ Mockito.stub(sfc.queryMore(null, 0)).toReturn(finalQr);
+ QueryExecutionImpl qei = new QueryExecutionImpl(command, sfc,
Mockito.mock(RuntimeMetadata.class), Mockito.mock(ExecutionContext.class));
+ qei.execute();
+ assertNotNull(qei.next());
+ assertNotNull(qei.next());
+ assertNull(qei.next());
+ }
+
+}
Property changes on:
branches/7.1.x/connectors/translator-salesforce/src/test/java/org/teiid/translator/salesforce/execution/TestQueryExecutionImpl.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Show replies by date