You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2010/07/12 19:44:59 UTC
svn commit: r963394 -
/incubator/oodt/trunk/catalog/src/test/org/apache/oodt/cas/catalog/system/impl/TestCatalogServiceLocal.java
Author: mattmann
Date: Mon Jul 12 17:44:59 2010
New Revision: 963394
URL: http://svn.apache.org/viewvc?rev=963394&view=rev
Log:
- progress towards OODT-15 One trunk for all OODT components with top level build
Modified:
incubator/oodt/trunk/catalog/src/test/org/apache/oodt/cas/catalog/system/impl/TestCatalogServiceLocal.java
Modified: incubator/oodt/trunk/catalog/src/test/org/apache/oodt/cas/catalog/system/impl/TestCatalogServiceLocal.java
URL: http://svn.apache.org/viewvc/incubator/oodt/trunk/catalog/src/test/org/apache/oodt/cas/catalog/system/impl/TestCatalogServiceLocal.java?rev=963394&r1=963393&r2=963394&view=diff
==============================================================================
--- incubator/oodt/trunk/catalog/src/test/org/apache/oodt/cas/catalog/system/impl/TestCatalogServiceLocal.java (original)
+++ incubator/oodt/trunk/catalog/src/test/org/apache/oodt/cas/catalog/system/impl/TestCatalogServiceLocal.java Mon Jul 12 17:44:59 2010
@@ -1,4 +1,21 @@
-package gov.nasa.jpl.oodt.cas.catalog.system.impl;
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.oodt.cas.catalog.system.impl;
import java.io.File;
import java.io.IOException;
@@ -33,140 +50,158 @@ import junit.framework.TestCase;
/**
*
- * @author bfoster
- *
+ *
+ * Test suite for the Local Catalog Service.
+ *
*/
public class TestCatalogServiceLocal extends TestCase {
- private CatalogServiceLocal cs;
-
- public TestCatalogServiceLocal() throws ClassNotFoundException, InstantiationException, IllegalAccessException, CatalogServiceException, IOException, SQLException {
- File tempFile = File.createTempFile("foo", "bar");
- tempFile.deleteOnExit();
- File tempDir = tempFile.getParentFile();
- String tmpDirPath = tempDir.getAbsolutePath();
-
- CatalogServiceLocalFactory factory = new CatalogServiceLocalFactory();
- factory.setCatalogRepositoryFactory(new MemoryBasedCatalogRepositoryFactory());
- factory.setIngestMapperFactory(this.getOracleIngestMapperFactory(tmpDirPath));
- factory.setOneCatalogFailsAllFail(true);
- factory.setSimplifyQueries(true);
- factory.setPluginStorageDir("/dev/null");
- factory.setRestrictIngestPermissions(false);
- factory.setRestrictQueryPermissions(false);
- factory.setTransactionIdFactory(UuidTransactionIdFactory.class.getCanonicalName());
- cs = factory.createCatalogService();
-
- CatalogFactory catalogFactory = new CatalogFactory();
- catalogFactory.setCatalogId("TestCatalog1");
- catalogFactory.setDictionaryFactories(null);
- catalogFactory.setIndexFactory(getInMemoryDSFactory(tmpDirPath + "/1/"));
- catalogFactory.setRestrictIngestPermissions(false);
- catalogFactory.setRestrictQueryPermissions(false);
- cs.addCatalog(catalogFactory.createCatalog());
- catalogFactory.setCatalogId("TestCatalog2");
- catalogFactory.setIndexFactory(getInMemoryDSFactory(tmpDirPath + "/2/"));
- cs.addCatalog(catalogFactory.createCatalog());
- }
-
- public void testDataSourceCatalogIngestQueryAndDelete() throws CatalogServiceException, ParseException, TokenMgrError {
- //test ingest
- Metadata m = new Metadata();
- m.addMetadata("testkey1", "testval1");
- TransactionReceipt tr = cs.ingest(m);
- Vector<TransactionReceipt> receipts = new Vector<TransactionReceipt>();
- receipts.add(tr);
- List<TransactionalMetadata> metadatas = cs.getMetadata(receipts);
- assertEquals(metadatas.size(), 1);
- Metadata ingestedMetadata = metadatas.get(0).getMetadata();
- assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
- assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 2);
-
- //test ingest update
- m.replaceMetadata(CatalogServiceLocal.CATALOG_SERVICE_TRANSACTION_ID_MET_KEY.toString(), tr.getTransactionId().toString());
- tr = cs.ingest(m);
- receipts = new Vector<TransactionReceipt>();
- receipts.add(tr);
- metadatas = cs.getMetadata(receipts);
- assertEquals(metadatas.size(), 1);
- ingestedMetadata = metadatas.get(0).getMetadata();
- assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
- assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 2);
-
- //test query using querypager
- QueryExpression qe = QueryParser.parseQueryExpression("testkey1 == 'testval1'");
- QueryPager pager = cs.query(qe);
- metadatas = cs.getNextPage(pager);
- assertEquals(metadatas.size(), 1);
- ingestedMetadata = metadatas.get(0).getMetadata();
- assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
- assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 2);
-
- //test query using std paging
- qe = QueryParser.parseQueryExpression("testkey1 == 'testval1'");
- Page page = cs.getPage(new PageInfo(20, PageInfo.FIRST_PAGE), qe);
- metadatas = cs.getMetadata(page);
- assertEquals(metadatas.size(), 1);
- ingestedMetadata = metadatas.get(0).getMetadata();
- assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
- assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 2);
-
- //test query using std paging with catalog restriction
- qe = QueryParser.parseQueryExpression("testkey1 == 'testval1'");
- page = cs.getPage(new PageInfo(20, PageInfo.FIRST_PAGE), qe, Collections.singleton("TestCatalog1"));
- metadatas = cs.getMetadata(page);
- assertEquals(metadatas.size(), 1);
- ingestedMetadata = metadatas.get(0).getMetadata();
- assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
- assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 1);
-
- //test delete
- m = new Metadata();
- m.addMetadata(CatalogServiceLocal.CATALOG_SERVICE_TRANSACTION_ID_MET_KEY.toString(), tr.getTransactionId().toString());
- cs.delete(m);
- assertEquals(cs.getMetadata(Collections.singletonList(tr)).size(), 0);
- }
-
- private OracleIngestMapperFactory getOracleIngestMapperFactory(String tmpDirPath) throws SQLException, IOException {
- new File(tmpDirPath).deleteOnExit();
-
- OracleIngestMapperFactory factory = new OracleIngestMapperFactory();
- String user = "sa";
- String pass = "";
- String driver = "org.hsqldb.jdbcDriver";
- String url = "jdbc:hsqldb:file:" + tmpDirPath + "/testMapperCat;shutdown=true";
- DataSource ds = DatabaseConnectionBuilder.buildDataSource(user, pass,
- driver, url);
- SqlScript coreSchemaScript = new SqlScript(new File("./src/testdata/test-mapper-cat.sql").getAbsolutePath(), ds);
- coreSchemaScript.loadScript();
- coreSchemaScript.execute();
-
- factory.setDriver(driver);
- factory.setJdbcUrl(url);
- factory.setPass(pass);
- factory.setUser(user);
- return factory;
- }
-
- private DataSourceIndexFactory getInMemoryDSFactory(String tmpDirPath) throws IOException, SQLException {
- new File(tmpDirPath).deleteOnExit();
-
- String user = "sa";
- String pass = "";
- String driver = "org.hsqldb.jdbcDriver";
- String url = "jdbc:hsqldb:file:" + tmpDirPath + "/testIndexCat;shutdown=true";
- DataSource ds = DatabaseConnectionBuilder.buildDataSource(user, pass,
- driver, url);
- SqlScript coreSchemaScript = new SqlScript(new File("./src/testdata/test-index-cat.sql").getAbsolutePath(), ds);
- coreSchemaScript.loadScript();
- coreSchemaScript.execute();
-
- DataSourceIndexFactory indexFactory = new DataSourceIndexFactory();
- indexFactory.setDriver(driver);
- indexFactory.setJdbcUrl(url);
- indexFactory.setPass(pass);
- indexFactory.setUser(user);
- return indexFactory;
- }
-
+ private CatalogServiceLocal cs;
+
+ public TestCatalogServiceLocal() throws ClassNotFoundException,
+ InstantiationException, IllegalAccessException, CatalogServiceException,
+ IOException, SQLException {
+ File tempFile = File.createTempFile("foo", "bar");
+ tempFile.deleteOnExit();
+ File tempDir = tempFile.getParentFile();
+ String tmpDirPath = tempDir.getAbsolutePath();
+
+ CatalogServiceLocalFactory factory = new CatalogServiceLocalFactory();
+ factory
+ .setCatalogRepositoryFactory(new MemoryBasedCatalogRepositoryFactory());
+ factory.setIngestMapperFactory(this
+ .getOracleIngestMapperFactory(tmpDirPath));
+ factory.setOneCatalogFailsAllFail(true);
+ factory.setSimplifyQueries(true);
+ factory.setPluginStorageDir("/dev/null");
+ factory.setRestrictIngestPermissions(false);
+ factory.setRestrictQueryPermissions(false);
+ factory.setTransactionIdFactory(UuidTransactionIdFactory.class
+ .getCanonicalName());
+ cs = factory.createCatalogService();
+
+ CatalogFactory catalogFactory = new CatalogFactory();
+ catalogFactory.setCatalogId("TestCatalog1");
+ catalogFactory.setDictionaryFactories(null);
+ catalogFactory.setIndexFactory(getInMemoryDSFactory(tmpDirPath + "/1/"));
+ catalogFactory.setRestrictIngestPermissions(false);
+ catalogFactory.setRestrictQueryPermissions(false);
+ cs.addCatalog(catalogFactory.createCatalog());
+ catalogFactory.setCatalogId("TestCatalog2");
+ catalogFactory.setIndexFactory(getInMemoryDSFactory(tmpDirPath + "/2/"));
+ cs.addCatalog(catalogFactory.createCatalog());
+ }
+
+ public void testDataSourceCatalogIngestQueryAndDelete()
+ throws CatalogServiceException, ParseException, TokenMgrError {
+ // test ingest
+ Metadata m = new Metadata();
+ m.addMetadata("testkey1", "testval1");
+ TransactionReceipt tr = cs.ingest(m);
+ Vector<TransactionReceipt> receipts = new Vector<TransactionReceipt>();
+ receipts.add(tr);
+ List<TransactionalMetadata> metadatas = cs.getMetadata(receipts);
+ assertEquals(metadatas.size(), 1);
+ Metadata ingestedMetadata = metadatas.get(0).getMetadata();
+ assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
+ assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 2);
+
+ // test ingest update
+ m.replaceMetadata(
+ CatalogServiceLocal.CATALOG_SERVICE_TRANSACTION_ID_MET_KEY.toString(),
+ tr.getTransactionId().toString());
+ tr = cs.ingest(m);
+ receipts = new Vector<TransactionReceipt>();
+ receipts.add(tr);
+ metadatas = cs.getMetadata(receipts);
+ assertEquals(metadatas.size(), 1);
+ ingestedMetadata = metadatas.get(0).getMetadata();
+ assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
+ assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 2);
+
+ // test query using querypager
+ QueryExpression qe = QueryParser
+ .parseQueryExpression("testkey1 == 'testval1'");
+ QueryPager pager = cs.query(qe);
+ metadatas = cs.getNextPage(pager);
+ assertEquals(metadatas.size(), 1);
+ ingestedMetadata = metadatas.get(0).getMetadata();
+ assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
+ assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 2);
+
+ // test query using std paging
+ qe = QueryParser.parseQueryExpression("testkey1 == 'testval1'");
+ Page page = cs.getPage(new PageInfo(20, PageInfo.FIRST_PAGE), qe);
+ metadatas = cs.getMetadata(page);
+ assertEquals(metadatas.size(), 1);
+ ingestedMetadata = metadatas.get(0).getMetadata();
+ assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
+ assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 2);
+
+ // test query using std paging with catalog restriction
+ qe = QueryParser.parseQueryExpression("testkey1 == 'testval1'");
+ page = cs.getPage(new PageInfo(20, PageInfo.FIRST_PAGE), qe, Collections
+ .singleton("TestCatalog1"));
+ metadatas = cs.getMetadata(page);
+ assertEquals(metadatas.size(), 1);
+ ingestedMetadata = metadatas.get(0).getMetadata();
+ assertEquals(ingestedMetadata.getMetadata("testkey1"), "testval1");
+ assertEquals(ingestedMetadata.getAllMetadata("testkey1").size(), 1);
+
+ // test delete
+ m = new Metadata();
+ m.addMetadata(CatalogServiceLocal.CATALOG_SERVICE_TRANSACTION_ID_MET_KEY
+ .toString(), tr.getTransactionId().toString());
+ cs.delete(m);
+ assertEquals(cs.getMetadata(Collections.singletonList(tr)).size(), 0);
+ }
+
+ private OracleIngestMapperFactory getOracleIngestMapperFactory(
+ String tmpDirPath) throws SQLException, IOException {
+ new File(tmpDirPath).deleteOnExit();
+
+ OracleIngestMapperFactory factory = new OracleIngestMapperFactory();
+ String user = "sa";
+ String pass = "";
+ String driver = "org.hsqldb.jdbcDriver";
+ String url = "jdbc:hsqldb:file:" + tmpDirPath
+ + "/testMapperCat;shutdown=true";
+ DataSource ds = DatabaseConnectionBuilder.buildDataSource(user, pass,
+ driver, url);
+ SqlScript coreSchemaScript = new SqlScript(new File(
+ "./src/testdata/test-mapper-cat.sql").getAbsolutePath(), ds);
+ coreSchemaScript.loadScript();
+ coreSchemaScript.execute();
+
+ factory.setDriver(driver);
+ factory.setJdbcUrl(url);
+ factory.setPass(pass);
+ factory.setUser(user);
+ return factory;
+ }
+
+ private DataSourceIndexFactory getInMemoryDSFactory(String tmpDirPath)
+ throws IOException, SQLException {
+ new File(tmpDirPath).deleteOnExit();
+
+ String user = "sa";
+ String pass = "";
+ String driver = "org.hsqldb.jdbcDriver";
+ String url = "jdbc:hsqldb:file:" + tmpDirPath
+ + "/testIndexCat;shutdown=true";
+ DataSource ds = DatabaseConnectionBuilder.buildDataSource(user, pass,
+ driver, url);
+ SqlScript coreSchemaScript = new SqlScript(new File(
+ "./src/testdata/test-index-cat.sql").getAbsolutePath(), ds);
+ coreSchemaScript.loadScript();
+ coreSchemaScript.execute();
+
+ DataSourceIndexFactory indexFactory = new DataSourceIndexFactory();
+ indexFactory.setDriver(driver);
+ indexFactory.setJdbcUrl(url);
+ indexFactory.setPass(pass);
+ indexFactory.setUser(user);
+ return indexFactory;
+ }
+
}