@Test public void testVerifyLogRecords() throws Throwable { String expected = generateRandomString(); LOG.error(expected); LOG.error(expected); expectedLogs.verifyLogRecords( new TypeSafeMatcher<Iterable<LogRecord>>() { @Override protected boolean matchesSafely(Iterable<LogRecord> item) { int count = 0; for (LogRecord record : item) { if (record.getMessage().contains(expected)) { count += 1; } } return count == 2; } @Override public void describeTo(org.hamcrest.Description description) {} }); }
@Test public void coderWarnsForNoEquals() throws Exception { String expectedLogMessage = "Can't verify serialized elements of type NoEquals " + "have well defined equals method."; // Create the coder multiple times ensuring that we only log once. SerializableCoder.of(NoEquals.class); SerializableCoder.of(NoEquals.class); SerializableCoder.of(NoEquals.class); expectedLogs.verifyLogRecords( new TypeSafeMatcher<Iterable<LogRecord>>() { @Override public void describeTo(Description description) { description.appendText( String.format("single warn log message containing [%s]", expectedLogMessage)); } @Override protected boolean matchesSafely(Iterable<LogRecord> item) { int count = 0; for (LogRecord logRecord : item) { if (logRecord.getLevel().equals(Level.WARNING) && logRecord.getMessage().contains(expectedLogMessage)) { count += 1; } } return count == 1; } }); }
@Test public void coderWarnsForInterface() throws Exception { String expectedLogMessage = "Can't verify serialized elements of type TestInterface " + "have well defined equals method."; // Create the coder multiple times ensuring that we only log once. SerializableCoder.of(TestInterface.class); SerializableCoder.of(TestInterface.class); SerializableCoder.of(TestInterface.class); expectedLogs.verifyLogRecords( new TypeSafeMatcher<Iterable<LogRecord>>() { @Override public void describeTo(Description description) { description.appendText( String.format("single warn log message containing [%s]", expectedLogMessage)); } @Override protected boolean matchesSafely(Iterable<LogRecord> item) { int count = 0; for (LogRecord logRecord : item) { if (logRecord.getLevel().equals(Level.WARNING) && logRecord.getMessage().contains(expectedLogMessage)) { count += 1; } } return count == 1; } }); }