package hudson.plugins.crap4j.calculation;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import junit.framework.TestCase;
public class HealthBuilderTest extends TestCase {
public HealthBuilderTest() {
super();
}
public void testIllegalThresholdsZero() {
try {
new HealthBuilder(0.0d);
fail();
} catch (IllegalArgumentException e) {
assertEquals("The threshold needs to be positive, and not 0.0", e.getMessage());
}
}
public void testIllegalThresholdsNegative() {
try {
new HealthBuilder(-1.0d);
fail();
} catch (IllegalArgumentException e) {
assertEquals("The threshold needs to be positive, and not -1.0", e.getMessage());
}
}
public void testInstantiation() {
HealthBuilder builder = new HealthBuilder(10.0d);
assertEquals(10.0d, builder.getThreshold(), 1E-9);
}
public void testDefaultThreshold() {
HealthBuilder builder = new HealthBuilder();
assertEquals(15.0d, builder.getThreshold(), 1E-9);
}
public void testHealthCalculation() throws Exception {
HealthBuilder builder = new HealthBuilder();
assertEquals(0.0d, builder.calculateHealthOf(25.0d), 1E-6);
assertEquals(0.0d, builder.calculateHealthOf(15.0d), 1E-6);
assertEquals(100.0d, builder.calculateHealthOf(0.0d), 1E-6);
assertEquals(50.0d, builder.calculateHealthOf(7.5d), 1E-6);
assertEquals(10.0d, builder.calculateHealthOf(13.5d), 1E-6);
assertEquals(90.0d, builder.calculateHealthOf(1.5d), 1E-6);
}
public void testHealthCalculationWithCustomThreshold() throws Exception {
HealthBuilder builder = new HealthBuilder(10.0d);
assertEquals(0.0d, builder.calculateHealthOf(25.0d), 1E-6);
assertEquals(0.0d, builder.calculateHealthOf(15.0d), 1E-6);
assertEquals(100.0d, builder.calculateHealthOf(0.0d), 1E-6);
assertEquals(25.0d, builder.calculateHealthOf(7.5d), 1E-6);
assertEquals(0.0d, builder.calculateHealthOf(13.5d), 1E-6);
assertEquals(85.0d, builder.calculateHealthOf(1.5d), 1E-6);
}
public void testHealthSummary() throws Exception {
HealthBuilder builder = new HealthBuilder();
Locale oldDefault = Locale.getDefault();
try {
Locale.setDefault(Locale.ENGLISH);
assertEquals("132 crappy methods (7.96%)", Messages.HealthBuilder_HealthSummary(132, 7.96d));
assertEquals("0 crappy methods (0%)", Messages.HealthBuilder_HealthSummary(0, 0.0d));
assertEquals("1 crappy methods (0.02%)", Messages.HealthBuilder_HealthSummary(1, 0.02d));
} finally {
Locale.setDefault(oldDefault);
}
}
}