Skip to content

Commit

Permalink
Simplified and deduplicated some methods of MessageMatcher
Browse files Browse the repository at this point in the history
  • Loading branch information
tinwelint committed Jun 5, 2019
1 parent 4a81a3e commit 835aaf1
Show file tree
Hide file tree
Showing 27 changed files with 130 additions and 200 deletions.
Expand Up @@ -69,12 +69,12 @@ public void databaseErrorShouldLogFullMessageInDebugLogAndHelpfulPointerInUserLo
reporter.report( error );

// then
userLog.rawMessageMatcher().assertContainsLogCallContaining( "Client triggered an unexpected error" );
userLog.rawMessageMatcher().assertContainsLogCallContaining( reference.toString() );
userLog.rawMessageMatcher().assertContainsLogCallContaining( "Database error" );
userLog.rawMessageMatcher().assertContains( "Client triggered an unexpected error" );
userLog.rawMessageMatcher().assertContains( reference.toString() );
userLog.rawMessageMatcher().assertContains( "Database error" );

internalLog.rawMessageMatcher().assertContainsLogCallContaining( reference.toString() );
internalLog.rawMessageMatcher().assertContainsLogCallContaining( "Database error" );
internalLog.rawMessageMatcher().assertContains( reference.toString() );
internalLog.rawMessageMatcher().assertContains( "Database error" );
}

private static ErrorReporter newErrorReporter( LogProvider userLog, LogProvider internalLog )
Expand Down
Expand Up @@ -125,7 +125,7 @@ public void shouldReportFailureWhenAllThreadsInThreadPoolAreBusy() throws Throwa
assertThat( connection3, util.eventuallyReceives(
msgFailure( Status.Request.NoThreadsAvailable, "There are no available threads to serve this request at the moment" ) ) );

userLogProvider.rawMessageMatcher().assertContainsMessageContaining(
userLogProvider.rawMessageMatcher().assertContains(
"since there are no available threads to serve it at the moment. You can retry at a later time" );
internalLogProvider.assertAtLeastOnce( AssertableLogProvider
.inLog( startsWith( BoltConnection.class.getPackage().getName() ) )
Expand Down Expand Up @@ -160,9 +160,9 @@ public void shouldStopConnectionsWhenRelatedJobIsRejectedOnShutdown() throws Thr
server.shutdownDatabase();

// Expect no scheduling error logs
userLogProvider.rawMessageMatcher().assertNoLogCallContaining(
userLogProvider.rawMessageMatcher().assertNotContains(
"since there are no available threads to serve it at the moment. You can retry at a later time" );
internalLogProvider.rawMessageMatcher().assertNoLogCallContaining(
internalLogProvider.rawMessageMatcher().assertNotContains(
"since there are no available threads to serve it at the moment. You can retry at a later time" );
}

Expand Down
Expand Up @@ -139,7 +139,7 @@ public void shouldDetectSabotagedRelationshipWhereEverItIs() throws Exception
RecordType.RELATIONSHIP );

assertTrue( "Couldn't detect sabotaged relationship " + sabotage, relationshipInconsistencies > 0 );
logProvider.rawMessageMatcher().assertContainsLogCallContaining( sabotage.after.toString() );
logProvider.rawMessageMatcher().assertContains( sabotage.after.toString() );
}
}
finally
Expand Down
Expand Up @@ -48,18 +48,18 @@ public void shouldSeeExpectedDiagnostics()
cleanupRule.add( db );

// THEN we should have logged
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Network information" );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Disk space on partition" );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Local timezone" );
logProvider.rawMessageMatcher().assertContains( "Network information" );
logProvider.rawMessageMatcher().assertContains( "Disk space on partition" );
logProvider.rawMessageMatcher().assertContains( "Local timezone" );
// page cache info
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Page cache: 4M" );
logProvider.rawMessageMatcher().assertContains( "Page cache: 4M" );
// neostore records
for ( MetaDataStore.Position position : MetaDataStore.Position.values() )
{
logProvider.rawMessageMatcher().assertContainsMessageContaining( position.name() );
logProvider.rawMessageMatcher().assertContains( position.name() );
}
// transaction log info
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Transaction log" );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "TimeZone version: " );
logProvider.rawMessageMatcher().assertContains( "Transaction log" );
logProvider.rawMessageMatcher().assertContains( "TimeZone version: " );
}
}
Expand Up @@ -174,8 +174,8 @@ public void truncateNewerTransactionLogFileWhenForced() throws IOException
database = startDbNoRecoveryOfCorruptedLogs();
database.shutdown();

logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to read transaction log version 0." );
logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains( "Fail to read transaction log version 0." );
logProvider.rawMessageMatcher().assertContains(
"Fail to read transaction log version 0. Last valid transaction start offset is: 5668." );
assertEquals( numberOfClosedTransactions, recoveryMonitor.getNumberOfRecoveredTransactions() );
}
Expand All @@ -188,11 +188,11 @@ public void recoverFirstCorruptedTransactionSingleFileNoCheckpoint() throws IOEx
GraphDatabaseService recoveredDatabase = startDbNoRecoveryOfCorruptedLogs();
recoveredDatabase.shutdown();

logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to read transaction log version 0." );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to read first transaction of log version 0." );
logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains( "Fail to read transaction log version 0." );
logProvider.rawMessageMatcher().assertContains( "Fail to read first transaction of log version 0." );
logProvider.rawMessageMatcher().assertContains(
"Recovery required from position LogPosition{logVersion=0, byteOffset=16}" );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to recover all transactions. Any later transactions after" +
logProvider.rawMessageMatcher().assertContains( "Fail to recover all transactions. Any later transactions after" +
" position LogPosition{logVersion=0, byteOffset=16} are unreadable and will be truncated." );

assertEquals( 0, logFiles.getHighestLogVersion() );
Expand Down Expand Up @@ -237,11 +237,11 @@ public void recoverNotAFirstCorruptedTransactionSingleFileNoCheckpoint() throws
database = startDbNoRecoveryOfCorruptedLogs();
database.shutdown();

logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to read transaction log version 0." );
logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains( "Fail to read transaction log version 0." );
logProvider.rawMessageMatcher().assertContains(
"Recovery required from position LogPosition{logVersion=0, byteOffset=16}" );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to recover all transactions." );
logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains( "Fail to recover all transactions." );
logProvider.rawMessageMatcher().assertContains(
"Any later transaction after LogPosition{logVersion=0, byteOffset=6245} are unreadable and will be truncated." );

assertEquals( 0, logFiles.getHighestLogVersion() );
Expand Down Expand Up @@ -278,11 +278,11 @@ public void recoverNotAFirstCorruptedTransactionMultipleFilesNoCheckpoints() thr
database = startDbNoRecoveryOfCorruptedLogs();
database.shutdown();

logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to read transaction log version 3." );
logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains( "Fail to read transaction log version 3." );
logProvider.rawMessageMatcher().assertContains(
"Recovery required from position LogPosition{logVersion=0, byteOffset=16}" );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to recover all transactions." );
logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains( "Fail to recover all transactions." );
logProvider.rawMessageMatcher().assertContains(
"Any later transaction after LogPosition{logVersion=3, byteOffset=4632} are unreadable and will be truncated." );

assertEquals( 3, logFiles.getHighestLogVersion() );
Expand Down Expand Up @@ -316,11 +316,11 @@ public void recoverNotAFirstCorruptedTransactionMultipleFilesMultipleCheckpoints
database = startDbNoRecoveryOfCorruptedLogs();
database.shutdown();

logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to read transaction log version 3." );
logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains( "Fail to read transaction log version 3." );
logProvider.rawMessageMatcher().assertContains(
"Recovery required from position LogPosition{logVersion=3, byteOffset=593}" );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to recover all transactions." );
logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains( "Fail to recover all transactions." );
logProvider.rawMessageMatcher().assertContains(
"Any later transaction after LogPosition{logVersion=3, byteOffset=4650} are unreadable and will be truncated." );

assertEquals( 3, logFiles.getHighestLogVersion() );
Expand All @@ -347,11 +347,11 @@ public void recoverFirstCorruptedTransactionAfterCheckpointInLastLogFile() throw
database = startDbNoRecoveryOfCorruptedLogs();
database.shutdown();

logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to read transaction log version 5." );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to read first transaction of log version 5." );
logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains( "Fail to read transaction log version 5." );
logProvider.rawMessageMatcher().assertContains( "Fail to read first transaction of log version 5." );
logProvider.rawMessageMatcher().assertContains(
"Recovery required from position LogPosition{logVersion=5, byteOffset=593}" );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "Fail to recover all transactions. " +
logProvider.rawMessageMatcher().assertContains( "Fail to recover all transactions. " +
"Any later transactions after position LogPosition{logVersion=5, byteOffset=593} " +
"are unreadable and will be truncated." );

Expand Down
Expand Up @@ -194,8 +194,8 @@ public void reportProgressOnRecovery() throws IOException
{
assertEquals( 10, count( recoveredDatabase.getAllNodes() ) );
}
logProvider.rawMessageMatcher().assertContainsMessageContaining( "10% completed" );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "100% completed" );
logProvider.rawMessageMatcher().assertContains( "10% completed" );
logProvider.rawMessageMatcher().assertContains( "100% completed" );

database.shutdown();
recoveredDatabase.shutdown();
Expand Down
Expand Up @@ -108,7 +108,7 @@ public void notifyAboutStoreFileDeletion() throws Exception
deleteFile( testDirectory.storeDir(), fileName );
deletionListener.awaitDeletionNotification();

logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains(
"'" + fileName + "' which belongs to the store was deleted while database was running." );
}

Expand All @@ -123,7 +123,7 @@ public void notifyWhenFileWatchingFailToStart()
.setFileSystem( new NonWatchableFileSystemAbstraction() )
.newEmbeddedDatabase( testDirectory.storeDir( "failed-start-db" ) );

logProvider.rawMessageMatcher().assertContainsMessageContaining( "Can not create file watcher for current file system. " +
logProvider.rawMessageMatcher().assertContains( "Can not create file watcher for current file system. " +
"File monitoring capabilities for store files will be disabled." );
}
finally
Expand Down Expand Up @@ -155,7 +155,7 @@ public void notifyAboutExplicitIndexFolderRemoval() throws InterruptedException,
deleteStoreDirectory( storeDir, monitoredDirectory );
deletionListener.awaitDeletionNotification();

logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains(
"'" + monitoredDirectory + "' which belongs to the store was deleted while database was running." );
}

Expand Down Expand Up @@ -255,7 +255,7 @@ public void notifyWhenWholeStoreDirectoryRemoved() throws IOException, Interrupt

eventListener.awaitDeletionNotification();

logProvider.rawMessageMatcher().assertContainsMessageContaining(
logProvider.rawMessageMatcher().assertContains(
"'" + storeDirectoryName + "' which belongs to the store was deleted while database was running." );
}

Expand All @@ -272,7 +272,7 @@ public void shouldLogWhenDisabled()
.setConfig( GraphDatabaseSettings.filewatcher_enabled, Settings.FALSE )
.newGraphDatabase();

logProvider.rawMessageMatcher().assertContainsMessageContaining( "File watcher disabled by configuration." );
logProvider.rawMessageMatcher().assertContains( "File watcher disabled by configuration." );
}
finally
{
Expand Down
Expand Up @@ -140,14 +140,14 @@ public void scanStoreMustLogCrashPointerCleanupDuringRecovery() throws Exception
startDatabase().shutdown();

// then
logProvider.rawMessageMatcher().assertContainsLogCallContaining( "Label index cleanup job registered" );
logProvider.rawMessageMatcher().assertContainsLogCallContaining( "Label index cleanup job started" );
logProvider.rawMessageMatcher().assertContainsMessageMatching( Matchers.stringContainsInOrder( Iterables.asIterable(
logProvider.rawMessageMatcher().assertContains( "Label index cleanup job registered" );
logProvider.rawMessageMatcher().assertContains( "Label index cleanup job started" );
logProvider.rawMessageMatcher().assertContains( Matchers.stringContainsInOrder( Iterables.asIterable(
"Label index cleanup job finished",
"Number of pages visited",
"Number of cleaned crashed pointers",
"Time spent" ) ) );
logProvider.rawMessageMatcher().assertContainsLogCallContaining( "Label index cleanup job closed" );
logProvider.rawMessageMatcher().assertContains( "Label index cleanup job closed" );
}

@Test
Expand Down Expand Up @@ -189,7 +189,7 @@ private void nativeIndexMustLogCrashPointerCleanupDuringRecovery( GraphDatabaseS
matchers.add( indexRecoveryLogMatcher( "Schema index cleanup job closed", subType ) );
}
AssertableLogProvider.MessageMatcher messageMatcher = logProvider.rawMessageMatcher();
matchers.forEach( messageMatcher::assertContainsExactlyOneMessageMatching );
matchers.forEach( messageMatcher::assertContainsSingle );
}

private Matcher<String> indexRecoveryLogMatcher( String logMessage, String subIndexProviderKey )
Expand Down
Expand Up @@ -165,7 +165,7 @@ public void shouldLogCorrectTransactionLogDiagnosticsForNoTransactionLogs()
DataSourceDiagnostics.TRANSACTION_RANGE.dump( dataSource, logger );

// THEN
logProvider.rawMessageMatcher().assertContainsMessageContaining( "No transactions" );
logProvider.rawMessageMatcher().assertContains( "No transactions" );
}

@Test
Expand All @@ -183,8 +183,8 @@ public void shouldLogCorrectTransactionLogDiagnosticsForTransactionsInOldestLog(
DataSourceDiagnostics.TRANSACTION_RANGE.dump( dataSource, logger );

// THEN
logProvider.rawMessageMatcher().assertContainsMessageContaining( "transaction " + (prevLogLastTxId + 1) );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "version " + logVersion );
logProvider.rawMessageMatcher().assertContains( "transaction " + (prevLogLastTxId + 1) );
logProvider.rawMessageMatcher().assertContains( "version " + logVersion );
}

@Test
Expand All @@ -202,8 +202,8 @@ public void shouldLogCorrectTransactionLogDiagnosticsForTransactionsInSecondOlde
DataSourceDiagnostics.TRANSACTION_RANGE.dump( dataSource, logger );

// THEN
logProvider.rawMessageMatcher().assertContainsMessageContaining( "transaction " + (prevLogLastTxId + 1) );
logProvider.rawMessageMatcher().assertContainsMessageContaining( "version " + (logVersion + 1) );
logProvider.rawMessageMatcher().assertContains( "transaction " + (prevLogLastTxId + 1) );
logProvider.rawMessageMatcher().assertContains( "version " + (logVersion + 1) );
}

@Test
Expand Down
Expand Up @@ -204,15 +204,15 @@ private Log getLog()

private void assertContainsWarningMessage()
{
logProvider.rawMessageMatcher().assertContainsMessageContaining( "WARNING! Deprecated configuration options used. See manual for details" );
logProvider.rawMessageMatcher().assertContains( "WARNING! Deprecated configuration options used. See manual for details" );
}

private void assertContainsWarningMessage( String deprecationMessage )
{
assertContainsWarningMessage();
if ( StringUtils.isNotEmpty( deprecationMessage ) )
{
logProvider.rawMessageMatcher().assertContainsMessageContaining( deprecationMessage );
logProvider.rawMessageMatcher().assertContains( deprecationMessage );
}
}
}

0 comments on commit 835aaf1

Please sign in to comment.