comparison failure: match when one pattern per failure (IDEA-131329)

This commit is contained in:
Anna Kozlova
2018-01-04 16:41:53 +01:00
parent afc799b0b9
commit 87326679b3
4 changed files with 25 additions and 16 deletions
@@ -18,7 +18,6 @@ package com.intellij.rt.execution.testFrameworks;
import com.intellij.rt.execution.junit.ComparisonFailureData;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -33,8 +32,12 @@ public class AbstractExpectedPatterns {
protected static ComparisonFailureData createExceptionNotification(String message, List patterns) {
for (int i = 0; i < patterns.size(); i++) {
final Matcher matcher = ((Pattern)patterns.get(i)).matcher(message);
if (matcher.matches()) {
return new ComparisonFailureData(matcher.group(1).replaceAll("\\\\n", "\n"), matcher.group(2).replaceAll("\\\\n", "\n"));
if (matcher.find()) {
String expected = matcher.group(1).replaceAll("\\\\n", "\n");
String actual = matcher.group(2).replaceAll("\\\\n", "\n");
if (!matcher.find()) {
return new ComparisonFailureData(expected, actual);
}
}
}
return null;