Report all conditions met when no conditions given.

Test: atest ConditionMonitorTest#addCallback_noConditions_reportAllConditionsMet
Fix: 209015016
Change-Id: Ieb81d659fbaf6123d6a8a8d6f5b3d8b300299c40
This commit is contained in:
Darrell Shi
2021-12-03 18:24:26 +00:00
parent 5d2d7724df
commit 3f093ba169
2 changed files with 16 additions and 0 deletions

View File

@@ -81,6 +81,12 @@ public class Monitor implements CallbackController<Monitor.Callback> {
public Monitor(Set<Condition> conditions) {
mConditions = conditions;
// If there is no condition, give green pass.
if (mConditions.isEmpty()) {
mAllConditionsMet = true;
return;
}
// Initializes the conditions map and registers a callback for each condition.
mConditions.forEach((condition -> mConditionsMap.put(condition, false)));
}

View File

@@ -96,6 +96,16 @@ public class ConditionMonitorTest extends SysuiTestCase {
verify(callback2).onConditionsChanged(true);
}
@Test
public void addCallback_noConditions_reportAllConditionsMet() {
final Monitor monitor = new Monitor(new HashSet<>());
final Monitor.Callback callback = mock(Monitor.Callback.class);
monitor.addCallback(callback);
verify(callback).onConditionsChanged(true);
}
@Test
public void removeCallback_shouldNoLongerReceiveUpdate() {
final Monitor.Callback callback =