/**
* Copyright (C) Intersect 2012.
*
* This module contains Proprietary Information of Intersect,
* and should be treated as Confidential.
*/
package au.org.intersect.exsite9.domain;
import static org.junit.Assert.*;
import static au.org.intersect.exsite9.test.Assert.*;
import org.junit.Test;
/**
* Tests {@link MetadataCategory}
*/
public final class MetadataCategoryUnitTest
{
@Test
public void testConstruction()
{
final MetadataCategory toTest1 = new MetadataCategory();
assertNull(toTest1.getName());
assertNull(toTest1.getId());
assertTrue(toTest1.getValues().isEmpty());
final String name = "name";
final String newName = "newName";
final Long id = Long.valueOf(7);
final MetadataCategory toTest2 = new MetadataCategory(name, MetadataCategoryType.CONTROLLED_VOCABULARY, MetadataCategoryUse.optional);
assertEquals(name, toTest2.getName());
assertNull(toTest2.getId());
assertTrue(toTest2.getValues().isEmpty());
toTest2.setId(id);
assertEquals(id, toTest2.getId());
toTest2.setName(newName);
assertEquals(newName, toTest2.getName());
assertEquals(MetadataCategoryUse.optional, toTest2.getUse());
toTest2.setUse(MetadataCategoryUse.required);
assertEquals(MetadataCategoryUse.required, toTest2.getUse());
assertEquals(MetadataCategoryType.CONTROLLED_VOCABULARY, toTest2.getType());
toTest2.setType(MetadataCategoryType.FREETEXT);
assertEquals(MetadataCategoryType.FREETEXT, toTest2.getType());
assertTrue(toTest1.hashCode() != toTest2.hashCode());
}
@Test
public void testEqualsHashCode()
{
final MetadataCategory toTest1 = new MetadataCategory();
final MetadataCategory toTest2 = new MetadataCategory();
toTest1.setId(7l);
toTest2.setId(7l);
assertEquals(toTest1, toTest1);
assertEquals(toTest1, toTest2);
assertEquals(toTest2, toTest1);
toTest2.setId(424l);
assertNotEquals(toTest1, toTest2);
assertNotEquals(toTest2, toTest1);
assertFalse(toTest1.equals(new Object()));
assertFalse(toTest1.equals(null));
assertFalse(toTest1.equals("some string"));
assertFalse(toTest1.equals(7l));
}
}