Java tutorial
/*! ****************************************************************************** * * Pentaho Data Integration * * Copyright (C) 2002-2015 by Pentaho : http://www.pentaho.com * ******************************************************************************* * * 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 org.pentaho.di.repository.filerep; import org.apache.commons.vfs2.FileObject; import org.junit.Test; import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.repository.ObjectId; import java.util.UUID; import static org.junit.Assert.*; /** * @author Andrey Khayrutdinov */ public class KettleFileRepository_DatabaseNames_Test extends KettleFileRepositoryTestBase { @Test public void getDatabaseId_ExactMatch() throws Exception { final String name = UUID.randomUUID().toString(); DatabaseMeta db = saveDatabase(name); ObjectId id = repository.getDatabaseID(name); assertEquals(db.getObjectId(), id); } @Test public void getDatabaseId_InsensitiveMatch() throws Exception { final String name = "databaseWithCamelCase"; final String lookupName = name.toLowerCase(); assertNotSame(lookupName, name); DatabaseMeta db = saveDatabase(name); ObjectId id = repository.getDatabaseID(lookupName); assertEquals(db.getObjectId(), id); } @Test public void getDatabaseId_ReturnsExactMatch_PriorToCaseInsensitiveMatch() throws Exception { final String exact = "databaseExactMatch"; final String similar = exact.toLowerCase(); assertNotSame(similar, exact); DatabaseMeta db = saveDatabase(exact); // simulate legacy repository - store a DB with a name different only in case DatabaseMeta another = new DatabaseMeta(); another.setName(similar); FileObject fileObject = repository.getFileObject(another); assertFalse(fileObject.exists()); // just create it - enough for this case fileObject.createFile(); assertTrue(fileObject.exists()); ObjectId id = this.repository.getDatabaseID(exact); assertEquals(db.getObjectId(), id); } private DatabaseMeta saveDatabase(String name) throws Exception { DatabaseMeta db = new DatabaseMeta(); db.setName(name); repository.save(db, null, null); assertNotNull(db.getObjectId()); return db; } }