package org.gradoop.common.model.impl.properties; import org.junit.Test; import static org.gradoop.common.GradoopTestUtils.writeAndReadFields; import static org.junit.Assert.*; public class PropertyTest { @Test public void testGetKey() throws Exception { Property property = new Property("key", PropertyValue.create(10)); assertEquals("key", property.getKey()); } @Test public void testSetKey() throws Exception { Property property = new Property("key", PropertyValue.create(10)); property.setKey("newKey"); assertEquals("newKey", property.getKey()); } @Test(expected = NullPointerException.class) public void testSetKeyNull() { new Property(null, PropertyValue.create(10)); } @Test(expected = NullPointerException.class) public void testSetKeyNull2() { Property property = new Property("key", PropertyValue.create(10)); property.setKey(null); } @Test(expected = IllegalArgumentException.class) public void testSetKeyEmpty() { new Property("", PropertyValue.create(10)); } @Test(expected = IllegalArgumentException.class) public void testSetKeyEmpty2() { Property property = new Property("key", PropertyValue.create(10)); property.setKey(""); } @Test public void testGetValue() throws Exception { PropertyValue propertyValue = PropertyValue.create(10); Property p = new Property("key", propertyValue); assertEquals(propertyValue, p.getValue()); } @Test public void testSetValue() throws Exception { PropertyValue propertyValue = PropertyValue.create(10); Property p = new Property("key", PropertyValue.create(11)); p.setValue(propertyValue); assertEquals(propertyValue, p.getValue()); } @Test (expected = NullPointerException.class) public void testSetValueNull() { Property p = new Property("key", PropertyValue.create(11)); p.setValue(null); } @Test (expected = NullPointerException.class) public void testSetValueNull2() { new Property("key", null); } @Test public void testEqualsAndHashCode() throws Exception { Property p1 = new Property("key1", PropertyValue.create(10)); Property p2 = new Property("key1", PropertyValue.create(10)); Property p3 = new Property("key1", PropertyValue.create(11)); Property p4 = new Property("key2", PropertyValue.create(10)); Property p5 = new Property("key2", PropertyValue.create(11)); assertEquals(p1, p1); assertEquals(p1, p2); assertNotEquals(p1, p3); assertNotEquals(p1, p4); assertNotEquals(p1, p5); assertTrue(p1.hashCode() == p1.hashCode()); assertTrue(p1.hashCode() == p2.hashCode()); assertFalse(p1.hashCode() == p3.hashCode()); assertFalse(p1.hashCode() == p4.hashCode()); assertFalse(p1.hashCode() == p5.hashCode()); } @Test public void testCompareTo() throws Exception { Property p1 = new Property("key1", PropertyValue.create(10)); Property p2 = new Property("key1", PropertyValue.create(10)); Property p3 = new Property("key2", PropertyValue.create(10)); assertTrue(p1.compareTo(p1) == 0); assertTrue(p1.compareTo(p2) == 0); assertTrue(p1.compareTo(p3) < 0); assertTrue(p3.compareTo(p1) > 0); } @Test public void testWriteAndReadFields() throws Exception { Property p1 = new Property("key", PropertyValue.create(10)); Property p2 = writeAndReadFields(Property.class, p1); assertEquals(p1, p2); } }