Skip to content

Commit

Permalink
test(ut): new test for the UT, encapsulate checkIndex method. ref: #2…
Browse files Browse the repository at this point in the history
  • Loading branch information
erickgonzalez committed Oct 15, 2024
1 parent 4b925bb commit 3dd6090
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -846,5 +846,30 @@ public boolean isColumnLengthExpected(final String tableName, final String colum
}
return isColumnLengthExpected;
}

/**
* Checks if an index exists in a table
* @param tableName
* @param indexName
* @return boolean - true if the index exists in the table
*/
public boolean checkIndex(final String tableName, final String indexName) {
final DotDatabaseMetaData dbMetadata = new DotDatabaseMetaData();

try {
final ResultSet indicesInfo = dbMetadata.getIndices(DbConnectionFactory.getConnection(),
null, tableName, false);
while (indicesInfo.next()) {
final String currentIndex = indicesInfo.getString("INDEX_NAME");

if (currentIndex.equals(indexName)) {
return true;
}
}
} catch (final SQLException e) {
Logger.error(this, e);
}
return false;
}
} // E:O:F:DotDatabaseMetaData.

Original file line number Diff line number Diff line change
Expand Up @@ -38,28 +38,11 @@ public void executeTaskUpgrade() throws DotDataException {
final Task240111AddInodeAndIdentifierLeftIndexes task = new Task240111AddInodeAndIdentifierLeftIndexes();
task.executeUpgrade();

final DotDatabaseMetaData dmd = new DotDatabaseMetaData();

assertTrue("inode_inode_leading_idx index should exist in the inode table",
validateIndex("inode", "inode_inode_leading_idx"));
dmd.checkIndex("inode", "inode_inode_leading_idx"));
assertTrue("identifier_id_leading_idx index should exist in the identifier table",
validateIndex("identifier", "identifier_id_leading_idx"));
}

private boolean validateIndex(final String tableName, final String indexName) {
final DotDatabaseMetaData dbMetadata = new DotDatabaseMetaData();

try {
final ResultSet indicesInfo = dbMetadata.getIndices(DbConnectionFactory.getConnection(),
null, tableName, false);
while (indicesInfo.next()) {
final String currentIndex = indicesInfo.getString("INDEX_NAME");

if (currentIndex.equals(indexName)) {
return true;
}
}
} catch (final SQLException e) {
Logger.error(this, e);
}
return false;
dmd.checkIndex("identifier", "identifier_id_leading_idx"));
}
}
Original file line number Diff line number Diff line change
@@ -1,2 +1,41 @@
package com.dotmarketing.startup.runonce;public class Task241014AddTemplateValueOnContentletIndexTest {
package com.dotmarketing.startup.runonce;

import com.dotcms.util.IntegrationTestInitService;
import com.dotmarketing.common.db.DotDatabaseMetaData;
import com.dotmarketing.exception.DotDataException;
import org.junit.BeforeClass;
import org.junit.Test;

import static org.junit.Assert.assertTrue;

/**
* Verifies that the {@link Task241014AddTemplateValueOnContentletIndex} Upgrade Task is working as
* expected.
*
* @since Oct 24, 2014
*/
public class Task241014AddTemplateValueOnContentletIndexTest {

@BeforeClass
public static void prepare() throws Exception {
IntegrationTestInitService.getInstance().init();
}

/**
* <ul>
* <li><b>Method to test: </b>{@link Task241014AddTemplateValueOnContentletIndex#executeUpgrade()}</li>
* <li><b>Given Scenario: </b>Verifies that new index is included in the contentlet table.</li>
* <li><b>Expected Result: </b>Index must be present.</li>
* </ul>
*/
@Test
public void executeTaskUpgrade() throws DotDataException {
final Task241014AddTemplateValueOnContentletIndex task = new Task241014AddTemplateValueOnContentletIndex();
task.executeUpgrade();

final DotDatabaseMetaData dmd = new DotDatabaseMetaData();

assertTrue("idx_contentlet_template_value should exist in the contentlet table",
dmd.checkIndex("contentlet", "idx_contentlet_template_value"));
}
}

0 comments on commit 3dd6090

Please sign in to comment.