[longomatch] Add more unit tests for the player controller
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Add more unit tests for the player controller
- Date: Tue, 31 Mar 2015 17:34:50 +0000 (UTC)
commit c43409e8881a5f1e2dd121447ccccf72cc7eac64
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Wed Mar 25 19:09:51 2015 +0100
Add more unit tests for the player controller
Tests/Services/TestPlayerController.cs | 94 +++++++++++++++++++++++++++++++-
1 files changed, 93 insertions(+), 1 deletions(-)
---
diff --git a/Tests/Services/TestPlayerController.cs b/Tests/Services/TestPlayerController.cs
index 550d73e..e797b91 100644
--- a/Tests/Services/TestPlayerController.cs
+++ b/Tests/Services/TestPlayerController.cs
@@ -79,6 +79,12 @@ namespace Tests.Services
player = new PlayerController ();
}
+ [TearDown ()]
+ public void TearDown ()
+ {
+ player.Dispose ();
+ }
+
void PreparePlayer ()
{
player.CamerasVisible = new List<int> { 0, 1 };
@@ -350,6 +356,7 @@ namespace Tests.Services
public void TestStepping ()
{
int timeChanged = 0;
+ int loadDrawingsChanged = 0;
Time curTime = new Time (0);
Time strLenght = new Time (0);
@@ -361,18 +368,103 @@ namespace Tests.Services
curTime = c;
strLenght = d;
};
+ player.LoadDrawingsEvent += (f) => {
+ if (f == null) {
+ loadDrawingsChanged++;
+ }
+ };
+
+ /* Without a segment loaded */
player.SeekToNextFrame ();
playerMock.Verify (p => p.SeekToNextFrame (), Times.Once ());
+ Assert.AreEqual (1, loadDrawingsChanged);
Assert.AreEqual (1, timeChanged);
Assert.AreEqual (currentTime, curTime);
Assert.AreEqual (streamLength, strLenght);
+ loadDrawingsChanged = 0;
+ timeChanged = 0;
player.SeekToPreviousFrame ();
playerMock.Verify (p => p.SeekToPreviousFrame (), Times.Once ());
- Assert.AreEqual (2, timeChanged);
+ Assert.AreEqual (1, loadDrawingsChanged);
+ Assert.AreEqual (1, timeChanged);
Assert.AreEqual (currentTime, curTime);
Assert.AreEqual (streamLength, strLenght);
+
+ playerMock.ResetCalls ();
+ loadDrawingsChanged = 0;
+ timeChanged = 0;
+ player.StepForward ();
+ Assert.AreEqual (1, loadDrawingsChanged);
+ Assert.AreEqual (1, timeChanged);
+ playerMock.Verify (p => p.Seek (currentTime + player.Step, true, false), Times.Once
());
+
+ playerMock.ResetCalls ();
+ loadDrawingsChanged = 0;
+ timeChanged = 0;
+ player.StepBackward ();
+ Assert.AreEqual (1, loadDrawingsChanged);
+ Assert.AreEqual (1, timeChanged);
+ playerMock.Verify (p => p.Seek (currentTime - player.Step, true, false), Times.Once
());
+
+ /* Now with an image loaded */
+ playerMock.ResetCalls ();
+ loadDrawingsChanged = 0;
+ timeChanged = 0;
+ player.LoadPlaylistEvent (playlist, plImage);
+ player.SeekToNextFrame ();
+ playerMock.Verify (p => p.SeekToNextFrame (), Times.Never ());
+ Assert.AreEqual (0, loadDrawingsChanged);
+ Assert.AreEqual (0, timeChanged);
+
+ player.SeekToPreviousFrame ();
+ playerMock.Verify (p => p.SeekToPreviousFrame (), Times.Never ());
+ Assert.AreEqual (0, loadDrawingsChanged);
+ Assert.AreEqual (0, timeChanged);
+
+ player.StepForward ();
+ Assert.AreEqual (0, loadDrawingsChanged);
+ Assert.AreEqual (0, timeChanged);
+ playerMock.Verify (p => p.Seek (currentTime + player.Step, true, false), Times.Never
());
+
+ player.StepBackward ();
+ Assert.AreEqual (0, loadDrawingsChanged);
+ Assert.AreEqual (0, timeChanged);
+ playerMock.Verify (p => p.Seek (currentTime - player.Step, true, false), Times.Never
());
+ }
+
+ [Test ()]
+ public void TestChangeFramerate ()
+ {
+ float rate = 1;
+
+ playerMock.Object.Rate = 1;
+ player.PlaybackRateChangedEvent += (r) => rate = r;
+
+ for (int i = 1; i < 5; i++) {
+ player.FramerateUp ();
+ playerMock.VerifySet (p => p.Rate = 1 + i);
+ Assert.AreEqual (1 + i, rate);
+ }
+ /* Max is 5 */
+ Assert.AreEqual (5, player.Rate);
+ player.FramerateUp ();
+ playerMock.VerifySet (p => p.Rate = 5);
+ Assert.AreEqual (5, rate);
+
+ player.Rate = 1;
+ for (int i = 1; i < 25; i++) {
+ player.FramerateDown ();
+ double _rate = player.Rate;
+ playerMock.VerifySet (p => p.Rate = _rate);
+ Assert.AreEqual (1 - (double)i / 25, rate, 0.01);
+ }
+
+ /* Min is 1 / 30 */
+ Assert.AreEqual ((double)1 / 25, player.Rate, 0.01);
+ player.FramerateDown ();
+ Assert.AreEqual ((double)1 / 25, player.Rate, 0.01);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]