package com.celements.model.util; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import org.xwiki.model.reference.DocumentReference; import com.celements.common.test.AbstractComponentTest; import com.celements.model.classes.fields.StringField; public class ClassFieldValueTest extends AbstractComponentTest { private StringField field; private String val; @Override @Before public void setUp() throws Exception { super.setUp(); field = new StringField.Builder(new DocumentReference("wiki", "class", "any"), "name").build(); val = "val"; } @Test public void test_constr_null_field() throws Exception { try { new ClassFieldValue<String>(null, val); fail("expecting NullPointerException"); } catch (NullPointerException npe) { // expected } } @Test public void test_constr_null_val() throws Exception { new ClassFieldValue<>(field, null); // null value allowed, not expecting NPE } @Test public void test_getters() throws Exception { ClassFieldValue<String> fieldValue = new ClassFieldValue<>(field, val); assertEquals(field, fieldValue.getField()); assertEquals(val, fieldValue.getValue()); } @Test public void test_equals() throws Exception { ClassFieldValue<String> fieldValue = new ClassFieldValue<>(field, val); assertTrue(fieldValue.equals(new ClassFieldValue<String>(field, val))); assertFalse(fieldValue.equals(new ClassFieldValue<String>(field, "otherVal"))); assertFalse(fieldValue.equals(new ClassFieldValue<String>(new StringField.Builder( field.getClassRef(), "name2").build(), val))); assertFalse(fieldValue.equals(field)); assertFalse(fieldValue.equals(null)); } @Test public void test_hashCode() throws Exception { ClassFieldValue<String> fieldValue = new ClassFieldValue<>(field, val); assertTrue(fieldValue.hashCode() == new ClassFieldValue<String>(field, val).hashCode()); assertFalse(fieldValue.hashCode() == new ClassFieldValue<String>(field, "otherVal").hashCode()); assertFalse(fieldValue.hashCode() == new ClassFieldValue<String>(new StringField.Builder( field.getClassRef(), "name2").build(), val).hashCode()); assertFalse(fieldValue.hashCode() == field.hashCode()); } @Test public void test_toString() throws Exception { ClassFieldValue<String> fieldValue = new ClassFieldValue<String>(field, val); assertEquals("class.any.name: val", fieldValue.toString()); } }