com.codereligion.cherry.test.hamcrest.logback
Class LoggingEventHasMessage

java.lang.Object
  extended by org.hamcrest.BaseMatcher<T>
      extended by org.hamcrest.TypeSafeMatcher<ch.qos.logback.classic.spi.ILoggingEvent>
          extended by com.codereligion.cherry.test.hamcrest.logback.LoggingEventHasMessage
All Implemented Interfaces:
org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent>, org.hamcrest.SelfDescribing

public class LoggingEventHasMessage
extends org.hamcrest.TypeSafeMatcher<ch.qos.logback.classic.spi.ILoggingEvent>

A matcher which expects the ILoggingEvent to have a formatted message which matches the given Matcher.

Since:
17.03.2015
Author:
Sebastian Gröbler

Method Summary
protected  void describeExpectation(org.hamcrest.Description description)
          Describes the expected data.
protected  void describeMismatchSafely(ch.qos.logback.classic.spi.ILoggingEvent item, org.hamcrest.Description mismatchDescription)
           
protected  void describeNegatedExpectation(org.hamcrest.Description description)
          Describes the expected data when the matcher has been negated.
 void describeTo(org.hamcrest.Description description)
           
static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> doesNotHaveMessage(org.hamcrest.Matcher<String> matcher)
          Creates a new matcher for ILoggingEvents that only matches when the examined event does not have a formattedMessage which is matched by the given Matcher.
static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> doesNotHaveMessage(String substring, Object... args)
          Creates a new matcher for ILoggingEvents that only matches when the examined event does not have a formattedMessage which contains the given substring.
static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> hasMessage(org.hamcrest.Matcher<String> matcher)
          Creates a new matcher for ILoggingEvents that only matches when the examined event has a formattedMessage which is matched by the given Matcher.
static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> hasMessage(String substring, Object... args)
          Creates a new matcher for ILoggingEvents that only matches when the examined event has a formattedMessage which contains the given substring.
protected  boolean internalMatches(ch.qos.logback.classic.spi.ILoggingEvent event)
          This method must return true when the given event matches.
 boolean matchesSafely(ch.qos.logback.classic.spi.ILoggingEvent event)
           
static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> withMessage(org.hamcrest.Matcher<String> matcher)
          Creates a new matcher for ILoggingEvents that only matches when the examined event has a formattedMessage which contains the given substring.
static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> withMessage(String substring, Object... args)
          Creates a new matcher for ILoggingEvents that only matches when the examined event has a formattedMessage which is matched by the given Matcher.
 
Methods inherited from class org.hamcrest.TypeSafeMatcher
describeMismatch, matches
 
Methods inherited from class org.hamcrest.BaseMatcher
_dont_implement_Matcher___instead_extend_BaseMatcher_, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

hasMessage

public static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> hasMessage(String substring,
                                                                                        Object... args)
Creates a new matcher for ILoggingEvents that only matches when the examined event has a formattedMessage which contains the given substring. This matcher is doing the same assertion as withMessage(String, Object...), with the difference that this matcher's output is optimized for usage on single events.

Example usage: assertThat(event, hasMessage("oh %s", "no!"));

Example output: Expected: an ILoggingEvent with a formattedMessage matching: a string containing "oh no!" but: was ILoggingEvent{level=INFO, formattedMessage='some Message', loggedBy=SomeLogger, throwable=null}

Parameters:
substring - the which is expected to be contained in the given events formattedMessage
args - the arguments to use for formatting the given substring
Returns:
a new matcher
Throws:
IllegalArgumentException - when the given substring is null

hasMessage

public static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> hasMessage(org.hamcrest.Matcher<String> matcher)
Creates a new matcher for ILoggingEvents that only matches when the examined event has a formattedMessage which is matched by the given Matcher. This matcher is doing the same assertion as withMessage(Matcher), with the difference that this matcher's output is optimized for usage on single events.

Example usage: assertThat(event, hasMessage(containsString("ohoh")));

Example output: Expected: an ILoggingEvent with a formattedMessage matching: a string containing "ohoh" but: was ILoggingEvent{level=INFO, formattedMessage='some Message', loggedBy=SomeLogger, throwable=null}

Parameters:
matcher - the string Matcher to check the formattedMessage against
Returns:
a new matcher
Throws:
IllegalArgumentException - when the given parameter is null

doesNotHaveMessage

public static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> doesNotHaveMessage(String substring,
                                                                                                Object... args)
Creates a new matcher for ILoggingEvents that only matches when the examined event does not have a formattedMessage which contains the given substring. This matcher is the negation of hasMessage(String, Object...). It is recommended to use this specific matcher instead of just combining the other matcher with CoreMatchers.not(Matcher) because of the improved error output.

Example usage: assertThat(event, doesNotHaveMessage("oh %s", "no!"));

Example output: Expected: an ILoggingEvent with a formattedMessage not matching: a string containing "oh no!" but: was ILoggingEvent{level=ERROR, formattedMessage='ohoh', loggedBy=SomeLogger, throwable=null}

Parameters:
substring - the which is expected to be contained in the given events formattedMessage
args - the arguments to use for formatting the given substring
Returns:
a new matcher
Throws:
IllegalArgumentException - when the given substring is null

doesNotHaveMessage

public static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> doesNotHaveMessage(org.hamcrest.Matcher<String> matcher)
Creates a new matcher for ILoggingEvents that only matches when the examined event does not have a formattedMessage which is matched by the given Matcher. This matcher is the negation of hasMessage(Matcher). It is recommended to use this specific matcher instead of just combining the other matcher with CoreMatchers.not(Matcher) because of the improved error output.

Example usage: assertThat(event, doesNotHaveMessage(containsString("ohoh")));

Example output: Expected: an ILoggingEvent with a formattedMessage not matching: a string containing "ohoh" but: was ILoggingEvent{level=ERROR, formattedMessage='ohoh', loggedBy=SomeLogger, throwable=null}

Parameters:
matcher - the string Matcher to check the formattedMessage against
Returns:
a new matcher
Throws:
IllegalArgumentException - when the given parameter is null

withMessage

public static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> withMessage(String substring,
                                                                                         Object... args)
Creates a new matcher for ILoggingEvents that only matches when the examined event has a formattedMessage which is matched by the given Matcher. This matcher is doing the same assertion as hasMessage(Matcher), with the difference that this matcher's output is optimized for usage on iterables of events.

Example usage: assertThat(events, hasItem(withMessage(containsString("ohoh"))));

Example output: Expected: an iterable containing an ILoggingEvent with a formattedMessage matching: a string containing "ohoh" but: iterable contained [ILoggingEvent{level=INFO, formattedMessage='some Message', loggedBy=SomeLogger, throwable=null}]

Parameters:
substring - the which is expected to be contained in the given events formattedMessage
args - the arguments to use for formatting the given substring
Returns:
a new matcher
Throws:
IllegalArgumentException - when the given substring is null

withMessage

public static org.hamcrest.Matcher<ch.qos.logback.classic.spi.ILoggingEvent> withMessage(org.hamcrest.Matcher<String> matcher)
Creates a new matcher for ILoggingEvents that only matches when the examined event has a formattedMessage which contains the given substring. This matcher is doing the same assertion as hasMessage(String, Object...), with the difference that this matcher's output is optimized for usage on iterables of events.

Example usage: assertThat(events, hasItem(withMessage("oh %s", "no!")));

Example output: Expected: an iterable containing an ILoggingEvent with a formattedMessage matching: a string containing "oh no!" but: iterable contained [ILoggingEvent{level=INFO, formattedMessage='some Message', loggedBy=SomeLogger, throwable=null}]

Parameters:
matcher - the string Matcher to check the formattedMessage against
Returns:
a new matcher
Throws:
IllegalArgumentException - when the given parameter is null

internalMatches

protected boolean internalMatches(ch.qos.logback.classic.spi.ILoggingEvent event)
This method must return true when the given event matches. Proper negation is handled by the caller of this method.

Parameters:
event - the ILoggingEvent to be checked
Returns:
true if the event matches

describeExpectation

protected void describeExpectation(org.hamcrest.Description description)
Describes the expected data.

Parameters:
description - the Description to amend the text

describeNegatedExpectation

protected void describeNegatedExpectation(org.hamcrest.Description description)
Describes the expected data when the matcher has been negated.

Parameters:
description - the Description to amend the text

matchesSafely

public boolean matchesSafely(ch.qos.logback.classic.spi.ILoggingEvent event)
Specified by:
matchesSafely in class org.hamcrest.TypeSafeMatcher<ch.qos.logback.classic.spi.ILoggingEvent>

describeTo

public void describeTo(org.hamcrest.Description description)

describeMismatchSafely

protected void describeMismatchSafely(ch.qos.logback.classic.spi.ILoggingEvent item,
                                      org.hamcrest.Description mismatchDescription)
Overrides:
describeMismatchSafely in class org.hamcrest.TypeSafeMatcher<ch.qos.logback.classic.spi.ILoggingEvent>


Copyright © 2015. All rights reserved.