address code review feedback: - fix copyright in unit test - add hashCode method for Form class - swap asMap to parameters in Form equality check - fix Boolean warning in Form unit test
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/core/Form.java b/jaxrs-api/src/main/java/jakarta/ws/rs/core/Form.java index 0ba06d5..908b849 100644 --- a/jaxrs-api/src/main/java/jakarta/ws/rs/core/Form.java +++ b/jaxrs-api/src/main/java/jakarta/ws/rs/core/Form.java
@@ -106,6 +106,16 @@ if (object == this) return true; if (getClass() != object.getClass()) return false; Form form = (Form) object; - return parameters.equals(form.asMap()); + return parameters.equals(form.parameters); + } + + /** + * Returns the hashCode of the underlying form parameters. + * + * @return a hash code value for the underlying form parameters. + */ + @Override + public int hashCode() { + return parameters.hashCode(); } }
diff --git a/jaxrs-api/src/test/java/jakarta/ws/rs/core/FormTest.java b/jaxrs-api/src/test/java/jakarta/ws/rs/core/FormTest.java index 9d4a855..8928eeb 100644 --- a/jaxrs-api/src/test/java/jakarta/ws/rs/core/FormTest.java +++ b/jaxrs-api/src/test/java/jakarta/ws/rs/core/FormTest.java
@@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2021 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2024 David Walters. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0, which is available at @@ -22,6 +22,18 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class FormTest { + + private static final String AGE_FIELD = "age"; + + private static final String AGE_VALUE = "25"; + + private static final String LOCATION_FIELD = "location"; + + private static final String LOCATION_VALUE = "USA"; + + private static final String NAME_FIELD = "name"; + + private static final String NAME_VALUE = "john"; @Test public void testNullEquals() { @@ -38,16 +50,12 @@ @Test public void testDifferentObjectTypeEquals() { Form form = new Form("field", "value"); - Boolean booleanValue = new Boolean(false); + Boolean booleanValue = Boolean.TRUE; assertFalse(form.equals(booleanValue)); } @Test public void testFormContentEquals() { - final String NAME_FIELD = "name"; - final String AGE_FIELD = "age"; - final String NAME_VALUE = "john"; - final String AGE_VALUE = "25"; Form form1 = new Form(NAME_FIELD,NAME_VALUE).param(AGE_FIELD, AGE_VALUE); Form form2 = new Form(NAME_FIELD,NAME_VALUE).param(AGE_FIELD, AGE_VALUE); assertTrue(form1.equals(form2)); @@ -55,7 +63,16 @@ assertTrue(form1.equals(form2)); form2 = new Form(AGE_VALUE, AGE_FIELD).param(NAME_VALUE, NAME_FIELD); assertFalse(form1.equals(form2)); - form2 = new Form(AGE_FIELD, AGE_VALUE).param(NAME_FIELD,NAME_VALUE).param("location", "USA"); + form2 = new Form(AGE_FIELD, AGE_VALUE).param(NAME_FIELD,NAME_VALUE).param(LOCATION_FIELD, LOCATION_VALUE); assertFalse(form1.equals(form2)); } + + @Test + public void testHashCode() { + Form form1 = new Form(NAME_FIELD,NAME_VALUE).param(AGE_FIELD, AGE_VALUE); + Form form2 = new Form(NAME_FIELD,NAME_VALUE).param(AGE_FIELD, AGE_VALUE); + assertTrue(form1.hashCode() == form2.hashCode()); + form2.param(LOCATION_FIELD, LOCATION_VALUE); + assertFalse(form1.hashCode() == form2.hashCode()); + } }