/**
* Copyright (C) Intersect 2012.
*
* This module contains Proprietary Information of Intersect,
* and should be treated as Confidential.
*/
package au.org.intersect.exsite9.validators;
import static org.junit.Assert.*;
import java.util.Arrays;
import org.junit.Test;
import au.org.intersect.exsite9.domain.MetadataCategory;
import au.org.intersect.exsite9.domain.MetadataCategoryType;
import au.org.intersect.exsite9.domain.MetadataCategoryUse;
/**
* Tests {@link MetadataCategoryNameValidator}
*/
public final class MetadataCategoryNameValidatorUnitTest
{
@Test
public void testValidator()
{
final MetadataCategory mc1 = new MetadataCategory("MC1", MetadataCategoryType.CONTROLLED_VOCABULARY, MetadataCategoryUse.recommended);
final MetadataCategory mc2 = new MetadataCategory("MC2", MetadataCategoryType.CONTROLLED_VOCABULARY, MetadataCategoryUse.recommended);
final MetadataCategoryNameValidator toTest = new MetadataCategoryNameValidator(Arrays.asList(mc1, mc2), mc2);
// is empty
assertFalse(toTest.isValid(""));
assertFalse(toTest.getErrorMessage().isEmpty());
final StringBuffer sb = new StringBuffer();
for (int i = 0; i <= 255; i++)
{
sb.append("a");
}
// too long
assertFalse(toTest.isValid(sb.toString()));
assertFalse(toTest.getErrorMessage().isEmpty());
// invalid XML
assertFalse(toTest.isValid("\"\""));
assertFalse(toTest.getErrorMessage().isEmpty());
// invalid XML
assertFalse(toTest.isValid("new metadata category name"));
assertFalse(toTest.getErrorMessage().isEmpty());
// name already used.
assertFalse(toTest.isValid(mc1.getName()));
assertFalse(toTest.getErrorMessage().isEmpty());
// valid, since mc2 is excluded
assertTrue(toTest.isValid(mc2.getName()));
assertTrue(toTest.getErrorMessage().isEmpty());
assertFalse(toTest.warningExist("blah"));
assertTrue(toTest.getWarningMessage().isEmpty());
}
}