1. import java.util.HashMap;
  2. import java.util.Map;
  3. public class ParameterValidator {
  4. /**
  5. * Compares values of URL parameters against expected values for hypothesis validation.
  6. * Handles potential exceptions gracefully.
  7. *
  8. * @param params A map of URL parameters and their values.
  9. * @param expectedValues A map of parameter names and their expected values.
  10. * @return true if all parameters match their expected values, false otherwise.
  11. */
  12. public static boolean validateParameters(Map<String, String> params, Map<String, String> expectedValues) {
  13. if (params == null || expectedValues == null) {
  14. System.err.println("Error: Input parameters or expected values map is null.");
  15. return false;
  16. }
  17. for (Map.Entry<String, String> expectedEntry : expectedValues.entrySet()) {
  18. String paramName = expectedEntry.getKey();
  19. String expectedValue = expectedEntry.getValue();
  20. if (!params.containsKey(paramName)) {
  21. System.err.println("Error: Missing parameter: " + paramName);
  22. return false; // Parameter missing
  23. }
  24. String actualValue = params.get(paramName);
  25. if (expectedValue == null && actualValue != null) {
  26. System.err.println("Error: Parameter " + paramName + " is expected to be null, but is: " + actualValue);
  27. return false;
  28. }
  29. if (expectedValue != null && !expectedValue.equals(actualValue)) {
  30. System.err.println("Error: Parameter " + paramName + " expected value: " + expectedValue + ", actual value: " + actualValue);
  31. return false; // Value mismatch
  32. }
  33. }
  34. return true; // All parameters validated successfully
  35. }
  36. public static void main(String[] args) {
  37. // Example Usage
  38. Map<String, String> params1 = new HashMap<>();
  39. params1.put("param1", "value1");
  40. params1.put("param2", "value2");
  41. Map<String, String> expected1 = new HashMap<>();
  42. expected1.put("param1", "value1");
  43. expected1.put("param2", "value2");
  44. boolean isValid1 = validateParameters(params1, expected1);
  45. System.out.println("Validation result 1: " + isValid1); // Expected: true
  46. Map<String, String> params2 = new HashMap<>();
  47. params2.put("param1", "value1");
  48. params2.put("param2", "wrongValue");
  49. Map<String, String> expected2 = new HashMap<>();
  50. expected2.put("param1", "value1");
  51. expected2.put("param2", "value2");
  52. boolean isValid2 = validateParameters(params2, expected2);
  53. System.out.println("Validation result 2: " + isValid2); // Expected: false
  54. Map<String, String> params3 = new HashMap<>();
  55. params3.put("param1", "value1");
  56. Map<String, String> expected3 = new HashMap<>();
  57. expected3.put("param1", "value1");
  58. expected3.put("param2", "value2");
  59. boolean isValid3 = validateParameters(params3, expected3);
  60. System.out.println("Validation result 3: " + isValid3); // Expected: false
  61. Map<String, String> params4 = new HashMap<>();
  62. params4.put("param1", null);
  63. Map<String, String> expected4 = new HashMap<>();
  64. expected4.put("param1", null);
  65. boolean isValid4 = validateParameters(params4, expected4);
  66. System.out.println("Validation result 4: " + isValid4); // Expected: true
  67. Map<String, String> params5 = new HashMap<>();
  68. params5.put("param1", "value1");
  69. Map<String, String> expected5 = new HashMap<>();
  70. expected5.put("param1", null);
  71. boolean isValid5 = validateParameters(params5, expected5);
  72. System.out.println("Validation result 5: " + isValid5);
  73. }
  74. }

Add your comment