package de.saring.util.gui.javafx; import de.saring.util.unitcalc.FormatUtils; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import java.util.Locale; import static org.junit.Assert.assertEquals; /** * Unit tests of class SpeedToStringConverter. * * @author Stefan Saring */ public class SpeedToStringConverterTest { private static Locale defaultLocale; /** * Set default locale to GERMAN, because the number validation tests are locale dependent. */ @BeforeClass public static void initLocale() { defaultLocale = Locale.getDefault(); Locale.setDefault(Locale.GERMAN); } /** * Reset default locale to previous value. */ @AfterClass public static void resetLocale() { Locale.setDefault(defaultLocale); } /** * Tests of method toString() when using SpeedView DistancePerHour. */ @Test public void testToStringDistancePerHour() { final SpeedToStringConverter CONVERTER = new SpeedToStringConverter(new FormatUtils(null, FormatUtils.SpeedView.DistancePerHour)); assertEquals("", CONVERTER.toString(null)); assertEquals("0", CONVERTER.toString(0)); assertEquals("24,3", CONVERTER.toString(24.3f)); assertEquals("12.345,679", CONVERTER.toString(12345.6789f)); // must round the 3. digit } /** * Tests of method toString() when using SpeedView MinutesPerDistance. */ @Test public void testToStringMinutesPerDistance() { final SpeedToStringConverter CONVERTER = new SpeedToStringConverter(new FormatUtils(null, FormatUtils.SpeedView.MinutesPerDistance)); assertEquals("", CONVERTER.toString(null)); assertEquals("00:00", CONVERTER.toString(0)); assertEquals("03:00", CONVERTER.toString(20f)); assertEquals("02:30", CONVERTER.toString(24f)); assertEquals("00:29", CONVERTER.toString(123.456f)); } /** * Tests of method fromString() when using SpeedView DistancePerHour. */ @Test public void testFromStringDistancePerHour() { final SpeedToStringConverter CONVERTER = new SpeedToStringConverter(new FormatUtils(null, FormatUtils.SpeedView.DistancePerHour)); assertEquals(-1f, CONVERTER.fromString(null).floatValue(), 0.0001f); assertEquals(-1f, CONVERTER.fromString("").floatValue(), 0.0001f); assertEquals(-1f, CONVERTER.fromString("A1").floatValue(), 0.0001f); assertEquals(0f, CONVERTER.fromString("0").floatValue(), 0.0001f); assertEquals(20f, CONVERTER.fromString("20").floatValue(), 0.0001f); assertEquals(12345.678f, CONVERTER.fromString("12.345,678").floatValue(), 0.0001f); } /** * Tests of method fromString() when using SpeedView MinutesPerDistance. */ @Test public void testFromStringMinutesPerDistance() { final SpeedToStringConverter CONVERTER = new SpeedToStringConverter(new FormatUtils(null, FormatUtils.SpeedView.MinutesPerDistance)); assertEquals(-1f, CONVERTER.fromString(null).floatValue(), 0.0001f); assertEquals(-1f, CONVERTER.fromString("").floatValue(), 0.0001f); assertEquals(-1f, CONVERTER.fromString("A1").floatValue(), 0.0001f); assertEquals(-1f, CONVERTER.fromString("0:0").floatValue(), 0.0001f); assertEquals(-1f, CONVERTER.fromString("2:2").floatValue(), 0.0001f); assertEquals(0f, CONVERTER.fromString("00:00").floatValue(), 0.0001f); assertEquals(30f, CONVERTER.fromString("02:00").floatValue(), 0.0001f); assertEquals(24f, CONVERTER.fromString("02:30").floatValue(), 0.0001f); assertEquals(124.138f, CONVERTER.fromString("00:29").floatValue(), 0.001f); } }