@@ -44,6 +44,12 @@ static void assertThrowsWithMessage(String message, Class<? extends Throwable> c
4444 assertEquals (message , assertThrows (clazz , run ).getMessage ());
4545 }
4646
47+ static void assertThrowsWithMessageMatchRegex (String regex , Class <? extends Throwable > clazz , ThrowingRunnable run ) {
48+ assertTrue (assertThrows (clazz , run ).getMessage ().matches (regex ));
49+ }
50+
51+ private static final String ASSERT_MESSAGE_REGEX = "\n expected: (.*)\n \\ s*got: (.*)" ;
52+
4753 @ Test
4854 public void assertTestObserver () {
4955 Flowable <Integer > oi = Flowable .fromIterable (Arrays .asList (1 , 2 ));
@@ -999,7 +1005,7 @@ public void assertValueAtIndexMatch() {
9991005
10001006 @ Test
10011007 public void assertValueAtIndexNoMatch () {
1002- assertThrowsWithMessage ("Values at position 2 differ; \n expected: b (class: String)\n got: c (class: String) (latch = 0, values = 3, errors = 0, completions = 1)" , AssertionError .class , () -> {
1008+ assertThrowsWithMessage ("\n expected: b (class: String)\n got: c (class: String); Value at position 2 differ (latch = 0, values = 3, errors = 0, completions = 1)" , AssertionError .class , () -> {
10031009 TestObserver <String > to = new TestObserver <>();
10041010
10051011 Observable .just ("a" , "b" , "c" ).subscribe (to );
@@ -1008,6 +1014,105 @@ public void assertValueAtIndexNoMatch() {
10081014 });
10091015 }
10101016
1017+ @ Test
1018+ public void assertValueAtIndexThrowsMessageMatchRegex () {
1019+ assertThrowsWithMessageMatchRegex (ASSERT_MESSAGE_REGEX , AssertionError .class , () -> {
1020+ TestObserver <String > to = new TestObserver <>();
1021+
1022+ Observable .just ("a" , "b" , "c" ).subscribe (to );
1023+
1024+ to .assertValueAt (2 , "b" );
1025+ });
1026+ }
1027+
1028+ @ Test
1029+ public void assertValuesCountNoMatch () {
1030+ assertThrowsWithMessage ("\n expected: 2 [a, b]\n got: 3 [a, b, c]; Value count differs (latch = 0, values = 3, errors = 0, completions = 1)" , AssertionError .class , () -> {
1031+ TestObserver <String > to = new TestObserver <>();
1032+
1033+ Observable .just ("a" , "b" , "c" ).subscribe (to );
1034+
1035+ to .assertValues ("a" , "b" );
1036+ });
1037+ }
1038+
1039+ @ Test
1040+ public void assertValuesCountThrowsMessageMatchRegex () {
1041+ assertThrowsWithMessageMatchRegex (ASSERT_MESSAGE_REGEX , AssertionError .class , () -> {
1042+ TestObserver <String > to = new TestObserver <>();
1043+
1044+ Observable .just ("a" , "b" , "c" ).subscribe (to );
1045+
1046+ to .assertValues ("a" , "b" );
1047+ });
1048+ }
1049+
1050+ @ Test
1051+ public void assertValuesNoMatch () {
1052+ assertThrowsWithMessage ("\n expected: d (class: String)\n got: c (class: String); Value at position 2 differ (latch = 0, values = 3, errors = 0, completions = 1)" , AssertionError .class , () -> {
1053+ TestObserver <String > to = new TestObserver <>();
1054+
1055+ Observable .just ("a" , "b" , "c" ).subscribe (to );
1056+
1057+ to .assertValues ("a" , "b" , "d" );
1058+ });
1059+ }
1060+
1061+ @ Test
1062+ public void assertValuesThrowsMessageMatchRegex () {
1063+ assertThrowsWithMessageMatchRegex (ASSERT_MESSAGE_REGEX , AssertionError .class , () -> {
1064+ TestObserver <String > to = new TestObserver <>();
1065+
1066+ Observable .just ("a" , "b" , "c" ).subscribe (to );
1067+
1068+ to .assertValues ("a" , "b" , "d" );
1069+ });
1070+ }
1071+
1072+ @ Test
1073+ public void assertValueCountNoMatch () {
1074+ assertThrowsWithMessage ("\n expected: 2\n got: 3; Value counts differ (latch = 0, values = 3, errors = 0, completions = 1)" , AssertionError .class , () -> {
1075+ TestObserver <String > to = new TestObserver <>();
1076+
1077+ Observable .just ("a" , "b" , "c" ).subscribe (to );
1078+
1079+ to .assertValueCount (2 );
1080+ });
1081+ }
1082+
1083+ @ Test
1084+ public void assertValueCountThrowsMessageMatchRegex () {
1085+ assertThrowsWithMessageMatchRegex (ASSERT_MESSAGE_REGEX , AssertionError .class , () -> {
1086+ TestObserver <String > to = new TestObserver <>();
1087+
1088+ Observable .just ("a" , "b" , "c" ).subscribe (to );
1089+
1090+ to .assertValueCount (2 );
1091+ });
1092+ }
1093+
1094+ @ Test
1095+ public void assertValueSequenceNoMatch () {
1096+ assertThrowsWithMessage ("\n expected: d (class: String)\n got: c (class: String); Value at position 2 differ (latch = 0, values = 3, errors = 0, completions = 1)" , AssertionError .class , () -> {
1097+ TestObserver <String > to = new TestObserver <>();
1098+
1099+ Observable .just ("a" , "b" , "c" ).subscribe (to );
1100+
1101+ to .assertValueSequence (Arrays .asList ("a" , "b" , "d" ));
1102+ });
1103+ }
1104+
1105+ @ Test
1106+ public void assertValueSequenceThrowsMessageMatchRegex () {
1107+ assertThrowsWithMessageMatchRegex (ASSERT_MESSAGE_REGEX , AssertionError .class , () -> {
1108+ TestObserver <String > to = new TestObserver <>();
1109+
1110+ Observable .just ("a" , "b" , "c" ).subscribe (to );
1111+
1112+ to .assertValueSequence (Arrays .asList ("a" , "b" , "d" ));
1113+ });
1114+ }
1115+
10111116 @ Test
10121117 public void assertValueAtIndexInvalidIndex () {
10131118 assertThrowsWithMessage ("Index 2 is out of range [0, 2) (latch = 0, values = 2, errors = 0, completions = 1)" , AssertionError .class , () -> {
0 commit comments