import java.util.HashMap;
import java.util.Map;
public class ParameterValidator {
/**
* Compares values of URL parameters against expected values for hypothesis validation.
* Handles potential exceptions gracefully.
*
* @param params A map of URL parameters and their values.
* @param expectedValues A map of parameter names and their expected values.
* @return true if all parameters match their expected values, false otherwise.
*/
public static boolean validateParameters(Map<String, String> params, Map<String, String> expectedValues) {
if (params == null || expectedValues == null) {
System.err.println("Error: Input parameters or expected values map is null.");
return false;
}
for (Map.Entry<String, String> expectedEntry : expectedValues.entrySet()) {
String paramName = expectedEntry.getKey();
String expectedValue = expectedEntry.getValue();
if (!params.containsKey(paramName)) {
System.err.println("Error: Missing parameter: " + paramName);
return false; // Parameter missing
}
String actualValue = params.get(paramName);
if (expectedValue == null && actualValue != null) {
System.err.println("Error: Parameter " + paramName + " is expected to be null, but is: " + actualValue);
return false;
}
if (expectedValue != null && !expectedValue.equals(actualValue)) {
System.err.println("Error: Parameter " + paramName + " expected value: " + expectedValue + ", actual value: " + actualValue);
return false; // Value mismatch
}
}
return true; // All parameters validated successfully
}
public static void main(String[] args) {
// Example Usage
Map<String, String> params1 = new HashMap<>();
params1.put("param1", "value1");
params1.put("param2", "value2");
Map<String, String> expected1 = new HashMap<>();
expected1.put("param1", "value1");
expected1.put("param2", "value2");
boolean isValid1 = validateParameters(params1, expected1);
System.out.println("Validation result 1: " + isValid1); // Expected: true
Map<String, String> params2 = new HashMap<>();
params2.put("param1", "value1");
params2.put("param2", "wrongValue");
Map<String, String> expected2 = new HashMap<>();
expected2.put("param1", "value1");
expected2.put("param2", "value2");
boolean isValid2 = validateParameters(params2, expected2);
System.out.println("Validation result 2: " + isValid2); // Expected: false
Map<String, String> params3 = new HashMap<>();
params3.put("param1", "value1");
Map<String, String> expected3 = new HashMap<>();
expected3.put("param1", "value1");
expected3.put("param2", "value2");
boolean isValid3 = validateParameters(params3, expected3);
System.out.println("Validation result 3: " + isValid3); // Expected: false
Map<String, String> params4 = new HashMap<>();
params4.put("param1", null);
Map<String, String> expected4 = new HashMap<>();
expected4.put("param1", null);
boolean isValid4 = validateParameters(params4, expected4);
System.out.println("Validation result 4: " + isValid4); // Expected: true
Map<String, String> params5 = new HashMap<>();
params5.put("param1", "value1");
Map<String, String> expected5 = new HashMap<>();
expected5.put("param1", null);
boolean isValid5 = validateParameters(params5, expected5);
System.out.println("Validation result 5: " + isValid5);
}
}
Add your comment