aconfig: generate full fakefeatureflagsimpl in prod mode
This change will generate full fakefeatureflagsimpl in prod mode.
FakeFeatureFlagsImp will be the same in test mode and the prod mode.
FeatureFlagsImpl will be all unimplemented in test mode. setFlag,
resetAll are added into the interface FeatureFlags.
The reason to make this change is for project using injection pattern,
the project doesn't have to use test mode to test the flag guarded code.
The project can directly use the FakeFeatureFlagsImpl for testing.
Bug: 294838180
Test: atest AconfigJavaHostTest --host AND atest aconfig.test.java
Change-Id: Ib6d40fd3a9ef872e01594fd4f8d6c4cb10bb173a
diff --git a/tools/aconfig/tests/AconfigHostTest.java b/tools/aconfig/tests/AconfigHostTest.java
index 29a01e3..ea71b7e 100644
--- a/tools/aconfig/tests/AconfigHostTest.java
+++ b/tools/aconfig/tests/AconfigHostTest.java
@@ -17,13 +17,13 @@
@Test
public void testThrowsExceptionIfFlagNotSet() {
assertThrows(NullPointerException.class, () -> Flags.disabledRo());
- FeatureFlags featureFlags = new FakeFeatureFlagsImpl();
+ FakeFeatureFlagsImpl featureFlags = new FakeFeatureFlagsImpl();
assertThrows(IllegalArgumentException.class, () -> featureFlags.disabledRo());
}
@Test
public void testSetFlagInFakeFeatureFlagsImpl() {
- FeatureFlags featureFlags = new FakeFeatureFlagsImpl();
+ FakeFeatureFlagsImpl featureFlags = new FakeFeatureFlagsImpl();
featureFlags.setFlag(Flags.FLAG_ENABLED_RW, true);
assertTrue(featureFlags.enabledRw());
featureFlags.setFlag(Flags.FLAG_ENABLED_RW, false);
@@ -39,14 +39,14 @@
@Test
public void testSetFlagWithRandomName() {
- FeatureFlags featureFlags = new FakeFeatureFlagsImpl();
+ FakeFeatureFlagsImpl featureFlags = new FakeFeatureFlagsImpl();
assertThrows(IllegalArgumentException.class,
() -> featureFlags.setFlag("Randome_name", true));
}
@Test
public void testResetFlagsInFakeFeatureFlagsImpl() {
- FeatureFlags featureFlags = new FakeFeatureFlagsImpl();
+ FakeFeatureFlagsImpl featureFlags = new FakeFeatureFlagsImpl();
featureFlags.setFlag(Flags.FLAG_ENABLED_RO, true);
assertTrue(featureFlags.enabledRo());
featureFlags.resetAll();
@@ -59,7 +59,7 @@
@Test
public void testFlagsSetFeatureFlags() {
- FeatureFlags featureFlags = new FakeFeatureFlagsImpl();
+ FakeFeatureFlagsImpl featureFlags = new FakeFeatureFlagsImpl();
featureFlags.setFlag(Flags.FLAG_ENABLED_RW, true);
assertThrows(NullPointerException.class, () -> Flags.enabledRw());
Flags.setFeatureFlags(featureFlags);
@@ -69,7 +69,7 @@
@Test
public void testFlagsUnsetFeatureFlags() {
- FeatureFlags featureFlags = new FakeFeatureFlagsImpl();
+ FakeFeatureFlagsImpl featureFlags = new FakeFeatureFlagsImpl();
featureFlags.setFlag(Flags.FLAG_ENABLED_RW, true);
assertThrows(NullPointerException.class, () -> Flags.enabledRw());
Flags.setFeatureFlags(featureFlags);
diff --git a/tools/aconfig/tests/AconfigTest.java b/tools/aconfig/tests/AconfigTest.java
index 79b5a55..958b02e 100644
--- a/tools/aconfig/tests/AconfigTest.java
+++ b/tools/aconfig/tests/AconfigTest.java
@@ -59,8 +59,9 @@
}
@Test
- public void testFakeFeatureFlagsImplNotImpl() {
- FeatureFlags featureFlags = new FakeFeatureFlagsImpl();
- assertThrows(UnsupportedOperationException.class, () -> featureFlags.enabledRw());
+ public void testFakeFeatureFlagsImplImpled() {
+ FakeFeatureFlagsImpl fakeFeatureFlags = new FakeFeatureFlagsImpl();
+ fakeFeatureFlags.setFlag(FLAG_ENABLED_RW, false);
+ assertFalse(fakeFeatureFlags.enabledRw());
}
}