1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.spf4j.test.log;
17
18 import java.util.function.Predicate;
19 import org.spf4j.log.Level;
20
21
22
23
24 final class DefaultAsserter implements LogHandler {
25
26 private final Predicate<String> excludeCategories;
27
28 DefaultAsserter(final Predicate<String> excludeCategories) {
29 this.excludeCategories = excludeCategories;
30 }
31
32
33 @Override
34 public Handling handles(final Level level) {
35 return level == Level.ERROR ? Handling.HANDLE_CONSUME : Handling.NONE;
36 }
37
38 @Override
39 public TestLogRecord handle(final TestLogRecord record) {
40 if (!record.hasAttachment(Attachments.ASSERTED) && !excludeCategories.test(record.getLoggerName())) {
41 throw new AssertionError("Most test should not log errors, if a error scenario is validated,"
42 + " please assert this behavior using TestLoggers.expect, received:\n" + record,
43 record.getExtraThrowable());
44 }
45 return record;
46 }
47
48 @Override
49 public String toString() {
50 return "DefaultAsserter{" + "excludeCategories=" + excludeCategories + '}';
51 }
52
53 }