Пример #1
0
        public void StatusIsStopoedWhenFinished()
        {
            var songPlayer = new SongPlayer(SmallSample, GtTimeSignature.Time4x4);

            try
            {
                songPlayer.Play();

                Assert.AreEqual(SongPlayerStatus.Playing, songPlayer.Status);

                //wait until the status change to Stopped
                int i = 0;
                while (songPlayer.Status != SongPlayerStatus.Stopped)
                {
                    Thread.Sleep(200);

                    i++;
                    if (i > 50) //after 10seg the test fail
                    {
                        Assert.Fail("The song didn't stoped at the end.");
                    }
                }

                Assert.AreEqual(SongPlayerStatus.Stopped, songPlayer.Status);
            }
            finally
            {
                songPlayer.Dispose();
            }
        }
Пример #2
0
        public void PlayReallyWorks()
        {
            var songPlayer = new SongPlayer(MP3MattRedman, GtTimeSignature.Time4x4);

            try
            {
                songPlayer.Play();
                Assert.AreEqual(SongPlayerStatus.Playing, songPlayer.Status);

                var position = songPlayer.CurrentPosition;

                int i = 0;
                while (i++ < 5)
                {
                    Thread.Sleep(100);

                    //Trace.TraceWarning(string.Format("PlayReallyWorks: CurrentPositionAsSeconds = {0}.", songPlayer.CurrentPositionAsSeconds));
                    Assert.Greater(songPlayer.CurrentPosition, position);

                    position = songPlayer.CurrentPosition;
                }
            }
            finally
            {
                songPlayer.Dispose();
            }
        }
Пример #3
0
        //[Test]
        //public void LogOfTicksAndBeats()
        //{
        //    var songPlayer = new SongPlayer(Matt_4Beats, GtTimeSignature.Time4x4);
        //    try
        //    {
        //        this.fTickNotificationList.Clear();

        //        //This event will populate this.fTickNotificationList with all tick notification.
        //        songPlayer.TickNotifyEvent += new TickNotifyEvent(HandleTickNotifyEventForTest);

        //        songPlayer.Play();

        //        //wait for the song's end
        //        while (songPlayer.Status != SongPlayerStatus.Stopped)
        //        {
        //            Thread.Sleep(1);
        //        }

        //        //Prepare the expected list of tick notifications
        //        var beatsTicksExpected = PrepareExpectedTicksList();

        //        //trace...
        //        //for (int i = 0; i < beatsTicksExpected.Count; i++)
        //        //{
        //        //    string description = string.Format("Excpected {0}:{1} and found {2}:{3}",
        //        //        beatsTicksExpected[i].Beat, beatsTicksExpected[i].Tick,
        //        //        fTickNotificationList[i].Beat, fTickNotificationList[i].Tick);

        //        //    Trace.TraceInformation(description);
        //        //}

        //        Assert.AreEqual(beatsTicksExpected.Count, fTickNotificationList.Count);

        //        for (int i = 0; i < beatsTicksExpected.Count; i++)
        //        {
        //            string description = string.Format("Excpected {0}:{1} but was found {2}:{3}",
        //                beatsTicksExpected[i].Beat, beatsTicksExpected[i].Tick,
        //                fTickNotificationList[i].Beat, fTickNotificationList[i].Tick);

        //            Assert.AreEqual(beatsTicksExpected[i].Beat, fTickNotificationList[i].Beat, description);
        //            Assert.AreEqual(beatsTicksExpected[i].Tick, fTickNotificationList[i].Tick, description);
        //        }
        //    }
        //    finally
        //    {
        //        songPlayer.Dispose();
        //    }
        //}

        //private List<BeatTick> PrepareExpectedTicksList()
        //{
        //    var beatsTicksExpected = new List<BeatTick>();

        //    for (int beat = 1; beat <= 4; beat++)
        //    {
        //        for (int tick = 0; tick <= 470; tick += 40)
        //        {
        //            beatsTicksExpected.Add(new BeatTick()
        //            {
        //                Beat = beat,
        //                Tick = tick
        //            });
        //        }
        //    }

        //    //Remove the 1:0 (the event isn't fired for the position 0. So the first one is the 1:10)
        //    //beatsTicksExpected.RemoveAt(0);

        //    //Add the 5:0 (the last tick notification)
        //    beatsTicksExpected.Add(new BeatTick()
        //    {
        //        Beat = 5,
        //        Tick = 0
        //    });

        //    return beatsTicksExpected;
        //}

        //This test is too slow (full music).
        //[Test]
        public void NumberOfBeatsPlayed_CompleteSong()
        {
            var songPlayer = new SongPlayer(MP3MattRedman, GtTimeSignature.Time4x4);

            try
            {
                this.fNumberOfBeats = 0;

                //This event will increase the numberOfBeats for each new beat, and play the click sample
                songPlayer.TickNotifyEvent += new TickNotifyEvent(HandleTickNotifyEventForTest);

                songPlayer.Play();

                //wait for the song's end
                while (songPlayer.Status != SongPlayerStatus.Stopped)
                {
                    Thread.Sleep(1);
                }

                Assert.AreEqual(721, this.fNumberOfBeats);
            }
            finally
            {
                songPlayer.Dispose();
            }
        }
Пример #4
0
        public void PlayAndPauseAndPlay()
        {
            var songPlayer = new SongPlayer(MP3MattRedman, GtTimeSignature.Time4x4);

            try
            {
                songPlayer.Play();
                Thread.Sleep(100);

                songPlayer.Pause();
                var currentPosition = songPlayer.CurrentPosition;

                Thread.Sleep(100);

                Assert.AreEqual(SongPlayerStatus.Paused, songPlayer.Status);

                //Is really paused
                Assert.AreEqual(currentPosition, songPlayer.CurrentPosition);

                //start again from the paused point
                songPlayer.Play();
                Thread.Sleep(100);

                Assert.AreEqual(SongPlayerStatus.Playing, songPlayer.Status);
                Assert.Greater(songPlayer.CurrentPosition, currentPosition);
            }
            finally
            {
                songPlayer.Dispose();
            }
        }
Пример #5
0
        public void Play()
        {
            var songPlayer = new SongPlayer(MP3MattRedman, GtTimeSignature.Time4x4);

            try
            {
                songPlayer.Play();
                Assert.AreEqual(SongPlayerStatus.Playing, songPlayer.Status);
            }
            finally
            {
                songPlayer.Stop();
                songPlayer.Dispose();
            }
        }
Пример #6
0
        public void MusicDuration()
        {
            var songPlayer = new SongPlayer(MP3MattRedman, GtTimeSignature.Time4x4);

            try
            {
                songPlayer.LoadStream();
                var duration = songPlayer.DurationAsSeconds;

                //Test the song duration with 1 second of tolerance (duration is not integer)
                Assert.LessOrEqual(0, Math.Abs(duration - 309)); //309 seg = 5min 9seg (this song according MediaPlayer)
                Assert.Greater(1, Math.Abs(duration - 309));
            }
            finally
            {
                songPlayer.Dispose();
            }
        }
Пример #7
0
        public void PlayAndStop()
        {
            var songPlayer = new SongPlayer(MP3MattRedman, GtTimeSignature.Time4x4);

            try
            {
                songPlayer.Play();
                Assert.AreEqual(SongPlayerStatus.Playing, songPlayer.Status);

                Thread.Sleep(100);

                songPlayer.Stop();
                Assert.AreEqual(SongPlayerStatus.Stopped, songPlayer.Status);
                Assert.AreEqual(0, songPlayer.CurrentPosition);
            }
            finally
            {
                songPlayer.Dispose();
            }
        }
Пример #8
0
        public void PlayAndStopAndPlay()
        {
            var songPlayer = new SongPlayer(MP3MattRedman, GtTimeSignature.Time4x4);

            try
            {
                songPlayer.Play();

                Thread.Sleep(100);
                var currentPosition = songPlayer.CurrentPosition;

                songPlayer.Stop();

                //start again from the beggining
                songPlayer.Play();

                Assert.AreEqual(SongPlayerStatus.Playing, songPlayer.Status);
                Assert.Less(songPlayer.CurrentPosition, currentPosition);
            }
            finally
            {
                songPlayer.Dispose();
            }
        }