import java.util.List; import formula1.Campionato; import formula1.GP; import formula1.Pilota; import formula1.Tempo; import formula1.TempoNonValido; import junit.framework.TestCase; /** * @author Marco Torchiano * */ public class TestR3_Tempi extends TestCase { private static String t2s(int hours, int min, int sec, int cent){ return hours+":"+min+":"+sec+"."+cent; } public void testAssegnaTempo() throws TempoNonValido{ Campionato c=new Campionato(); String nome = "Imola"; GP gp = c.definisciGranPremio(nome); Pilota r = c.creaPilota("Barrichello"); Pilota d = c.creaPilota("Coulthard"); int hours = 0; int min = 50; int sec = 10; int cent = 33; Tempo t = c.setTempo(gp,r,hours,min,sec,cent); assertTrue("setTempo() ha restituito null",t!=null); String result = t.toString(); String expected = "0:50:10.33"; assertEquals(expected,result); } public void testTempoNonValido() { Campionato c=new Campionato(); GP gp = c.definisciGranPremio("Monza"); Pilota r = c.creaPilota("Barrichello"); int hours = 0; int min = 50; int sec = 10; int cent = 33; try{ c.setTempo(gp,r,hours,min+15,sec,cent); fail(t2s(hours,min+15,sec,cent)+" non dovrebbe essere valido"); }catch(TempoNonValido t){assertTrue(true);} try{ c.setTempo(gp,r,hours,min-55,sec,cent); fail(t2s(hours,min-55,sec,cent)+" non dovrebbe essere valido"); }catch(TempoNonValido t){assertTrue(true);} try{ c.setTempo(gp,r,hours,min,sec-12,cent); fail(t2s(hours,min,sec-12,cent)+" non dovrebbe essere valido"); }catch(TempoNonValido t){assertTrue(true);} try{ c.setTempo(gp,r,hours,min,sec+60,cent); fail(t2s(hours,min,sec+60,cent)+" non dovrebbe essere valido"); }catch(TempoNonValido t){assertTrue(true);} try{ c.setTempo(gp,r,hours,min,sec,cent+100); fail(t2s(hours,min,sec,cent+100)+" non dovrebbe essere valido"); }catch(TempoNonValido t){assertTrue(true);} try{ c.setTempo(gp,r,hours,min,sec,cent-40); fail(t2s(hours,min,sec,cent-40)+" non dovrebbe essere valido"); }catch(TempoNonValido t){assertTrue(true);} } public void testOrdineArrivo() throws TempoNonValido{ Campionato c=new Campionato(); String nome = "Imola"; GP gp = c.definisciGranPremio(nome); Pilota r = c.creaPilota("Barrichello"); Pilota d = c.creaPilota("Coulthard"); int hours = 0; int min = 50; int sec = 10; int cent = 33; c.setTempo(gp,r,hours,min,sec,cent); sec+=15; c.setTempo(gp,d,hours,min,sec,cent); List ordine = gp.getOrdineArrivo(); assertSame("La prima posizione è errata",r,ordine.get(0)); assertSame("La seconda posizione è errata",d,ordine.get(1)); } }