Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31df1a4a authored by Khaled Abdelmohsen's avatar Khaled Abdelmohsen Committed by Android (Google) Code Review
Browse files

Merge "Implement toString for rule components"

parents ddf2c33d 3f878cb5
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -112,6 +112,26 @@ public final class AtomicFormula extends Formula {
        return mBoolValue;
    }

    /**
     * Get string representation of the value of the key in the formula.
     *
     * @return string representation of the value of the key.
     */
    public String getValue() {
        if (mStringValue != null) {
            return mStringValue;
        }
        if (mIntValue != null) {
            return mIntValue.toString();
        }
        return mBoolValue.toString();
    }

    @Override
    public String toString() {
        return String.format("%s %s %s", mKey, mOperator, getValue());
    }

    private void validateOperator(Key key, Operator operator) {
        boolean validOperator;
        switch (key) {
+12 −0
Original line number Diff line number Diff line
@@ -52,6 +52,18 @@ public final class OpenFormula extends Formula {
        return mFormulas;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < mFormulas.size(); i++) {
            if (i > 0) {
                sb.append(String.format(" %s ", mConnector));
            }
            sb.append(mFormulas.get(i).toString());
        }
        return sb.toString();
    }

    private void validateFormulas(Connector connector, List<Formula> formulas) {
        switch (connector) {
            case AND:
+5 −0
Original line number Diff line number Diff line
@@ -61,4 +61,9 @@ public final class Rule {
    public Effect getEffect() {
        return mEffect;
    }

    @Override
    public String toString() {
        return String.format("Rule: %s, %s", mFormula, mEffect);
    }
}
+24 −5
Original line number Diff line number Diff line
@@ -25,13 +25,20 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

import java.util.Arrays;

@RunWith(JUnit4.class)
public class RuleTest {

    private static final Rule.Effect DENY_EFFECT = Rule.Effect.DENY;
    private static final Formula SIMPLE_FORMULA =
    private static final String PACKAGE_NAME = "com.test.app";
    private static final String APP_CERTIFICATE = "test_cert";
    private static final Formula PACKAGE_NAME_ATOMIC_FORMULA =
            new AtomicFormula(AtomicFormula.Key.PACKAGE_NAME, AtomicFormula.Operator.EQ,
                    "com.test.app");
                    PACKAGE_NAME);
    private static final Formula APP_CERTIFICATE_ATOMIC_FORMULA =
            new AtomicFormula(AtomicFormula.Key.APP_CERTIFICATE, AtomicFormula.Operator.EQ,
                    APP_CERTIFICATE);

    @Test
    public void testEmptyRule() {
@@ -43,9 +50,9 @@ public class RuleTest {

    @Test
    public void testValidRule() {
        Rule validRule = new Rule(SIMPLE_FORMULA, DENY_EFFECT);
        Rule validRule = new Rule(PACKAGE_NAME_ATOMIC_FORMULA, DENY_EFFECT);

        assertEquals(SIMPLE_FORMULA, validRule.getFormula());
        assertEquals(PACKAGE_NAME_ATOMIC_FORMULA, validRule.getFormula());
        assertEquals(DENY_EFFECT, validRule.getEffect());
    }

@@ -54,7 +61,7 @@ public class RuleTest {
        assertExpectException(
                NullPointerException.class,
                /* expectedExceptionMessageRegex */ null,
                () -> new Rule(SIMPLE_FORMULA, null));
                () -> new Rule(PACKAGE_NAME_ATOMIC_FORMULA, null));
    }

    @Test
@@ -64,4 +71,16 @@ public class RuleTest {
                /* expectedExceptionMessageRegex */ null,
                () -> new Rule(null, DENY_EFFECT));
    }

    @Test
    public void testToString() {
        OpenFormula openFormula = new OpenFormula(OpenFormula.Connector.AND,
                Arrays.asList(PACKAGE_NAME_ATOMIC_FORMULA, APP_CERTIFICATE_ATOMIC_FORMULA));
        Rule rule = new Rule(openFormula, Rule.Effect.DENY);

        String toString = rule.toString();

        assertEquals(String.format("Rule: PACKAGE_NAME EQ %s AND APP_CERTIFICATE EQ %s, DENY",
                PACKAGE_NAME, APP_CERTIFICATE), toString);
    }
}