Package com.google.enterprise.connector.util.database

Source Code of com.google.enterprise.connector.util.database.LocalDatabaseTest$LocalDatabaseConnectorType

// Copyright 2010 Google Inc.
//
// 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.google.enterprise.connector.util.database;

import com.google.enterprise.connector.instantiator.TypeMap;
import com.google.enterprise.connector.manager.Context;
import com.google.enterprise.connector.spi.ConfigureResponse;
import com.google.enterprise.connector.spi.ConnectorFactory;
import com.google.enterprise.connector.spi.ConnectorType;
import com.google.enterprise.connector.spi.LocalDatabase;
import com.google.enterprise.connector.spi.SpiConstants.DatabaseType;

import junit.framework.TestCase;

import org.h2.jdbcx.JdbcDataSource;

import java.util.Locale;
import java.util.Map;

import javax.sql.DataSource;

public class LocalDatabaseTest extends TestCase {

  private DataSource dataSource;
  private JdbcDatabase database;
  private String connectorTypeName;
  private ConnectorType connectorType;
  private LocalDatabase localDatabase;

  private static final String APPLICATION_CONTEXT =
      "testdata/contextTests/TestContext.xml";

  @Override
  protected void setUp() throws Exception {
    // Setup the ConnectorType.
    connectorTypeName = "LocalDatabaseConnectorType";
    connectorType = new LocalDatabaseConnectorType();

    // Setup in-memory H2 JDBC DataSource;
    JdbcDataSource ds = new JdbcDataSource();
    ds.setURL("jdbc:h2:mem:testdb");
    ds.setUser("sa");
    ds.setPassword("sa");
    dataSource = ds;
    database = new JdbcDatabase(dataSource);

    // Setup LocalDatabase
    localDatabase =
        new LocalDatabaseImpl(database, connectorTypeName, connectorType);
  }

  @Override
  protected void tearDown() throws Exception {
    try {
      database.shutdown();
    } finally {
      super.tearDown();
    }
  }

  private TypeMap getTypeMap() {
    Context context = Context.getInstance();
    return (TypeMap) context.getRequiredBean("TypeMap", TypeMap.class);
  }

  // Test getDataSource.
  public void testGetDataSource() throws Exception {
    assertEquals(dataSource, localDatabase.getDataSource());
  }

  // Test getDatabaseType.
  public void testGetDatabaseType() throws Exception {
    assertEquals(DatabaseType.H2, localDatabase.getDatabaseType());
  }

  // Test getDescription
  public void testGetDescription() throws Exception {
    assertTrue(localDatabase.getDescription()
               .startsWith(DatabaseType.H2.toString()));
  }

  // Test auto-generation of ResourceBundle baseName.
  public void testResourceBundleName() throws Exception {
    // Test ResourceBundle baseName is formed from connector type name.
    LocalDatabaseImpl localDb = (LocalDatabaseImpl) localDatabase;
    assertEquals("config." + connectorTypeName + "_sql",
                 localDb.resourceBundleBaseName);

    // Test that underscores in connector type name are preserved when
    // creating ResourceBundle baseName.
    localDb = new LocalDatabaseImpl(database, "Name_With_Underscores",
                                    connectorType);
    assertEquals("config.Name_With_Underscores_sql",
                 localDb.resourceBundleBaseName);

    // Test that periods in connector type name are converted to underscores
    // when creating ResourceBundle baseName.
    localDb = new LocalDatabaseImpl(database, "Name.With.Periods",
                                    connectorType);
    assertEquals("config.Name_With_Periods_sql",
                 localDb.resourceBundleBaseName);
  }

  // Fake ConnectorType.
  private class LocalDatabaseConnectorType implements ConnectorType {
    @Override
    public ConfigureResponse getConfigForm(Locale locale) {
      throw new UnsupportedOperationException("Fake ConnectorType");
    }

    @Override
    public ConfigureResponse getPopulatedConfigForm(
        Map<String, String> configMap, Locale locale) {
      throw new UnsupportedOperationException("Fake ConnectorType");
    }

    @Override
    public ConfigureResponse validateConfig(Map<String, String> configData,
        Locale locale, ConnectorFactory connectorFactory) {
      throw new UnsupportedOperationException("Fake ConnectorType");
    }
  }
}
TOP

Related Classes of com.google.enterprise.connector.util.database.LocalDatabaseTest$LocalDatabaseConnectorType

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.