Skip to content

Commit f50ee48

Browse files
authored
App Configuration Update Feature Filter (Azure#27151)
* Updated to support integer and string * Updated Changelog * Added Throws message to PercentageFilter javadoc
1 parent 223eb5d commit f50ee48

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

sdk/appconfiguration/azure-spring-cloud-feature-management/CHANGELOG.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,7 @@
22

33
## 2.4.0-beta.1 (Unreleased)
44

5-
### Features Added
6-
7-
### Breaking Changes
8-
9-
### Bugs Fixed
10-
11-
### Other Changes
5+
Updated PercentageFilter to support Strings and Doubles
126

137
## 2.3.0 (2022-03-01)
148
This release is compatible with Spring Boot 2.5.5-2.5.8, 2.6.0-2.6.2.

sdk/appconfiguration/azure-spring-cloud-feature-management/src/main/java/com/azure/spring/cloud/feature/manager/feature/filters/PercentageFilter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@ public class PercentageFilter implements FeatureFilter {
2424
*
2525
* @param context The feature evaluation context.
2626
* @return True if the feature is enabled, false otherwise.
27+
* @throws NumberFormatException if the percentage filter setting is not a parsable double
2728
*/
2829
@Override
2930
public boolean evaluate(FeatureFilterEvaluationContext context) {
30-
String value = (String) context.getParameters().get(PERCENTAGE_FILTER_SETTING);
31+
String value = String.valueOf(context.getParameters().get(PERCENTAGE_FILTER_SETTING));
3132

3233
boolean result = true;
3334

34-
if (value == null || Double.parseDouble(value) < 0) {
35+
if (value.equals("null") || Double.parseDouble(value) < 0) {
3536
LOGGER.warn("The {} feature filter does not have a valid {} value for feature {}.",
3637
this.getClass().getSimpleName(), PERCENTAGE_FILTER_SETTING, context.getName());
3738
result = false;

sdk/appconfiguration/azure-spring-cloud-feature-management/src/test/java/com/azure/spring/cloud/feature/manager/feature/filters/PercentageFilterTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@ public void errorPercentage() {
4343
context.setParameters(parameters);
4444
assertFalse(filter.evaluate(context));
4545
}
46+
47+
@Test
48+
public void hundredPercentageInteger() {
49+
PercentageFilter filter = new PercentageFilter();
50+
FeatureFilterEvaluationContext context = new FeatureFilterEvaluationContext();
51+
LinkedHashMap<String, Object> parameters = new LinkedHashMap<String, Object>();
52+
parameters.put(PERCENTAGE_FILTER_SETTING, 100);
53+
context.setParameters(parameters);
54+
assertTrue(filter.evaluate(context));
55+
}
4656

4757
@Test
4858
public void nullPercentage() {

0 commit comments

Comments
 (0)