Class EventFilter

java.lang.Object
org.apache.pekko.testkit.EventFilter
Direct Known Subclasses:
CustomEventFilter, DeadLettersFilter, DebugFilter, ErrorFilter, InfoFilter, WarningFilter

public abstract class EventFilter extends Object
Facilities for selectively filtering out expected events from logging so that you can keep your test run’s console output clean and do not miss real error messages.

See the companion object for convenient factory methods.

If the occurrences is set to Int.MaxValue, no tracking is done.

  • Constructor Details

    • EventFilter

      public EventFilter(int occurrences)
  • Method Details

    • apply$default$1

      public static <A extends Throwable> String apply$default$1()
    • apply$default$2

      public static <A extends Throwable> String apply$default$2()
    • apply$default$3

      public static <A extends Throwable> String apply$default$3()
    • apply$default$4

      public static <A extends Throwable> String apply$default$4()
    • apply$default$5

      public static <A extends Throwable> int apply$default$5()
    • error

      public static EventFilter error(String message, String source, String start, String pattern, int occurrences)
      Create a filter for Error events. See apply() for more details.
    • error$default$1

      public static String error$default$1()
    • error$default$2

      public static String error$default$2()
    • error$default$3

      public static String error$default$3()
    • error$default$4

      public static String error$default$4()
    • error$default$5

      public static int error$default$5()
    • warning

      public static EventFilter warning(String message, String source, String start, String pattern, int occurrences)
      Create a filter for Warning events. Give up to one of start and pattern:

      
       EventFilter.warning()                                         // filter only on warning event
       EventFilter.warning(source = obj)                             // filter on event source
       EventFilter.warning(start = "Expected")                       // filter on start of message
       EventFilter.warning(source = obj, pattern = "weird.*message") // filter on pattern and message
       

      ''Please note that filtering on the source being null does NOT work (passing null disables the source filter).''

    • warning$default$1

      public static String warning$default$1()
    • warning$default$2

      public static String warning$default$2()
    • warning$default$3

      public static String warning$default$3()
    • warning$default$4

      public static String warning$default$4()
    • warning$default$5

      public static int warning$default$5()
    • info

      public static EventFilter info(String message, String source, String start, String pattern, int occurrences)
      Create a filter for Info events. Give up to one of start and pattern:

      
       EventFilter.info()                                         // filter only on info event
       EventFilter.info(source = obj)                             // filter on event source
       EventFilter.info(start = "Expected")                       // filter on start of message
       EventFilter.info(source = obj, pattern = "weird.*message") // filter on pattern and message
       

      ''Please note that filtering on the source being null does NOT work (passing null disables the source filter).''

    • info$default$1

      public static String info$default$1()
    • info$default$2

      public static String info$default$2()
    • info$default$3

      public static String info$default$3()
    • info$default$4

      public static String info$default$4()
    • info$default$5

      public static int info$default$5()
    • debug

      public static EventFilter debug(String message, String source, String start, String pattern, int occurrences)
      Create a filter for Debug events. Give up to one of start and pattern:

      
       EventFilter.debug()                                         // filter only on debug type
       EventFilter.debug(source = obj)                             // filter on event source
       EventFilter.debug(start = "Expected")                       // filter on start of message
       EventFilter.debug(source = obj, pattern = "weird.*message") // filter on pattern and message
       

      ''Please note that filtering on the source being null does NOT work (passing null disables the source filter).''

    • debug$default$1

      public static String debug$default$1()
    • debug$default$2

      public static String debug$default$2()
    • debug$default$3

      public static String debug$default$3()
    • debug$default$4

      public static String debug$default$4()
    • debug$default$5

      public static int debug$default$5()
    • custom

      public static EventFilter custom(scala.PartialFunction<Logging.LogEvent,Object> test, int occurrences)
      Create a custom event filter. The filter will affect those events for which the supplied partial function is defined and returns true.

      
       EventFilter.custom {
         case Warning(ref, "my warning") if ref == actor || ref == null => true
       }
       
    • custom$default$2

      public static int custom$default$2()
    • matches

      protected abstract boolean matches(Logging.LogEvent event)
      This method decides whether to filter the event (true) or not (false).
    • apply

      public final boolean apply(Logging.LogEvent event)
    • awaitDone

      public boolean awaitDone(scala.concurrent.duration.Duration max)
    • assertDone

      public void assertDone(scala.concurrent.duration.Duration max)
      Assert that this filter has matched as often as requested by its occurrences parameter specifies.
    • intercept

      public <T> T intercept(scala.Function0<T> code, ActorSystem system)
      Apply this filter while executing the given code block. Care is taken to remove the filter when the block is finished or aborted.
    • source

      protected scala.Option<String> source()
    • message

      protected scala.util.Either<String,scala.util.matching.Regex> message()
    • complete

      protected boolean complete()
    • doMatch

      protected boolean doMatch(String src, Object msg)
      internal implementation helper, no guaranteed API