/*
* FindBugs - Find bugs in Java programs
* Copyright (C) 2004, University of Maryland
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package edu.umd.cs.findbugs.config;
import junit.framework.Assert;
import junit.framework.TestCase;
import edu.umd.cs.findbugs.Detector;
import edu.umd.cs.findbugs.I18N;
public class ProjectFilterSettingsTest extends TestCase {
ProjectFilterSettings plain;
ProjectFilterSettings otherPlain;
ProjectFilterSettings changed;
ProjectFilterSettings changed2;
ProjectFilterSettings changed3;
ProjectFilterSettings changed4;
@Override
protected void setUp() {
plain = ProjectFilterSettings.createDefault();
otherPlain = ProjectFilterSettings.createDefault();
changed = ProjectFilterSettings.createDefault();
changed.setMinPriority("High");
changed2 = ProjectFilterSettings.createDefault();
changed2.removeCategory("MALICIOUS_CODE");
changed3 = ProjectFilterSettings.createDefault();
changed3.addCategory("FAKE_CATEGORY");
changed4 = ProjectFilterSettings.createDefault();
changed4.setMinPriority("High");
changed4.removeCategory("MALICIOUS_CODE");
changed4.addCategory("FAKE_CATEGORY");
}
public void testPlainPrio() {
Assert.assertTrue(plain.getMinPriority().equals(ProjectFilterSettings.DEFAULT_PRIORITY));
}
public void testPlainCategories() {
int count = 0;
for (String category : I18N.instance().getBugCategories()) if (!category.equals("NOISE")){
Assert.assertTrue(plain.containsCategory(category));
++count;
}
Assert.assertEquals(count, plain.getActiveCategorySet().size());
}
public void testAddCategory() {
Assert.assertTrue(plain.containsCategory("FAKE_CATEGORY")); // unknown categories should be unhidden by default
plain.addCategory("FAKE_CATEGORY");
Assert.assertTrue(plain.containsCategory("FAKE_CATEGORY"));
}
public void testRemoveCategory() {
Assert.assertTrue(plain.containsCategory("MALICIOUS_CODE"));
plain.removeCategory("MALICIOUS_CODE");
Assert.assertFalse(plain.containsCategory("MALICIOUS_CODE"));
}
public void testSetMinPriority() {
plain.setMinPriority("High");
Assert.assertTrue(plain.getMinPriority().equals("High"));
Assert.assertTrue(plain.getMinPriorityAsInt() == Detector.HIGH_PRIORITY);
plain.setMinPriority("Medium");
Assert.assertTrue(plain.getMinPriority().equals("Medium"));
Assert.assertTrue(plain.getMinPriorityAsInt() == Detector.NORMAL_PRIORITY);
plain.setMinPriority("Low");
Assert.assertTrue(plain.getMinPriority().equals("Low"));
Assert.assertTrue(plain.getMinPriorityAsInt() == Detector.LOW_PRIORITY);
}
public void testEquals() {
Assert.assertEquals(plain, otherPlain);
Assert.assertFalse(plain.equals(changed));
Assert.assertFalse(changed.equals(plain));
Assert.assertFalse(plain.equals(changed2));
Assert.assertFalse(changed2.equals(plain));
// The activeBugCategorySet doesn't matter for equals(), only
// the hiddenBugCategorySet does (along with minPriority and
// displayFalseWarnings) so 'plain' and 'changed3' should test equal.
Assert.assertTrue(plain.equals(changed3));
Assert.assertTrue(changed3.equals(plain));
Assert.assertFalse(plain.equals(changed4));
Assert.assertFalse(changed4.equals(plain));
}
public void testEncodeDecode() {
ProjectFilterSettings copyOfPlain =
ProjectFilterSettings.fromEncodedString(plain.toEncodedString());
ProjectFilterSettings.hiddenFromEncodedString(copyOfPlain, plain.hiddenToEncodedString());
Assert.assertEquals(plain, copyOfPlain);
ProjectFilterSettings copyOfChanged4 =
ProjectFilterSettings.fromEncodedString(changed4.toEncodedString());
ProjectFilterSettings.hiddenFromEncodedString(copyOfChanged4, changed4.hiddenToEncodedString());
Assert.assertEquals(changed4, copyOfChanged4);
}
public void testDisplayFalseWarnings() {
Assert.assertEquals(plain, otherPlain);
Assert.assertFalse(plain.displayFalseWarnings());
plain.setDisplayFalseWarnings(true);
Assert.assertFalse(plain.equals(otherPlain));
ProjectFilterSettings copyOfPlain =
ProjectFilterSettings.fromEncodedString(plain.toEncodedString());
Assert.assertTrue(copyOfPlain.displayFalseWarnings());
Assert.assertEquals(copyOfPlain, plain);
Assert.assertEquals(plain, copyOfPlain);
}
}
// vim:ts=4