package fitnesse.revisioncontrol.svn.client;
import junit.framework.TestCase;
import org.tmatesoft.svn.core.wc.SVNStatusType;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
public class SVNStatusEventTagsTest extends TestCase {
public void testAllConstantsAreRegistered() throws Exception {
Set<SVNStatusType> types = ConstantEnumUtil.getEnumsWhichConstantNameStartsWith(SVNStatusType.class, "");
assertNotNull(types);
assertTrue(types.size() > 0);
assertSetsMatch(SVNStatusEventTags.getTagsByType().keySet(), types);
}
private void assertSetsMatch(Set<SVNStatusType> actual, Set<SVNStatusType> expected) {
List<SVNStatusType> extra = cullSet(expected, actual);
if (extra.size() > 0)
fail("extra: " + extra);
List<SVNStatusType> missing = cullSet(actual, expected);
if (missing.size() > 0)
fail("missing: " + missing);
}
private List<SVNStatusType> cullSet(Set<SVNStatusType> expected, Set<SVNStatusType> actual) {
List<SVNStatusType> testActions = new ArrayList<SVNStatusType>(expected);
testActions.removeAll(actual);
return testActions;
}
}