diff options
author | 2017-03-20 23:30:12 +0000 | |
---|---|---|
committer | 2017-03-21 12:52:39 +0000 | |
commit | 5ad10d11a90afe19d50a68cb72b861508362e14b (patch) | |
tree | 3c432a41394a06d63e1926facb1bc62860854bb0 /src/test/java | |
parent | e51ad2fdc7dcb92bfa5127ec04a15b9656db8801 (diff) |
Clean up InvocationPolicyEnforcerTest.
Remove magic constants and convert to Truth.
--
PiperOrigin-RevId: 150692720
MOS_MIGRATED_REVID=150692720
Diffstat (limited to 'src/test/java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java | 737 |
1 files changed, 413 insertions, 324 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java index 02bd62da98..e70342b605 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/InvocationPolicyEnforcerTest.java @@ -15,9 +15,6 @@ package com.google.devtools.build.lib.runtime; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import com.google.common.collect.ImmutableSet; @@ -42,7 +39,15 @@ import org.junit.runners.JUnit4; @RunWith(JUnit4.class) public class InvocationPolicyEnforcerTest { - public static final String STRING_FLAG_DEFAULT = "test string default"; + // Useful constants + public static final String BUILD_COMMAND = "build"; + public static final String TEST_STRING_USER_VALUE = "user value"; + public static final String TEST_STRING_USER_VALUE_2 = "user value 2"; + public static final String TEST_STRING_POLICY_VALUE = "policy value"; + public static final String TEST_STRING_POLICY_VALUE_2 = "policy value 2"; + public static final String FILTERED_VALUE_1 = "foo"; + public static final String FILTERED_VALUE_2 = "bar"; + public static final String UNFILTERED_VALUE = "baz"; /** Test converter that splits a string by commas to produce a list. */ public static class ToListConverter implements Converter<List<String>> { @@ -66,7 +71,8 @@ public class InvocationPolicyEnforcerTest { * Basic types */ - @Option(name = "test_string", defaultValue = STRING_FLAG_DEFAULT) + public static final String TEST_STRING_DEFAULT = "test string default"; + @Option(name = "test_string", defaultValue = TEST_STRING_DEFAULT) public String testString; /* @@ -74,9 +80,10 @@ public class InvocationPolicyEnforcerTest { */ @Option( - name = "test_multiple_string", - defaultValue = "", // default value is ignored when allowMultiple = true. - allowMultiple = true) + name = "test_multiple_string", + defaultValue = "", // default value is ignored when allowMultiple=true. + allowMultiple = true + ) public List<String> testMultipleString; /* @@ -95,17 +102,28 @@ public class InvocationPolicyEnforcerTest { * Expansion flags */ + public static final boolean EXPANDED_A_TEST_EXPANSION = false; + public static final boolean EXPANDED_B_TEST_EXPANSION = false; + public static final int EXPANDED_C_TEST_EXPANSION = 42; + public static final String EXPANDED_D_TEST_EXPANSION = "bar"; @Option( - name = "test_expansion", - defaultValue = "null", - expansion = { - "--notest_expansion_a", - "--test_expansion_b=false", - "--test_expansion_c", "42", - "--test_expansion_d", "bar" - }) + name = "test_expansion", + defaultValue = "null", + expansion = { + "--noexpanded_a", + "--expanded_b=false", + "--expanded_c", + "42", + "--expanded_d", + "bar" + } + ) public Void testExpansion; + public static final boolean EXPANDED_A_TEST_RECURSIVE_EXPANSION = false; + public static final boolean EXPANDED_B_TEST_RECURSIVE_EXPANSION = false; + public static final int EXPANDED_C_TEST_RECURSIVE_EXPANSION = 56; + public static final String EXPANDED_D_TEST_RECURSIVE_EXPANSION = "baz"; @Option( name = "test_recursive_expansion_top_level", defaultValue = "null", @@ -116,54 +134,65 @@ public class InvocationPolicyEnforcerTest { public Void testRecursiveExpansionTopLevel; @Option( - name = "test_recursive_expansion_middle1", - defaultValue = "null", - expansion = { - "--test_expansion_a=false", - "--test_expansion_c=56", - }) + name = "test_recursive_expansion_middle1", + defaultValue = "null", + expansion = { + "--expanded_a=false", + "--expanded_c=56", + } + ) public Void testRecursiveExpansionMiddle1; @Option( - name = "test_recursive_expansion_middle2", - defaultValue = "null", - expansion = { - "--test_expansion_b=false", - "--test_expansion_d=baz", - }) + name = "test_recursive_expansion_middle2", + defaultValue = "null", + expansion = { + "--expanded_b=false", + "--expanded_d=baz", + } + ) public Void testRecursiveExpansionMiddle2; - @Option(name = "test_expansion_a", defaultValue = "true") - public boolean testExpansionA; + public static final boolean EXPANDED_A_DEFAULT = true; + @Option(name = "expanded_a", defaultValue = "true") + public boolean expandedA; - @Option(name = "test_expansion_b", defaultValue = "true") - public boolean testExpansionB; + public static final boolean EXPANDED_B_DEFAULT = true; + @Option(name = "expanded_b", defaultValue = "true") + public boolean expandedB; - @Option(name = "test_expansion_c", defaultValue = "12") - public int testExpansionC; + public static final int EXPANDED_C_DEFAULT = 12; + @Option(name = "expanded_c", defaultValue = "12") + public int expandedC; - @Option(name = "test_expansion_d", defaultValue = "foo") - public String testExpansionD; + public static final String EXPANDED_D_DEFAULT = "foo"; + @Option(name = "expanded_d", defaultValue = "foo") + public String expandedD; /* * Implicit requirement flags */ + public static final String TEST_IMPLICIT_REQUIREMENT_DEFAULT = "direct implicit"; + public static final String IMPLICIT_REQUIREMENT_A_REQUIRED = "implicit requirement, required"; @Option( - name = "test_implicit_requirement", - defaultValue = "test implicit requirement default", - implicitRequirements = {"--an_implicit_requirement=foo"}) + name = "test_implicit_requirement", + defaultValue = TEST_IMPLICIT_REQUIREMENT_DEFAULT, + implicitRequirements = {"--implicit_requirement_a=" + IMPLICIT_REQUIREMENT_A_REQUIRED} + ) public String testImplicitRequirement; - @Option( - name = "an_implicit_requirement", - defaultValue = "implicit default") - public String anImplicitRequirement; + public static final String IMPLICIT_REQUIREMENT_A_DEFAULT = "implicit requirement, unrequired"; + @Option(name = "implicit_requirement_a", defaultValue = IMPLICIT_REQUIREMENT_A_DEFAULT) + public String implicitRequirementA; + public static final String TEST_RECURSIVE_IMPLICIT_REQUIREMENT_DEFAULT = "recursive implicit"; + public static final String TEST_IMPLICIT_REQUIREMENT_REQUIRED = "intermediate, required"; @Option( - name = "test_recursive_implicit_requirement", - defaultValue = "test recursive implicit requirement default", - implicitRequirements = {"--test_implicit_requirement=bar"}) + name = "test_recursive_implicit_requirement", + defaultValue = TEST_RECURSIVE_IMPLICIT_REQUIREMENT_DEFAULT, + implicitRequirements = {"--test_implicit_requirement=" + TEST_IMPLICIT_REQUIREMENT_REQUIRED} + ) public String testRecursiveImplicitRequirement; } @@ -221,22 +250,23 @@ public class InvocationPolicyEnforcerTest { @Test public void testSetValueOverridesUser() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getSetValueBuilder() - .addFlagValue("policy value"); + .addFlagValue(TEST_STRING_POLICY_VALUE); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=user value"); + parser.parse("--test_string=" + TEST_STRING_USER_VALUE); TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Get the options again after policy enforcement. testOptions = getTestOptions(); - assertEquals("policy value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_POLICY_VALUE); } /** @@ -246,23 +276,24 @@ public class InvocationPolicyEnforcerTest { @Test public void testSetValueOverridesDefault() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getSetValueBuilder() - .addFlagValue("policy value"); + .addFlagValue(TEST_STRING_POLICY_VALUE); // No user value. InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); // All the flags should be their default value. TestOptions testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Get the options again after policy enforcement. testOptions = getTestOptions(); - assertEquals("policy value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_POLICY_VALUE); } /** @@ -271,26 +302,31 @@ public class InvocationPolicyEnforcerTest { @Test public void testSetValueWithMultipleValuesOverridesUser() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_multiple_string") .getSetValueBuilder() - .addFlagValue("policy value 1") - .addFlagValue("policy value 2"); + .addFlagValue(TEST_STRING_POLICY_VALUE) + .addFlagValue(TEST_STRING_POLICY_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_multiple_string=user value 1", "--test_multiple_string=user value 2"); + parser.parse( + "--test_multiple_string=" + TEST_STRING_USER_VALUE, + "--test_multiple_string=" + TEST_STRING_USER_VALUE_2); // Options should not be modified by running the parser through OptionsPolicyEnforcer.create(). TestOptions testOptions = getTestOptions(); assertThat(testOptions.testMultipleString) - .containsExactly("user value 1", "user value 2").inOrder(); + .containsExactly(TEST_STRING_USER_VALUE, TEST_STRING_USER_VALUE_2) + .inOrder(); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Get the options again after policy enforcement. testOptions = getTestOptions(); assertThat(testOptions.testMultipleString) - .containsExactly("policy value 1", "policy value 2").inOrder(); + .containsExactly(TEST_STRING_POLICY_VALUE, TEST_STRING_POLICY_VALUE_2) + .inOrder(); } /** @@ -300,11 +336,12 @@ public class InvocationPolicyEnforcerTest { @Test public void testSetValueWithMultipleValuesOverridesDefault() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_multiple_string") .getSetValueBuilder() - .addFlagValue("policy value 1") - .addFlagValue("policy value 2"); + .addFlagValue(TEST_STRING_POLICY_VALUE) + .addFlagValue(TEST_STRING_POLICY_VALUE_2); // No user value. InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); @@ -313,27 +350,29 @@ public class InvocationPolicyEnforcerTest { TestOptions testOptions = getTestOptions(); assertThat(testOptions.testMultipleString).isEmpty(); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Options should now be the values from the policy. testOptions = getTestOptions(); assertThat(testOptions.testMultipleString) - .containsExactly("policy value 1", "policy value 2").inOrder(); + .containsExactly(TEST_STRING_POLICY_VALUE, TEST_STRING_POLICY_VALUE_2) + .inOrder(); } @Test public void testSetValueHasMultipleValuesButFlagIsNotMultiple() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") // Not repeatable flag. .getSetValueBuilder() - .addFlagValue("policy value 1") // Has multiple values. - .addFlagValue("policy value 2"); + .addFlagValue(TEST_STRING_POLICY_VALUE) // Has multiple values. + .addFlagValue(TEST_STRING_POLICY_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { // expected. @@ -343,31 +382,36 @@ public class InvocationPolicyEnforcerTest { @Test public void testSetValueAppendsToMultipleValuedFlag() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_multiple_string") .getSetValueBuilder() - .addFlagValue("policy value 1") - .addFlagValue("policy value 2") - .setAppend(true); + .addFlagValue(TEST_STRING_POLICY_VALUE) + .addFlagValue(TEST_STRING_POLICY_VALUE_2) + .setAppend(true); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_multiple_string=user value 1", "--test_multiple_string=user value 2"); + parser.parse( + "--test_multiple_string=" + TEST_STRING_USER_VALUE, + "--test_multiple_string=" + TEST_STRING_USER_VALUE_2); // Options should not be modified by running the parser through OptionsPolicyEnforcer.create(). TestOptions testOptions = getTestOptions(); assertThat(testOptions.testMultipleString) - .containsExactly("user value 1", "user value 2").inOrder(); + .containsExactly(TEST_STRING_USER_VALUE, TEST_STRING_USER_VALUE_2) + .inOrder(); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Get the options again after policy enforcement. testOptions = getTestOptions(); assertThat(testOptions.testMultipleString) .containsExactly( - "user value 1", - "user value 2", - "policy value 1", - "policy value 2").inOrder(); + TEST_STRING_USER_VALUE, + TEST_STRING_USER_VALUE_2, + TEST_STRING_POLICY_VALUE, + TEST_STRING_POLICY_VALUE_2) + .inOrder(); } @Test @@ -380,98 +424,102 @@ public class InvocationPolicyEnforcerTest { InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); // Unrelated flag, but --test_expansion is not set - parser.parse("--test_string=foo"); + parser.parse("--test_string=throwaway value"); // The flags that --test_expansion expands into should still be their default values TestOptions testOptions = getTestOptions(); - assertTrue(testOptions.testExpansionA); - assertTrue(testOptions.testExpansionB); - assertEquals(12, testOptions.testExpansionC); - assertEquals("foo", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_DEFAULT); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_DEFAULT); + assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_DEFAULT); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_DEFAULT); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // After policy enforcement, the flags should be the values from --test_expansion testOptions = getTestOptions(); - assertFalse(testOptions.testExpansionA); - assertFalse(testOptions.testExpansionB); - assertEquals(42, testOptions.testExpansionC); - assertEquals("bar", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_TEST_EXPANSION); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_TEST_EXPANSION); + assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_TEST_EXPANSION); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_TEST_EXPANSION); } @Test public void testSetValueWithExpandedFlags() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() - .setFlagName("test_expansion_c") + invocationPolicyBuilder + .addFlagPoliciesBuilder() + .setFlagName("expanded_c") .getSetValueBuilder() - .addFlagValue("64"); + .addFlagValue("64"); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); parser.parse("--test_expansion"); // --test_expansion should set the values from its expansion TestOptions testOptions = getTestOptions(); - assertFalse(testOptions.testExpansionA); - assertFalse(testOptions.testExpansionB); - assertEquals(42, testOptions.testExpansionC); - assertEquals("bar", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_TEST_EXPANSION); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_TEST_EXPANSION); + assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_TEST_EXPANSION); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_TEST_EXPANSION); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); - // After policy enforcement, test_expansion_c should be set to 64 from the policy, but the + // After policy enforcement, expanded_c should be set to 64 from the policy, but the // flags should remain the same from the expansion of --test_expansion. testOptions = getTestOptions(); - assertFalse(testOptions.testExpansionA); - assertFalse(testOptions.testExpansionB); - assertEquals(64, testOptions.testExpansionC); - assertEquals("bar", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_TEST_EXPANSION); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_TEST_EXPANSION); + assertThat(testOptions.expandedC).isEqualTo(64); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_TEST_EXPANSION); } @Test public void testSetValueWithImplicitlyRequiredFlags() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() - .setFlagName("an_implicit_requirement") + invocationPolicyBuilder + .addFlagPoliciesBuilder() + .setFlagName("implicit_requirement_a") .getSetValueBuilder() - .addFlagValue("policy value"); + .addFlagValue(TEST_STRING_POLICY_VALUE); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_implicit_requirement=user value"); + parser.parse("--test_implicit_requirement=" + TEST_STRING_USER_VALUE); - // test_implicit_requirement sets an_implicit_requirement to "foo" + // test_implicit_requirement sets implicit_requirement_a to "foo" TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testImplicitRequirement); - assertEquals("foo", testOptions.anImplicitRequirement); + assertThat(testOptions.testImplicitRequirement).isEqualTo(TEST_STRING_USER_VALUE); + assertThat(testOptions.implicitRequirementA) + .isEqualTo(TestOptions.IMPLICIT_REQUIREMENT_A_REQUIRED); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); testOptions = getTestOptions(); - assertEquals("user value", testOptions.testImplicitRequirement); - assertEquals("policy value", testOptions.anImplicitRequirement); + assertThat(testOptions.testImplicitRequirement).isEqualTo(TEST_STRING_USER_VALUE); + assertThat(testOptions.implicitRequirementA).isEqualTo(TEST_STRING_POLICY_VALUE); } @Test public void testSetValueOverridable() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getSetValueBuilder() - .addFlagValue("policy value") - .setOverridable(true); + .addFlagValue(TEST_STRING_POLICY_VALUE) + .setOverridable(true); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=user value"); + parser.parse("--test_string=" + TEST_STRING_USER_VALUE); TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Even though the policy sets the value for test_string, the policy is overridable and the // user set the value, so it should be the user's value. testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); } @Test @@ -482,13 +530,13 @@ public class InvocationPolicyEnforcerTest { .getSetValueBuilder(); // No value. InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=user value"); + parser.parse("--test_string=" + TEST_STRING_USER_VALUE); TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { // expected. @@ -507,18 +555,18 @@ public class InvocationPolicyEnforcerTest { .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=user value"); + parser.parse("--test_string=" + TEST_STRING_USER_VALUE); // Options should be the user specified value before enforcing policy. TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Get the options again after policy enforcement: The flag should now be back to its default // value testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); } /** @@ -535,13 +583,13 @@ public class InvocationPolicyEnforcerTest { // Options should be the default since the user never specified it. TestOptions testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Still the default. testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); } @Test @@ -555,20 +603,20 @@ public class InvocationPolicyEnforcerTest { parser.parse("--test_expansion"); TestOptions testOptions = getTestOptions(); - assertFalse(testOptions.testExpansionA); - assertFalse(testOptions.testExpansionB); - assertEquals(42, testOptions.testExpansionC); - assertEquals("bar", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_TEST_EXPANSION); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_TEST_EXPANSION); + assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_TEST_EXPANSION); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_TEST_EXPANSION); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // After policy enforcement, all the flags that --test_expansion expanded into should be back // to their default values. testOptions = getTestOptions(); - assertTrue(testOptions.testExpansionA); - assertTrue(testOptions.testExpansionB); - assertEquals(12, testOptions.testExpansionC); - assertEquals("foo", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_DEFAULT); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_DEFAULT); + assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_DEFAULT); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_DEFAULT); } @Test @@ -582,27 +630,28 @@ public class InvocationPolicyEnforcerTest { parser.parse("--test_recursive_expansion_top_level"); TestOptions testOptions = getTestOptions(); - assertFalse(testOptions.testExpansionA); - assertFalse(testOptions.testExpansionB); - assertEquals(56, testOptions.testExpansionC); - assertEquals("baz", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_TEST_RECURSIVE_EXPANSION); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_TEST_RECURSIVE_EXPANSION); + assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_TEST_RECURSIVE_EXPANSION); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_TEST_RECURSIVE_EXPANSION); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // After policy enforcement, all the flags that --test_recursive_expansion_top_level and its // recursive expansions set should be back to their default values. testOptions = getTestOptions(); - assertTrue(testOptions.testExpansionA); - assertTrue(testOptions.testExpansionB); - assertEquals(12, testOptions.testExpansionC); - assertEquals("foo", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_DEFAULT); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_DEFAULT); + assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_DEFAULT); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_DEFAULT); } @Test public void testUseDefaultWithExpandedFlags() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() - .setFlagName("test_expansion_b") + invocationPolicyBuilder + .addFlagPoliciesBuilder() + .setFlagName("expanded_b") .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); @@ -610,20 +659,20 @@ public class InvocationPolicyEnforcerTest { // --test_expansion should turn set the values from its expansion TestOptions testOptions = getTestOptions(); - assertFalse(testOptions.testExpansionA); - assertFalse(testOptions.testExpansionB); - assertEquals(42, testOptions.testExpansionC); - assertEquals("bar", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_TEST_EXPANSION); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_TEST_EXPANSION); + assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_TEST_EXPANSION); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_TEST_EXPANSION); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); - // After policy enforcement, test_expansion_b should be back to its default (true), but the + // After policy enforcement, expanded_b should be back to its default (true), but the // rest should remain the same. testOptions = getTestOptions(); - assertFalse(testOptions.testExpansionA); - assertTrue(testOptions.testExpansionB); - assertEquals(42, testOptions.testExpansionC); - assertEquals("bar", testOptions.testExpansionD); + assertThat(testOptions.expandedA).isEqualTo(TestOptions.EXPANDED_A_TEST_EXPANSION); + assertThat(testOptions.expandedB).isEqualTo(TestOptions.EXPANDED_B_DEFAULT); + assertThat(testOptions.expandedC).isEqualTo(TestOptions.EXPANDED_C_TEST_EXPANSION); + assertThat(testOptions.expandedD).isEqualTo(TestOptions.EXPANDED_D_TEST_EXPANSION); } @Test @@ -634,45 +683,52 @@ public class InvocationPolicyEnforcerTest { .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_implicit_requirement=user value"); + parser.parse("--test_implicit_requirement=" + TEST_STRING_USER_VALUE); - // test_implicit_requirement sets an_implicit_requirement to "foo", which ignores the user's + // test_implicit_requirement sets implicit_requirement_a to "foo", which ignores the user's // value because the parser processes implicit values last. TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testImplicitRequirement); - assertEquals("foo", testOptions.anImplicitRequirement); + assertThat(testOptions.testImplicitRequirement).isEqualTo(TEST_STRING_USER_VALUE); + assertThat(testOptions.implicitRequirementA) + .isEqualTo(TestOptions.IMPLICIT_REQUIREMENT_A_REQUIRED); // Then policy puts test_implicit_requirement and its implicit requirements back to its default. - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); testOptions = getTestOptions(); - assertEquals("test implicit requirement default", testOptions.testImplicitRequirement); - assertEquals("implicit default", testOptions.anImplicitRequirement); + assertThat(testOptions.testImplicitRequirement) + .isEqualTo(TestOptions.TEST_IMPLICIT_REQUIREMENT_DEFAULT); + assertThat(testOptions.implicitRequirementA) + .isEqualTo(TestOptions.IMPLICIT_REQUIREMENT_A_DEFAULT); } @Test public void testUseDefaultWithImplicitlyRequiredFlag() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() - .setFlagName("an_implicit_requirement") + invocationPolicyBuilder + .addFlagPoliciesBuilder() + .setFlagName("implicit_requirement_a") .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_implicit_requirement=user value", - "--an_implicit_requirement=implicit user value"); + parser.parse( + "--test_implicit_requirement=" + TEST_STRING_USER_VALUE, + "--implicit_requirement_a=thrownaway value"); - // test_implicit_requirement sets an_implicit_requirement to "foo", which ignores the user's + // test_implicit_requirement sets implicit_requirement_a to "foo", which ignores the user's // value because the parser processes implicit values last. TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testImplicitRequirement); - assertEquals("foo", testOptions.anImplicitRequirement); + assertThat(testOptions.testImplicitRequirement).isEqualTo(TEST_STRING_USER_VALUE); + assertThat(testOptions.implicitRequirementA) + .isEqualTo(TestOptions.IMPLICIT_REQUIREMENT_A_REQUIRED); - // Then policy puts an_implicit_requirement back to its default. - enforcer.enforce(parser, "build"); + // Then policy puts implicit_requirement_a back to its default. + enforcer.enforce(parser, BUILD_COMMAND); testOptions = getTestOptions(); - assertEquals("user value", testOptions.testImplicitRequirement); - assertEquals("implicit default", testOptions.anImplicitRequirement); + assertThat(testOptions.testImplicitRequirement).isEqualTo(TEST_STRING_USER_VALUE); + assertThat(testOptions.implicitRequirementA) + .isEqualTo(TestOptions.IMPLICIT_REQUIREMENT_A_DEFAULT); } @Test @@ -683,24 +739,28 @@ public class InvocationPolicyEnforcerTest { .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_recursive_implicit_requirement=user value"); + parser.parse("--test_recursive_implicit_requirement=" + TEST_STRING_USER_VALUE); // test_recursive_implicit_requirement gets its value from the command line, // test_implicit_requirement gets its value from test_recursive_implicit_requirement, and - // an_implicit_requirement gets its value from test_implicit_requirement. + // implicit_requirement_a gets its value from test_implicit_requirement. TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testRecursiveImplicitRequirement); - assertEquals("bar", testOptions.testImplicitRequirement); - assertEquals("foo", testOptions.anImplicitRequirement); + assertThat(testOptions.testRecursiveImplicitRequirement).isEqualTo(TEST_STRING_USER_VALUE); + assertThat(testOptions.testImplicitRequirement) + .isEqualTo(TestOptions.TEST_IMPLICIT_REQUIREMENT_REQUIRED); + assertThat(testOptions.implicitRequirementA) + .isEqualTo(TestOptions.IMPLICIT_REQUIREMENT_A_REQUIRED); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Policy enforcement should set everything back to its default value. testOptions = getTestOptions(); - assertEquals("test recursive implicit requirement default", - testOptions.testRecursiveImplicitRequirement); - assertEquals("test implicit requirement default", testOptions.testImplicitRequirement); - assertEquals("implicit default", testOptions.anImplicitRequirement); + assertThat(testOptions.testRecursiveImplicitRequirement) + .isEqualTo(TestOptions.TEST_RECURSIVE_IMPLICIT_REQUIREMENT_DEFAULT); + assertThat(testOptions.testImplicitRequirement) + .isEqualTo(TestOptions.TEST_IMPLICIT_REQUIREMENT_DEFAULT); + assertThat(testOptions.implicitRequirementA) + .isEqualTo(TestOptions.IMPLICIT_REQUIREMENT_A_DEFAULT); } /************************************************************************************************* @@ -714,47 +774,49 @@ public class InvocationPolicyEnforcerTest { @Test public void testAllowValuesAllowsValue() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getAllowValuesBuilder() - .addAllowedValues(STRING_FLAG_DEFAULT) - .addAllowedValues("foo") - .addAllowedValues("bar"); + .addAllowedValues(TestOptions.TEST_STRING_DEFAULT) + .addAllowedValues(FILTERED_VALUE_1) + .addAllowedValues(FILTERED_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=foo"); + parser.parse("--test_string=" + FILTERED_VALUE_1); // Option should be "foo" as specified by the user. TestOptions testOptions = getTestOptions(); - assertEquals("foo", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(FILTERED_VALUE_1); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Still "foo" since "foo" is allowed by the policy. testOptions = getTestOptions(); - assertEquals("foo", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(FILTERED_VALUE_1); } @Test public void testAllowValuesDisallowsValue() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getAllowValuesBuilder() - // no foo! - .addAllowedValues(STRING_FLAG_DEFAULT) - .addAllowedValues("bar"); + // no foo! + .addAllowedValues(TestOptions.TEST_STRING_DEFAULT) + .addAllowedValues(FILTERED_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=foo"); + parser.parse("--test_string=" + FILTERED_VALUE_1); // Option should be "foo" as specified by the user. TestOptions testOptions = getTestOptions(); - assertEquals("foo", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(FILTERED_VALUE_1); try { // Should throw because "foo" is not allowed. - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { // expected @@ -764,21 +826,25 @@ public class InvocationPolicyEnforcerTest { @Test public void testAllowValuesDisallowsMultipleValues() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_multiple_string") .getAllowValuesBuilder() - .addAllowedValues("foo") - .addAllowedValues("bar"); + .addAllowedValues(FILTERED_VALUE_1) + .addAllowedValues(FILTERED_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_multiple_string=baz", "--test_multiple_string=bar"); + parser.parse( + "--test_multiple_string=" + UNFILTERED_VALUE, "--test_multiple_string=" + FILTERED_VALUE_2); // Option should be "baz" and "bar" as specified by the user. TestOptions testOptions = getTestOptions(); - assertThat(testOptions.testMultipleString).containsExactly("baz", "bar").inOrder(); + assertThat(testOptions.testMultipleString) + .containsExactly(UNFILTERED_VALUE, FILTERED_VALUE_2) + .inOrder(); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { // expected, since baz is not allowed. @@ -788,64 +854,70 @@ public class InvocationPolicyEnforcerTest { @Test public void testAllowValuesSetsNewValue() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getAllowValuesBuilder() - .addAllowedValues("foo") - .addAllowedValues("bar") - .setNewValue("foo"); + .addAllowedValues(FILTERED_VALUE_1) + .addAllowedValues(FILTERED_VALUE_2) + .setNewValue(FILTERED_VALUE_1); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=baz"); + parser.parse("--test_string=" + UNFILTERED_VALUE); TestOptions testOptions = getTestOptions(); - assertEquals("baz", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(UNFILTERED_VALUE); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); testOptions = getTestOptions(); - assertEquals("foo", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(FILTERED_VALUE_1); } @Test public void testAllowValuesSetsDefaultValue() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getAllowValuesBuilder() - .addAllowedValues("foo") - .addAllowedValues(STRING_FLAG_DEFAULT) - .getUseDefaultBuilder(); + .addAllowedValues(FILTERED_VALUE_1) + .addAllowedValues(TestOptions.TEST_STRING_DEFAULT) + .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=bar"); + parser.parse("--test_string=" + UNFILTERED_VALUE); TestOptions testOptions = getTestOptions(); - assertEquals("bar", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(UNFILTERED_VALUE); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); } @Test public void testAllowValuesSetsDefaultValueForRepeatableFlag() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_multiple_string") .getAllowValuesBuilder() - .addAllowedValues("foo") - .addAllowedValues("bar") - .getUseDefaultBuilder(); + .addAllowedValues(FILTERED_VALUE_1) + .addAllowedValues(FILTERED_VALUE_2) + .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_multiple_string=foo", "--test_multiple_string=baz"); + parser.parse( + "--test_multiple_string=" + FILTERED_VALUE_1, "--test_multiple_string=" + UNFILTERED_VALUE); TestOptions testOptions = getTestOptions(); - assertThat(testOptions.testMultipleString).containsExactly("foo", "baz").inOrder(); + assertThat(testOptions.testMultipleString) + .containsExactly(FILTERED_VALUE_1, UNFILTERED_VALUE) + .inOrder(); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); testOptions = getTestOptions(); // Default value for repeatable flags is always empty. @@ -859,46 +931,48 @@ public class InvocationPolicyEnforcerTest { @Test public void testAllowValuesSetsNewDefaultWhenFlagDefaultIsDisallowed() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getAllowValuesBuilder() - // default value from flag's definition is not allowed - .addAllowedValues("foo") - .addAllowedValues("bar") - .setNewValue("new default"); + // default value from flag's definition is not allowed + .addAllowedValues(FILTERED_VALUE_1) + .addAllowedValues(FILTERED_VALUE_2) + .setNewValue("new default"); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); // Option should be its default TestOptions testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Flag's value should be the default value from the policy. testOptions = getTestOptions(); - assertEquals("new default", testOptions.testString); + assertThat(testOptions.testString).isEqualTo("new default"); } @Test public void testAllowValuesDisallowsFlagDefaultButNoPolicyDefault() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getAllowValuesBuilder() - // default value from flag's definition is not allowed, and no alternate default - // is given. - .addAllowedValues("foo") - .addAllowedValues("bar"); + // default value from flag's definition is not allowed, and no alternate default + // is given. + .addAllowedValues(FILTERED_VALUE_1) + .addAllowedValues(FILTERED_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); // Option should be its default TestOptions testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { // expected. @@ -918,10 +992,10 @@ public class InvocationPolicyEnforcerTest { parser.parse("--test_list_converters=a,b,c"); TestOptions testOptions = getTestOptions(); - assertEquals(Arrays.asList("a", "b", "c"), testOptions.testListConverters); + assertThat(testOptions.testListConverters).isEqualTo(Arrays.asList("a", "b", "c")); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { assertThat(e.getMessage()) @@ -937,44 +1011,46 @@ public class InvocationPolicyEnforcerTest { @Test public void testDisallowValuesAllowsValue() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getDisallowValuesBuilder() - .addDisallowedValues("foo") - .addDisallowedValues("bar"); + .addDisallowedValues(FILTERED_VALUE_1) + .addDisallowedValues(FILTERED_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=baz"); + parser.parse("--test_string=" + UNFILTERED_VALUE); // Option should be "baz" as specified by the user. TestOptions testOptions = getTestOptions(); - assertEquals("baz", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(UNFILTERED_VALUE); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Still "baz" since "baz" is allowed by the policy. testOptions = getTestOptions(); - assertEquals("baz", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(UNFILTERED_VALUE); } @Test public void testDisallowValuesDisallowsValue() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getDisallowValuesBuilder() - .addDisallowedValues("foo") - .addDisallowedValues("bar"); + .addDisallowedValues(FILTERED_VALUE_1) + .addDisallowedValues(FILTERED_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=foo"); + parser.parse("--test_string=" + FILTERED_VALUE_1); // Option should be "foo" as specified by the user. TestOptions testOptions = getTestOptions(); - assertEquals("foo", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(FILTERED_VALUE_1); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { // expected, since foo is disallowed. @@ -984,21 +1060,25 @@ public class InvocationPolicyEnforcerTest { @Test public void testDisallowValuesDisallowsMultipleValues() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_multiple_string") .getDisallowValuesBuilder() - .addDisallowedValues("foo") - .addDisallowedValues("bar"); + .addDisallowedValues(FILTERED_VALUE_1) + .addDisallowedValues(FILTERED_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_multiple_string=baz", "--test_multiple_string=bar"); + parser.parse( + "--test_multiple_string=" + UNFILTERED_VALUE, "--test_multiple_string=" + FILTERED_VALUE_2); // Option should be "baz" and "bar" as specified by the user. TestOptions testOptions = getTestOptions(); - assertThat(testOptions.testMultipleString).containsExactly("baz", "bar").inOrder(); + assertThat(testOptions.testMultipleString) + .containsExactly(UNFILTERED_VALUE, FILTERED_VALUE_2) + .inOrder(); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { // expected, since bar is disallowed. @@ -1008,62 +1088,65 @@ public class InvocationPolicyEnforcerTest { @Test public void testDisallowValuesSetsNewValue() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getDisallowValuesBuilder() - .addDisallowedValues("user value") - .setNewValue("baz"); + .addDisallowedValues(FILTERED_VALUE_1) + .setNewValue(UNFILTERED_VALUE); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=user value"); + parser.parse("--test_string=" + FILTERED_VALUE_1); TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(FILTERED_VALUE_1); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Should now be "baz" because the policy forces disallowed values to "baz" testOptions = getTestOptions(); - assertEquals("baz", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(UNFILTERED_VALUE); } @Test public void testDisallowValuesSetsDefaultValue() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getDisallowValuesBuilder() - .addDisallowedValues("user value") - .getUseDefaultBuilder(); + .addDisallowedValues(FILTERED_VALUE_1) + .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=user value"); + parser.parse("--test_string=" + FILTERED_VALUE_1); TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(FILTERED_VALUE_1); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); } @Test public void testDisallowValuesSetsDefaultValueForRepeatableFlag() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_multiple_string") .getDisallowValuesBuilder() - .addDisallowedValues("user value") - .getUseDefaultBuilder(); + .addDisallowedValues(FILTERED_VALUE_1) + .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_multiple_string=user value"); + parser.parse("--test_multiple_string=" + FILTERED_VALUE_1); TestOptions testOptions = getTestOptions(); - assertThat(testOptions.testMultipleString).containsExactly("user value"); + assertThat(testOptions.testMultipleString).containsExactly(FILTERED_VALUE_1); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); testOptions = getTestOptions(); // Default for repeatable flags is always empty. @@ -1074,16 +1157,17 @@ public class InvocationPolicyEnforcerTest { public void testDisallowValuesRaisesErrorIfDefaultIsDisallowedAndSetsUseDefault() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getDisallowValuesBuilder() - .addDisallowedValues(STRING_FLAG_DEFAULT) - .getUseDefaultBuilder(); + .addDisallowedValues(TestOptions.TEST_STRING_DEFAULT) + .getUseDefaultBuilder(); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { assertThat(e.getMessage()).contains("but also specifies to use the default value"); @@ -1093,42 +1177,44 @@ public class InvocationPolicyEnforcerTest { @Test public void testDisallowValuesSetsNewValueWhenDefaultIsDisallowed() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getDisallowValuesBuilder() - .addDisallowedValues(STRING_FLAG_DEFAULT) - .setNewValue("baz"); + .addDisallowedValues(TestOptions.TEST_STRING_DEFAULT) + .setNewValue(UNFILTERED_VALUE); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); // Option should be the default since the use didn't specify a value. TestOptions testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); // Should now be "baz" because the policy set the new default to "baz" testOptions = getTestOptions(); - assertEquals("baz", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(UNFILTERED_VALUE); } @Test public void testDisallowValuesDisallowsFlagDefaultButNoPolicyDefault() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getDisallowValuesBuilder() - // No new default is set - .addDisallowedValues(STRING_FLAG_DEFAULT); + // No new default is set + .addDisallowedValues(TestOptions.TEST_STRING_DEFAULT); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); // Option should be the default since the use didn't specify a value. TestOptions testOptions = getTestOptions(); - assertEquals(STRING_FLAG_DEFAULT, testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TestOptions.TEST_STRING_DEFAULT); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { // expected. @@ -1148,10 +1234,10 @@ public class InvocationPolicyEnforcerTest { parser.parse("--test_list_converters=a,b,c"); TestOptions testOptions = getTestOptions(); - assertEquals(Arrays.asList("a", "b", "c"), testOptions.testListConverters); + assertThat(testOptions.testListConverters).isEqualTo(Arrays.asList("a", "b", "c")); try { - enforcer.enforce(parser, "build"); + enforcer.enforce(parser, BUILD_COMMAND); fail(); } catch (OptionsParsingException e) { assertThat(e.getMessage()) @@ -1167,48 +1253,51 @@ public class InvocationPolicyEnforcerTest { @Test public void testFlagPolicyDoesNotApply() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .addCommands("build") .getSetValueBuilder() - .addFlagValue("policy value"); + .addFlagValue(TEST_STRING_POLICY_VALUE); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=user value"); + parser.parse("--test_string=" + TEST_STRING_USER_VALUE); TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); enforcer.enforce(parser, "test"); // Still user value. testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); } @Test public void testNonExistantFlagFromPolicy() throws Exception { InvocationPolicy.Builder invocationPolicyBuilder = InvocationPolicy.newBuilder(); - invocationPolicyBuilder.addFlagPoliciesBuilder() + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("i_do_not_exist") .getSetValueBuilder() - .addFlagValue("policy value 1"); - invocationPolicyBuilder.addFlagPoliciesBuilder() + .addFlagValue(TEST_STRING_POLICY_VALUE); + invocationPolicyBuilder + .addFlagPoliciesBuilder() .setFlagName("test_string") .getSetValueBuilder() - .addFlagValue("policy value 2"); + .addFlagValue(TEST_STRING_POLICY_VALUE_2); InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=user value"); + parser.parse("--test_string=" + TEST_STRING_USER_VALUE); TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); enforcer.enforce(parser, "test"); // Still user value. testOptions = getTestOptions(); - assertEquals("policy value 2", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_POLICY_VALUE_2); } @Test @@ -1218,16 +1307,16 @@ public class InvocationPolicyEnforcerTest { // No operations added to the flag policy InvocationPolicyEnforcer enforcer = createOptionsPolicyEnforcer(invocationPolicyBuilder); - parser.parse("--test_string=user value"); + parser.parse("--test_string=" + TEST_STRING_USER_VALUE); TestOptions testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); // Shouldn't throw. enforcer.enforce(parser, "test"); // Still user value. testOptions = getTestOptions(); - assertEquals("user value", testOptions.testString); + assertThat(testOptions.testString).isEqualTo(TEST_STRING_USER_VALUE); } } |