/** * The contents of this file are subject to the OpenMRS Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://license.openmrs.org * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * Copyright (C) OpenMRS, LLC. All Rights Reserved. */ package org.openmrs; import org.junit.Assert; import org.junit.Test; import org.openmrs.test.Verifies; /** * This class tests the all of the {@link Form} non-trivial object methods. * * @see Form */ public class FormTest { /** * Make sure the Form(Integer) constructor sets the formId * * @see {@link Form#Form(Integer)} */ @Test @Verifies(value = "should set formId with given parameter", method = "Form(Integer)") public void Form_shouldSetFormIdWithGivenParameter() throws Exception { Form form = new Form(123); Assert.assertEquals(123, form.getFormId().intValue()); } /** * Makes sure that two different form objects that have the same form id are considered equal * * @see {@link Form#equals(Object)} */ @Test @Verifies(value = "should have equal form objects by form id", method = "equals(Object)") public void equals_shouldHaveEqualFormObjectsByFormId() throws Exception { Form form1 = new Form(1); // another form with the same form id Form form2 = new Form(1); Assert.assertTrue(form1.equals(form2)); } /** * Makes sure that two different form objects that have different form ids are considered * unequal * * @see {@link Form#equals(Object)} */ @Test @Verifies(value = "should not have equal form objects by formId", method = "equals(Object)") public void equals_shouldNotHaveEqualFormObjectsByFormId() throws Exception { Form form1 = new Form(1); // another form with a different form id Form form2 = new Form(2); Assert.assertFalse(form1.equals(form2)); } /** * Makes sure that two different form objects that have the same form id are considered equal * (checks for NPEs) * * @see {@link Form#equals(Object)} */ @Test @Verifies(value = "should have equal form objects with no formId", method = "equals(Object)") public void equals_shouldHaveEqualFormObjectsWithNoFormId() throws Exception { // an form object with no form id Form form = new Form(); Assert.assertTrue(form.equals(form)); } /** * Makes sure that two different form objects are unequal when one of them doesn't have an form * id defined (checks for NPEs) * * @see {@link Form#equals(Object)} */ @Test @Verifies(value = "should not have equal form objects when one has null formId", method = "equals(Object)") public void equals_shouldNotHaveEqualFormObjectsWhenOneHasNullFormId() throws Exception { Form formWithId = new Form(1); // another form that doesn't have an form id Form formWithoutId = new Form(); Assert.assertFalse(formWithId.equals(formWithoutId)); // now test the reverse Assert.assertFalse(formWithoutId.equals(formWithId)); Form anotherFormWithoutId = new Form(); // now test with both not having an id Assert.assertFalse(formWithoutId.equals(anotherFormWithoutId)); } /** * Make sure we can call {@link Form#hashCode()} with all null attributes on form and still get * a hashcode * * @see {@link Form#hashCode()} */ @Test @Verifies(value = "should get hashCode even with null attributes", method = "hashCode()") public void hashCode_shouldGetHashCodeEvenWithNullAttributes() throws Exception { new Form().hashCode(); } }