static void Main(string[] args) { IOrologio orologio = new Orologio(); orologio.Accendi(); Console.WriteLine("Avvio il timer e mi metto in attesa per 2 secondi..."); orologio.Avvia(); Thread.Sleep(2000); //Il tempo di attesa va indicato in millisecondi Console.WriteLine($"Il tempo residuo e' di: {orologio.TempoResiduoGiocatore1}"); Console.ReadKey(); }
public void QuandoIlTempoRiprendeSoloBiancoAvanza() { //Given IOrologio orologio1 = new Orologio(); orologio1.Accendi(); orologio1.Avvia(); orologio1.Pausa(); TimeSpan primaLetturaBianco = orologio1.TempoResiduoBianco; TimeSpan primaLetturaNero = orologio1.TempoResiduoNero; //When orologio1.Avvia(); Thread.Sleep(attesa); //Then Assert.InRange(orologio1.TempoResiduoBianco, primaLetturaBianco - attesa - tolleranza, primaLetturaBianco - attesa); //Assert.Equal(primaLetturaNero, orologio1.TempoResiduoNero); Assert.True(primaLetturaNero == orologio1.TempoResiduoNero); }
public void QuandoAvvioSenzaAccendereDeveVerificarsiUnEccezione() { //Given IOrologio orologio1 = new Orologio(); //When //Then Assert.Throws(typeof(InvalidOperationException), () => { orologio1.Avvia(); }); }
static void Main(string[] args) { //SimpleXUnitRunner.SimpleXUnit.RunTests(); IOrologio orologio = new Orologio(TimeSpan.FromSeconds(5)); //orologio.TempoScaduto += notificaSconfitta; orologio.Accendi(); orologio.Avvia(); Console.ReadKey(); }
static void Main(string[] args) { // SimpleXUnitRunner.SimpleXUnit.RunTests(); IOrologio orologio = new Orologio(); orologio.Accendi(); orologio.Avvia(); orologio.TempoScaduto += NotificaSconfitta; Console.ReadKey(); //La sottoscrizione all'evento TempoScaduto è stata spostata //in un test in OrologioTest.cs (vedi in fondo al file, riga 180) }
public void QuandoSiAvviaAlloraIlTempoDeveAvanzarePerBianco() { //Given IOrologio orologio1 = new Orologio(); orologio1.Accendi(); //When orologio1.Avvia(); Thread.Sleep(attesa); //Then Assert.InRange(orologio1.TempoResiduoBianco, orologio1.TempoIniziale - attesa - tolleranza, orologio1.TempoIniziale - attesa); }
static void Main(string[] args) { //SimpleXUnitRunner.SimpleXUnit.RunTests(); IOrologio orologio = new Orologio(TimeSpan.FromSeconds(5)); //L'evento va sottoscritto subito dopo aver creato l'oggetto orologio.TempoScaduto += (sender, colore) => { Console.WriteLine($"Il giocatore {colore} ha perso la partita, secondo l'orologio {sender}!"); }; orologio.Accendi(); orologio.Avvia(); Console.ReadKey(); }
public void QuandoInPausaIlTempoNonDeveAvanzare() { //Given IOrologio orologio1 = new Orologio(); orologio1.Accendi(); orologio1.Avvia(); Thread.Sleep(attesa); //When orologio1.Pausa(); TimeSpan primaLettura = orologio1.TempoResiduoBianco; Thread.Sleep(attesa); //Then Assert.Equal(primaLettura, orologio1.TempoResiduoBianco); }
public void QuandoIlTempoDiUnGiocatoreScendeAZeroDeveEssereSollevatoTempoScaduto() { //Given IOrologio orologio1 = new Orologio(TimeSpan.FromMilliseconds(50)); orologio1.Accendi(); orologio1.Avvia(); bool invocato = false; orologio1.TempoScaduto += (sender, arg1) => { invocato = true; }; //When Thread.Sleep(200); //Then Assert.True(invocato); }
public void QuandoBiancoPassaIlTurnoIlTempoAvanzaPerNero() { //Given IOrologio orologio1 = new Orologio(); orologio1.Accendi(); orologio1.Avvia(); //When orologio1.FineTurno(); Thread.Sleep(attesa); //Then Assert.InRange(orologio1.TempoResiduoBianco, orologio1.TempoIniziale - tolleranza, orologio1.TempoIniziale); Assert.InRange(orologio1.TempoResiduoNero, orologio1.TempoIniziale - attesa - tolleranza, orologio1.TempoIniziale - attesa); }
public void SulResetSiRicominciaDalTempoIniziale() { //Given IOrologio orologio1 = new Orologio(); orologio1.Accendi(); orologio1.Avvia(); Thread.Sleep(attesa); orologio1.FineTurno(); Thread.Sleep(attesa); orologio1.FineTurno(); Thread.Sleep(attesa); //When orologio1.Reset(); Thread.Sleep(1); //Then Assert.Equal(orologio1.TempoResiduoBianco, orologio1.TempoIniziale); Assert.Equal(orologio1.TempoResiduoNero, orologio1.TempoIniziale); }
public void TempoScadutoDeveNotificareTuttiISuoiSottoscrittori() { //Given IOrologio orologio = new Orologio(TimeSpan.FromMilliseconds(50)); orologio.Accendi(); orologio.Avvia(); orologio.TempoScaduto += NotificaSconfitta; //Oltre che sottoscrivere un evento con un metodo, posso anche indicare una lambda expression orologio.TempoScaduto += (sender, colore) => { sottoscrittoriInvocati++; }; //When Thread.Sleep(TimeSpan.FromMilliseconds(200)); //Then //Mi aspetto che vengano invocati entrambi i metodi che ho sottoscritto all'evento //1. Il metodo NotificaSconfitta definito in questa classe //2. La lambda expression (che è un metodo anonimo) Assert.Equal(2, sottoscrittoriInvocati); }
static void Main(string[] args) { //SimpleXUnitRunner.SimpleXUnit.RunTests(); IOrologio orologio = new Orologio(TimeSpan.FromSeconds(5)); orologio.Accendi(); orologio.Avvia(); orologio.TempoScaduto += NotificaSconfitta; //Oltre che sottoscrivere un evento con un metodo, posso anche indicare una lambda expression EventHandler <Colore> notificaSconfitta = (sender, colore) => { Console.WriteLine($"(Dalla lambda expression): Il giocatore {colore} ha perso la partita, secondo l'orologio {sender}!"); }; orologio.TempoScaduto += notificaSconfitta; Console.ReadKey(); }