11package nl .jqno .equalsverifier .integration .operational ;
22
3+ import java .util .regex .Pattern ;
4+
35import nl .jqno .equalsverifier .EqualsVerifier ;
46import nl .jqno .equalsverifier .internal .exceptions .AssertionException ;
57import nl .jqno .equalsverifier .internal .util .Formatter ;
@@ -13,16 +15,18 @@ class OutputTest {
1315
1416 private static final String SEE_ALSO = "For more information, go to" ;
1517 private static final String WEBSITE_URL = "https://www.jqno.nl/equalsverifier/errormessages" ;
16- private static final String SUFFIX = "(EqualsVerifier null, JDK" ;
1718 private static final String CLASSPATH = "running on classpath" ;
1819 private static final String MESSAGE = "a message for an exception" ;
20+ private static final Pattern SUFFIX =
21+ Pattern .compile ("\\ (EqualsVerifier .*, JDK .* running on (class|module)path, on .*. Mockito: .*\\ )" );
1922
2023 @ Test
2124 void messageIsValidForSingleType_whenEqualsVerifierFails_givenExceptionIsGeneratedByEqualsVerifierItself () {
2225 ExpectedException
2326 .when (() -> EqualsVerifier .forClass (Point .class ).verify ())
2427 .assertCause (AssertionException .class )
25- .assertMessageContains (Point .class .getSimpleName (), SEE_ALSO , WEBSITE_URL , SUFFIX , CLASSPATH );
28+ .assertMessageContains (Point .class .getSimpleName (), SEE_ALSO , WEBSITE_URL , CLASSPATH )
29+ .assertMessageMatches (SUFFIX );
2630 }
2731
2832 @ Test
@@ -33,8 +37,8 @@ void messageIsValidForMultipleTypes_whenEqualsVerifierFails_givenExceptionIsGene
3337 .assertMessageContains ("---" )
3438 .assertMessageContainsOnce (SEE_ALSO )
3539 .assertMessageContainsOnce (WEBSITE_URL )
36- .assertMessageContainsOnce (SUFFIX )
37- .assertMessageContainsOnce ( CLASSPATH );
40+ .assertMessageContainsOnce (CLASSPATH )
41+ .assertMessageMatches ( SUFFIX );
3842 }
3943
4044 @ Test
@@ -47,7 +51,8 @@ void messageIsValidAndCauseHasCause_whenEqualsVerifierFails_givenOriginalExcepti
4751 ExpectedException
4852 .when (() -> EqualsVerifier .forClass (AssertionExceptionWithCauseThrower .class ).verify ())
4953 .assertMessageContains (AssertionExceptionWithCauseThrower .class .getSimpleName ())
50- .assertMessageContains (SEE_ALSO , WEBSITE_URL , SUFFIX , CLASSPATH , MESSAGE )
54+ .assertMessageContains (SEE_ALSO , WEBSITE_URL , CLASSPATH , MESSAGE )
55+ .assertMessageMatches (SUFFIX )
5156 .assertMessageDoesNotContain (NullPointerException .class .getSimpleName ())
5257 .assertCause (AssertionException .class )
5358 .assertCause (NullPointerException .class );
@@ -59,7 +64,8 @@ void originalMessageIsPresentInOutput_whenEqualsVerifierFails_givenOriginalExcep
5964 .when (() -> EqualsVerifier .forClass (UnsupportedOperationExceptionWithMessageThrower .class ).verify ())
6065 .assertMessageContains (UnsupportedOperationExceptionWithMessageThrower .class .getSimpleName ())
6166 .assertMessageContains (UnsupportedOperationException .class .getSimpleName ())
62- .assertMessageContains (SEE_ALSO , WEBSITE_URL , SUFFIX , MESSAGE )
67+ .assertMessageContains (SEE_ALSO , WEBSITE_URL , MESSAGE )
68+ .assertMessageMatches (SUFFIX )
6369 .assertMessageDoesNotContainAfterRemove ("EqualsVerifier null" , "null" )
6470 .assertCause (UnsupportedOperationException .class )
6571 .assertCauseMessageContains (MESSAGE );
@@ -70,7 +76,8 @@ void messageIsValidAndDoesNotContainStringNull_whenEqualsVerifierFails_givenOrig
7076 ExpectedException
7177 .when (() -> EqualsVerifier .forClass (IllegalStateExceptionThrower .class ).verify ())
7278 .assertMessageContains (IllegalStateExceptionThrower .class .getSimpleName ())
73- .assertMessageContains (SEE_ALSO , WEBSITE_URL , SUFFIX , "<no message>" )
79+ .assertMessageContains (SEE_ALSO , WEBSITE_URL , "<no message>" )
80+ .assertMessageMatches (SUFFIX )
7481 .assertMessageDoesNotContainAfterRemove ("EqualsVerifier null" , "null" )
7582 .assertCause (IllegalStateException .class );
7683 }
@@ -79,7 +86,8 @@ void messageIsValidAndDoesNotContainStringNull_whenEqualsVerifierFails_givenOrig
7986 void noStackOverflowErrorIsThrown_whenClassIsARecursiveDatastructure () {
8087 ExpectedException
8188 .when (() -> EqualsVerifier .forClass (Node .class ).verify ())
82- .assertMessageContains (Node .class .getSimpleName (), SEE_ALSO , WEBSITE_URL , SUFFIX )
89+ .assertMessageContains (Node .class .getSimpleName (), SEE_ALSO , WEBSITE_URL )
90+ .assertMessageMatches (SUFFIX )
8391 .assertNotCause (StackOverflowError .class );
8492 }
8593
0 commit comments