Mostly javadoc, and also some fixes there and there

This commit is contained in:
2022-08-10 03:04:12 +02:00
parent f976350ee1
commit 54bc8ab99a
42 changed files with 1671 additions and 733 deletions

View File

@@ -0,0 +1,109 @@
package fr.pandacube.lib.permissions;
import fr.pandacube.lib.permissions.PermissionExpressionParser.LitteralPermissionTester;
import org.junit.Before;
import org.junit.Test;
import static fr.pandacube.lib.permissions.PermissionExpressionParser.evaluate;
import static org.junit.Assert.*;
public class PermissionExpressionParserTest {
java.util.List<String> pList = java.util.Arrays.asList("p1.cmd", "p1.toto", "p2.lol");
LitteralPermissionTester tester = p -> pList.contains(p);
@Test
public void evaluateTrue() {
assertTrue(evaluate("p1.cmd", tester));
}
@Test
public void evaluateFalse() {
assertFalse(evaluate("p1.notexist", tester));
}
@Test
public void evaluateNegateFalse() {
assertTrue(evaluate("!p1.notexist", tester));
}
@Test
public void evaluateNegateTrue() {
assertFalse(evaluate("!p1.cmd", tester));
}
@Test
public void evaluateRevNegateTrue() {
assertFalse(evaluate("p1.cmd!", tester));
}
@Test
public void evaluateOrBothTrue() {
assertTrue(evaluate("p1.cmd || p1.toto", tester));
}
@Test
public void evaluateOrTrueFalse() {
assertTrue(evaluate("p1.cmd || p1.notexist", tester));
}
@Test
public void evaluateOrFalseTrue() {
assertTrue(evaluate("p1.fefef || p2.lol", tester));
}
@Test
public void evaluateOrBothFalse() {
assertFalse(evaluate("p1.fefef || p2.lolilol", tester));
}
@Test
public void evaluateAndBothTrue() {
assertTrue(evaluate("p1.cmd && p1.toto", tester));
}
@Test
public void evaluateAndTrueFalse() {
assertFalse(evaluate("p1.cmd && p1.notexist", tester));
}
@Test
public void evaluateAndFalseTrue() {
assertFalse(evaluate("p1.fefef && p2.lol", tester));
}
@Test
public void evaluateAndBothFalse() {
assertFalse(evaluate("p1.fefef && p2.lolilol", tester));
}
@Test
public void evaluateAndTrueNegateTrueWithSomeExtraSpaces() {
assertFalse(evaluate("p1.cmd && !p1.toto ", tester));
}
@Test
public void evaluateAndNegateTrueTrueWithLotOfExtraSpaces() {
assertFalse(evaluate(" !p1.cmd && p1.toto ", tester));
}
@Test(expected = IllegalArgumentException.class)
public void evaluateBadSyntax1() {
evaluate("p1.cmd! p2.lol", tester);
}
@Test(expected = IllegalArgumentException.class)
public void evaluateBadSyntax2() {
evaluate("!p1.cmd & p1.toto", tester);
}
@Test(expected = IllegalArgumentException.class)
public void evaluateBadSyntax3() {
evaluate("!p1.cmd | p1.toto", tester);
}
@Test(expected = IllegalArgumentException.class)
public void evaluateBadSyntax4() {
evaluate("p1.not exist", tester);
}
}