package rtt.annotation.test.model;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
import rtt.annotation.editor.model.ClassElement;
import rtt.annotation.editor.model.ClassElementReference;
import rtt.annotation.editor.model.ClassModelFactory;
public class ElementReferenceTests {
private static final String CLASSNAME = "TestClassName";
private static final String PACKAGENAME = "TestPackageName";
private ClassModelFactory factory;
private ClassElementReference reference;
@Before
public void setUp() throws Exception {
this.factory = ClassModelFactory.getFactory();
this.reference = ClassElementReference.create(CLASSNAME);
}
@Test
public void testEmptyReference() throws Exception {
assertEquals(CLASSNAME, reference.getName());
assertFalse(reference.isResolved());
assertNull(reference.getReference());
}
@Test
public void testSetReference() throws Exception {
reference.setReference(createModelElement());
assertTrue(reference.isResolved());
assertNotNull(reference.getReference());
assertEquals(createModelElement(), reference.getReference());
}
private ClassElement createModelElement() {
return factory.createClassElement(
null, CLASSNAME, PACKAGENAME);
}
@Test
public void testEquals() throws Exception {
ClassElementReference reference2 =
ClassElementReference.create(CLASSNAME);
assertTrue(reference.equals(reference2));
assertTrue(reference2.equals(reference));
reference.setReference(createModelElement());
assertFalse(reference.equals(reference2));
assertFalse(reference2.equals(reference));
reference2.setReference(createModelElement());
assertTrue(reference.equals(reference2));
assertTrue(reference2.equals(reference));
}
}