Skip to content

Commit 9dcfc91

Browse files
ACRParameterLoaderHelper Test Updates
Created a private constructor in implementation to prevent utility class instances. Moved test-scope key format into class instance. Updated uses. Moved test-scoped time format into class instances. Updated uses.
1 parent 60a566b commit 9dcfc91

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

src/main/java/org/owasp/esapi/reference/accesscontrol/policyloader/ACRParameterLoaderHelper.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@
44

55
final public class ACRParameterLoaderHelper {
66

7+
protected static String DEFAULT_KEY_FORMAT = "AccessControlRules.AccessControlRule(%s).Parameters.Parameter(%s)[@value]";
8+
protected static String TIME_FORMAT = "h:mm a";
9+
10+
11+
private ACRParameterLoaderHelper() { /* NO-OP Utility Ctr.*/ }
12+
713
public static Object getParameterValue(XMLConfiguration config, int currentRule, int currentParameter, String parameterType) throws Exception {
8-
String key = "AccessControlRules.AccessControlRule(" +
9-
currentRule + ").Parameters.Parameter(" + currentParameter + ")[@value]";
14+
String key = String.format(DEFAULT_KEY_FORMAT, currentRule, currentParameter);
1015
Object parameterValue;
1116
if("String".equalsIgnoreCase(parameterType)) {
1217
parameterValue = config.getString(key);
@@ -31,7 +36,7 @@ public static Object getParameterValue(XMLConfiguration config, int currentRule,
3136
} else if("Date".equalsIgnoreCase(parameterType)){
3237
parameterValue = java.text.DateFormat.getDateInstance().parse(config.getString(key));
3338
} else if("Time".equalsIgnoreCase(parameterType)){
34-
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("h:mm a");
39+
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(TIME_FORMAT);
3540
parameterValue = sdf.parseObject(config.getString(key));
3641
// parameterValue = java.text.DateFormat.getTimeInstance().parse(config.getString(key));
3742
}

src/test/java/org/owasp/esapi/reference/accesscontrol/policyloader/ACRParameterLoaderHelperTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import org.mockito.Mockito;
1414

1515
public class ACRParameterLoaderHelperTest {
16-
private static String DEFAULT_KEY_FORMAT = "AccessControlRules.AccessControlRule(%s).Parameters.Parameter(%s)[@value]";
16+
1717

1818
XMLConfiguration config = Mockito.spy(XMLConfiguration.class);
1919

@@ -26,7 +26,7 @@ public void buildUniqueKey () {
2626
// Assembling a unique key each test verifies that the delegate calls are getting the expected values from the test calls.
2727
randomRuleIndex = Math.abs(new Random().nextInt() % 100);
2828
randomParameterIndex = Math.abs(new Random().nextInt() % 100);
29-
randomTestKey = String.format(DEFAULT_KEY_FORMAT, randomRuleIndex, randomParameterIndex);
29+
randomTestKey = String.format(ACRParameterLoaderHelper.DEFAULT_KEY_FORMAT, randomRuleIndex, randomParameterIndex);
3030
}
3131

3232

@@ -121,13 +121,12 @@ public void testDateParam_lowercaseType() throws Exception {
121121

122122
@Test
123123
public void testTimeParam_lowercaseType() throws Exception {
124-
String atime = new java.text.SimpleDateFormat("h:mm a").format(new Date());
124+
String atime = new java.text.SimpleDateFormat(ACRParameterLoaderHelper.TIME_FORMAT).format(new Date());
125125
Mockito.doReturn(atime).when(config).getString(eq(randomTestKey));
126126
ACRParameterLoaderHelper.getParameterValue(config, randomRuleIndex, randomParameterIndex, "time".toLowerCase());
127127
Mockito.verify(config, Mockito.times(1)).getString(randomTestKey);
128128
}
129129

130-
// ------------
131130

132131
@Test
133132
public void testStringParam_uppercaseType() throws Exception {
@@ -220,7 +219,7 @@ public void testDateParam_uppercaseType() throws Exception {
220219

221220
@Test
222221
public void testTimeParam_uppercaseType() throws Exception {
223-
String atime = new java.text.SimpleDateFormat("h:mm a").format(new Date());
222+
String atime = new java.text.SimpleDateFormat(ACRParameterLoaderHelper.TIME_FORMAT).format(new Date());
224223
Mockito.doReturn(atime).when(config).getString(eq(randomTestKey));
225224
ACRParameterLoaderHelper.getParameterValue(config, randomRuleIndex, randomParameterIndex, "time".toUpperCase());
226225
Mockito.verify(config, Mockito.times(1)).getString(randomTestKey);

0 commit comments

Comments
 (0)