package com.celements.model.classes.fields; import static org.junit.Assert.*; import static org.mutabilitydetector.unittesting.AllowedReason.*; import static org.mutabilitydetector.unittesting.MutabilityAssert.*; import static org.mutabilitydetector.unittesting.MutabilityMatchers.*; 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.ref.AttachmentReferenceField; import com.celements.model.classes.fields.ref.DocumentReferenceField; import com.celements.model.classes.fields.ref.EntityReferenceField; import com.celements.model.classes.fields.ref.SpaceReferenceField; import com.celements.model.classes.fields.ref.WikiReferenceField; import com.xpn.xwiki.objects.classes.StringClass; public class EntityReferenceFieldTest extends AbstractComponentTest { private EntityReferenceField<DocumentReference> field; Integer size = 5; @Override @Before public void setUp() throws Exception { super.setUp(); field = new DocumentReferenceField.Builder(new DocumentReference("wiki", "class", "any"), "name").size(size).build(); } @Test public void test_immutability() { assertInstancesOf(EntityReferenceField.class, areImmutable(), allowingForSubclassing()); assertImmutable(WikiReferenceField.class); assertImmutable(SpaceReferenceField.class); assertImmutable(DocumentReferenceField.class); assertImmutable(AttachmentReferenceField.class); } @Test public void test_getters() throws Exception { assertEquals(size, field.getSize()); } @Test public void test_getXField() throws Exception { assertTrue(field.getXField() instanceof StringClass); StringClass xField = (StringClass) field.getXField(); assertEquals(size, (Integer) xField.getSize()); } @Test public void test_serialize() throws Exception { assertEquals("wiki:class.any", field.serialize(field.getClassRef())); } @Test public void test_resolve() throws Exception { assertEquals(field.getClassRef(), field.resolve("wiki:class.any")); } }