/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.facebook.presto.testing; import com.facebook.presto.Session; import com.facebook.presto.Session.SessionBuilder; import com.facebook.presto.connector.ConnectorId; import com.facebook.presto.connector.system.SystemTablesMetadata; import com.facebook.presto.execution.QueryIdGenerator; import com.facebook.presto.metadata.Catalog; import com.facebook.presto.metadata.SessionPropertyManager; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.security.Identity; import com.facebook.presto.spi.transaction.IsolationLevel; import com.google.common.collect.ImmutableSet; import java.util.Optional; import static com.facebook.presto.connector.ConnectorId.createInformationSchemaConnectorId; import static com.facebook.presto.connector.ConnectorId.createSystemTablesConnectorId; import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; import static java.util.Locale.ENGLISH; public final class TestingSession { public static final String TESTING_CATALOG = "testing_catalog"; private static final QueryIdGenerator queryIdGenerator = new QueryIdGenerator(); private TestingSession() {} public static SessionBuilder testSessionBuilder() { return testSessionBuilder(new SessionPropertyManager()); } public static SessionBuilder testSessionBuilder(SessionPropertyManager sessionPropertyManager) { return Session.builder(sessionPropertyManager) .setQueryId(queryIdGenerator.createNextQueryId()) .setIdentity(new Identity("user", Optional.empty())) .setSource("test") .setCatalog("catalog") .setSchema("schema") .setTimeZoneKey(UTC_KEY) .setLocale(ENGLISH) .setRemoteUserAddress("address") .setUserAgent("agent"); } public static Catalog createBogusTestingCatalog(String catalogName) { ConnectorId connectorId = new ConnectorId(catalogName); return new Catalog( catalogName, connectorId, createTestSessionConnector(), createInformationSchemaConnectorId(connectorId), createTestSessionConnector(), createSystemTablesConnectorId(connectorId), createTestSessionConnector()); } private static Connector createTestSessionConnector() { return new Connector() { @Override public ConnectorTransactionHandle beginTransaction(IsolationLevel isolationLevel, boolean readOnly) { return new ConnectorTransactionHandle() {}; } @Override public ConnectorMetadata getMetadata(ConnectorTransactionHandle transaction) { return new SystemTablesMetadata(new ConnectorId("test_session_connector"), ImmutableSet.of()); } @Override public ConnectorSplitManager getSplitManager() { throw new UnsupportedOperationException(); } }; } }