implemented changes mentioned by overheadhunter

This commit is contained in:
Jan-Peter Klein
2023-06-16 11:13:24 +02:00
parent f92c436339
commit 3bf4473f9d
2 changed files with 84 additions and 88 deletions

View File

@@ -4,6 +4,7 @@ import org.cryptomator.common.Environment;
import org.cryptomator.common.ErrorCode;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.mockito.Mockito;
@@ -44,88 +45,101 @@ class ErrorControllerTest {
return ed;
}
@DisplayName("compare error discussions by upvote count")
@ParameterizedTest
@CsvSource(textBlock = """
10, 5, -1
8, 15, 1
10, 10, 0
10, <, 5
8, >, 15
10, =, 10
""")
public void testCompareUpvoteCount(int leftUpvoteCount, int rightUpvoteCount, int expectedResult) {
public void testCompareUpvoteCount(int leftUpvoteCount, char expected, int rightUpvoteCount) {
int expectedResult = switch (expected) {
case '<' -> -1;
case '>' -> +1;
default -> 0;
};
var left = createErrorDiscussion("", leftUpvoteCount, null);
var right = createErrorDiscussion("", rightUpvoteCount, null);
int result = errorController.compareUpvoteCount(left, right);
Assertions.assertEquals(expectedResult, Integer.signum(result));
}
@DisplayName("compare error discussions by existence of an answer")
@ParameterizedTest
@CsvSource(textBlock = """
false, false, 0
true, true, 0
true, false, -1
false, true, 1
false, =, false
true, =, true
true, <, false
false, >, true
""")
public void testCompareIsAnswered(boolean leftIsAnswered, boolean rightIsAnswered, int expectedResult) {
public void testCompareIsAnswered(boolean leftIsAnswered, char expected, boolean rightIsAnswered) {
var answer = new ErrorDiscussion.Answer();
int expectedResult = switch (expected) {
case '<' -> -1;
case '>' -> +1;
default -> 0;
};
var left = createErrorDiscussion("", 0, leftIsAnswered ? answer : null);
var right = createErrorDiscussion("", 0, rightIsAnswered ? answer : null);
int result = errorController.compareIsAnswered(left, right);
Assertions.assertEquals(expectedResult, result);
}
@DisplayName("compare error codes by full error code")
@ParameterizedTest
@CsvSource(textBlock = """
Error 0000:0000:0000, Error 0000:0000:0000, 0
Error 6HU1:12H1:HU7J, Error 0000:0000:0000, -1
Error 0000:0000:0000, Error 6HU1:12H1:HU7J, 1
Error 0000:0000:0000, =, Error 0000:0000:0000
Error 6HU1:12H1:HU7J, <, Error 0000:0000:0000
Error 0000:0000:0000, >, Error 6HU1:12H1:HU7J
""")
public void testCompareExactMatch(String leftTitle, String rightTitle, int expectedResult) {
public void testCompareByFullErrorCode(String leftTitle, char expected, String rightTitle) {
Mockito.when(errorCode.toString()).thenReturn("6HU1:12H1:HU7J");
int expectedResult = switch (expected) {
case '<' -> -1;
case '>' -> +1;
default -> 0;
};
var left = createErrorDiscussion(leftTitle, 0, null);
var right = createErrorDiscussion(rightTitle, 0, null);
int result = errorController.compareExactMatch(left, right);
int result = errorController.compareByFullErrorCode(left, right);
Assertions.assertEquals(expectedResult, result);
}
@DisplayName("compare error codes by root cause")
@ParameterizedTest
@CsvSource(textBlock = """
Error 6HU1:12H1:0000, Error 6HU1:12H1:0000, 0
Error 0000:0000:0000, Error 0000:0000:0000, 0
Error 6HU1:12H1:0000, Error 0000:0000:0000, -1
Error 0000:0000:0000, Error 6HU1:12H1:0000, 1
Error 6HU1:12H1:0000, =, Error 6HU1:12H1:0000
Error 6HU1:12H1:0007, =, Error 6HU1:12H1:0042
Error 0000:0000:0000, =, Error 0000:0000:0000
Error 6HU1:12H1:0000, <, Error 0000:0000:0000
Error 6HU1:12H1:0000, <, Error 6HU1:0000:0000
Error 0000:0000:0000, >, Error 6HU1:12H1:0000
Error 6HU1:0000:0000, >, Error 6HU1:12H1:0000
""")
public void testCompareSecondLevelMatch(String leftTitle, String rightTitle, int expectedResult) {
public void testCompareByRootCauseCode(String leftTitle, char expected, String rightTitle) {
Mockito.when(errorCode.methodCode()).thenReturn("6HU1");
Mockito.when(errorCode.rootCauseCode()).thenReturn("12H1");
int expectedResult = switch (expected) {
case '<' -> -1;
case '>' -> +1;
default -> 0;
};
var left = createErrorDiscussion(leftTitle, 0, null);
var right = createErrorDiscussion(rightTitle, 0, null);
int result = errorController.compareSecondLevelMatch(left, right);
Assertions.assertEquals(expectedResult, result);
}
@ParameterizedTest
@CsvSource(textBlock = """
Error 6HU1:0000:0000, Error 6HU1:0000:0000, 0
Error 0000:0000:0000, Error 0000:0000:0000, 0
Error 6HU1:0000:0000, Error 0000:0000:0000, -1
Error 0000:0000:0000, Error 6HU1:0000:0000, 1
""")
public void testCompareThirdLevelMatch(String leftTitle, String rightTitle, int expectedResult) {
Mockito.when(errorCode.methodCode()).thenReturn("6HU1");
var left = createErrorDiscussion(leftTitle, 0, null);
var right = createErrorDiscussion(rightTitle, 0, null);
int result = errorController.compareThirdLevelMatch(left, right);
int result = errorController.compareByRootCauseCode(left, right);
Assertions.assertEquals(expectedResult, result);
}
@DisplayName("check if the error code contains the method code")
@ParameterizedTest
@CsvSource(textBlock = """
Error 6HU1:0000:0000, true
Error 0000:0000:0000, false
""")
public void testIsPartialMatchFilter(String title, boolean expectedResult) {
public void testContainsMethodCode(String title, boolean expectedResult) {
Mockito.when(errorCode.methodCode()).thenReturn("6HU1");
var ed = createErrorDiscussion(title, 0, null);
boolean result = errorController.isPartialMatchFilter(ed);
boolean result = errorController.containsMethodCode(ed);
Assertions.assertEquals(expectedResult, result);
}
}