mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
Increase rdbms assessor coverage; decrease its usage of stdout
This commit is contained in:
@ -77,22 +77,24 @@ public class QInstanceAssessor
|
|||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
@SuppressWarnings("checkstyle:AvoidEscapedUnicodeCharacters")
|
@SuppressWarnings("checkstyle:AvoidEscapedUnicodeCharacters")
|
||||||
public void printSummary()
|
public String getSummary()
|
||||||
{
|
{
|
||||||
|
StringBuilder rs = new StringBuilder();
|
||||||
|
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
// print header & errors //
|
// print header & errors //
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
if(CollectionUtils.nullSafeIsEmpty(errors))
|
if(CollectionUtils.nullSafeIsEmpty(errors))
|
||||||
{
|
{
|
||||||
System.out.println("Assessment passed with no errors! \uD83D\uDE0E");
|
rs.append("Assessment passed with no errors! \uD83D\uDE0E\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
System.out.println("Assessment found the following " + StringUtils.plural(errors, "error", "errors") + ": \uD83D\uDE32");
|
rs.append("Assessment found the following ").append(StringUtils.plural(errors, "error", "errors")).append(": \uD83D\uDE32\n");
|
||||||
|
|
||||||
for(String error : errors)
|
for(String error : errors)
|
||||||
{
|
{
|
||||||
System.out.println(" - " + error);
|
rs.append(" - ").append(error).append("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,11 +103,11 @@ public class QInstanceAssessor
|
|||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
if(CollectionUtils.nullSafeHasContents(warnings))
|
if(CollectionUtils.nullSafeHasContents(warnings))
|
||||||
{
|
{
|
||||||
System.out.println("\nAssessment found the following " + StringUtils.plural(warnings, "warning", "warnings") + ": \uD83E\uDD28");
|
rs.append("\nAssessment found the following ").append(StringUtils.plural(warnings, "warning", "warnings")).append(": \uD83E\uDD28\n");
|
||||||
|
|
||||||
for(String warning : warnings)
|
for(String warning : warnings)
|
||||||
{
|
{
|
||||||
System.out.println(" - " + warning);
|
rs.append(" - ").append(warning).append("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,13 +116,15 @@ public class QInstanceAssessor
|
|||||||
//////////////////////////////////////////
|
//////////////////////////////////////////
|
||||||
if(CollectionUtils.nullSafeHasContents(suggestions))
|
if(CollectionUtils.nullSafeHasContents(suggestions))
|
||||||
{
|
{
|
||||||
System.out.println("\nThe following " + StringUtils.plural(suggestions, "fix is", "fixes are") + " suggested: \uD83E\uDD13");
|
rs.append("\nThe following ").append(StringUtils.plural(suggestions, "fix is", "fixes are")).append(" suggested: \uD83E\uDD13\n");
|
||||||
|
|
||||||
for(String suggestion : suggestions)
|
for(String suggestion : suggestions)
|
||||||
{
|
{
|
||||||
System.out.println("\n" + suggestion + "\n");
|
rs.append("\n").append(suggestion).append("\n\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return (rs.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,10 +22,17 @@
|
|||||||
package com.kingsrook.qqq.backend.module.rdbms.model.metadata;
|
package com.kingsrook.qqq.backend.module.rdbms.model.metadata;
|
||||||
|
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
import com.kingsrook.qqq.backend.core.context.QContext;
|
import com.kingsrook.qqq.backend.core.context.QContext;
|
||||||
import com.kingsrook.qqq.backend.core.instances.assessment.QInstanceAssessor;
|
import com.kingsrook.qqq.backend.core.instances.assessment.QInstanceAssessor;
|
||||||
|
import com.kingsrook.qqq.backend.core.logging.QLogger;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.UniqueKey;
|
||||||
import com.kingsrook.qqq.backend.module.rdbms.BaseTest;
|
import com.kingsrook.qqq.backend.module.rdbms.BaseTest;
|
||||||
import com.kingsrook.qqq.backend.module.rdbms.TestUtils;
|
import com.kingsrook.qqq.backend.module.rdbms.TestUtils;
|
||||||
|
import com.kingsrook.qqq.backend.module.rdbms.jdbc.ConnectionManager;
|
||||||
|
import com.kingsrook.qqq.backend.module.rdbms.jdbc.QueryManager;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||||
@ -36,6 +43,9 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
class RDBMSBackendAssessorTest extends BaseTest
|
class RDBMSBackendAssessorTest extends BaseTest
|
||||||
{
|
{
|
||||||
|
private static final QLogger LOG = QLogger.getLogger(RDBMSBackendAssessorTest.class);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
@ -46,7 +56,7 @@ class RDBMSBackendAssessorTest extends BaseTest
|
|||||||
TestUtils.primeTestDatabase("prime-test-database.sql");
|
TestUtils.primeTestDatabase("prime-test-database.sql");
|
||||||
QInstanceAssessor assessor = new QInstanceAssessor(QContext.getQInstance());
|
QInstanceAssessor assessor = new QInstanceAssessor(QContext.getQInstance());
|
||||||
assessor.assess();
|
assessor.assess();
|
||||||
assessor.printSummary();
|
System.out.println(assessor.getSummary());
|
||||||
assertEquals(0, assessor.getErrors().size());
|
assertEquals(0, assessor.getErrors().size());
|
||||||
assertEquals(0, assessor.getWarnings().size());
|
assertEquals(0, assessor.getWarnings().size());
|
||||||
assertEquals(0, assessor.getExitCode());
|
assertEquals(0, assessor.getExitCode());
|
||||||
@ -58,7 +68,40 @@ class RDBMSBackendAssessorTest extends BaseTest
|
|||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
@Test
|
@Test
|
||||||
void testIssues() throws Exception
|
void testTableIssues() throws Exception
|
||||||
|
{
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// start from primed database, but make a few alters to it and the meta-data //
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
TestUtils.primeTestDatabase("prime-test-database.sql");
|
||||||
|
ConnectionManager connectionManager = new ConnectionManager();
|
||||||
|
try(Connection connection = connectionManager.getConnection(TestUtils.defineBackend()))
|
||||||
|
{
|
||||||
|
QueryManager.executeUpdate(connection, "ALTER TABLE person ADD COLUMN suffix VARCHAR(20)");
|
||||||
|
QueryManager.executeUpdate(connection, "ALTER TABLE person ADD UNIQUE u_name (first_name, last_name)");
|
||||||
|
}
|
||||||
|
|
||||||
|
QContext.getQInstance().getTable(TestUtils.TABLE_NAME_PERSON)
|
||||||
|
.withField(new QFieldMetaData("middleName", QFieldType.STRING))
|
||||||
|
.withUniqueKey(new UniqueKey("firstName", "middleName", "lastName"));
|
||||||
|
|
||||||
|
///////////////////////////
|
||||||
|
// un-prime the database //
|
||||||
|
///////////////////////////
|
||||||
|
QInstanceAssessor assessor = new QInstanceAssessor(QContext.getQInstance());
|
||||||
|
assessor.assess();
|
||||||
|
LOG.info(assessor.getSummary());
|
||||||
|
assertNotEquals(0, assessor.getErrors().size());
|
||||||
|
assertNotEquals(0, assessor.getExitCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
@Test
|
||||||
|
void testTotalFailure() throws Exception
|
||||||
{
|
{
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
// un-prime the database //
|
// un-prime the database //
|
||||||
@ -66,7 +109,7 @@ class RDBMSBackendAssessorTest extends BaseTest
|
|||||||
TestUtils.primeTestDatabase("drop-test-database.sql");
|
TestUtils.primeTestDatabase("drop-test-database.sql");
|
||||||
QInstanceAssessor assessor = new QInstanceAssessor(QContext.getQInstance());
|
QInstanceAssessor assessor = new QInstanceAssessor(QContext.getQInstance());
|
||||||
assessor.assess();
|
assessor.assess();
|
||||||
assessor.printSummary();
|
System.out.println(assessor.getSummary());
|
||||||
assertNotEquals(0, assessor.getErrors().size());
|
assertNotEquals(0, assessor.getErrors().size());
|
||||||
assertNotEquals(0, assessor.getExitCode());
|
assertNotEquals(0, assessor.getExitCode());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user