コード例 #1
0
ファイル: Program.cs プロジェクト: Markal03/UnicamScacchi
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        public void QuandoAvvioSenzaAccendereDeveVerificarsiUnEccezione()
        {
            //Given
            IOrologio orologio1 = new Orologio();

            //When

            //Then
            Assert.Throws(typeof(InvalidOperationException), () => {
                orologio1.Avvia();
            });
        }
コード例 #4
0
        static void Main(string[] args)
        {
            //SimpleXUnitRunner.SimpleXUnit.RunTests();
            IOrologio orologio = new Orologio(TimeSpan.FromSeconds(5));

            //orologio.TempoScaduto += notificaSconfitta;


            orologio.Accendi();
            orologio.Avvia();
            Console.ReadKey();
        }
コード例 #5
0
        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)
        }
コード例 #6
0
        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);
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: dartfagnans/UnicamScacchi
        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();
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: eduardo1988/UnicamScacchi
        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();
        }