}
internal static readonly MediaUriSource StreamingSource = new MediaUriSource(PreconditionUtils.STREAMING_URI);
+ private const long Unit = 1_000_000; /* 1 Millisecond = 1,000,000 Nanoseconds */
+ private static long ConvertMillisecondsToNanoseconds(int milliseconds) => milliseconds * Unit;
+
[Test]
[Category("P1")]
[Description("Player instantiation")]
{
var player = await GetPreparedPlayer();
- Assert.That(player.GetPlayPositionNanoseconds(), Is.Zero);
+ long val1 = ConvertMillisecondsToNanoseconds(1000);
+ long val2 = ConvertMillisecondsToNanoseconds(5000);
- await player.SetPlayPositionNanosecondsAsync(100000000, true);
+ Assert.That(player.GetPlayPositionNanoseconds(), Is.Zero);
- Assert.That(player.GetPlayPositionNanoseconds(), Is.EqualTo(100000000));
+ await player.SetPlayPositionNanosecondsAsync(val1, true);
- await player.SetPlayPositionNanosecondsAsync(500000000, true);
+ long diff = Math.Abs(val1 - player.GetPlayPositionNanoseconds());
+ Assert.That(diff, Is.LessThan(Unit), $"PlayPosition difference is too big : { diff }");
- Assert.That(player.GetPlayPositionNanoseconds(), Is.EqualTo(500000000));
+ await player.SetPlayPositionNanosecondsAsync(val2, true);
+ diff = Math.Abs(val2 - player.GetPlayPositionNanoseconds());
+ Assert.That(diff, Is.LessThan(Unit), $"PlayPosition difference is too big : { diff }");
}
[Test]
{
var player = await GetPreparedPlayer();
- const int targetPos = 7000000;
+ long targetPos = ConvertMillisecondsToNanoseconds(7000);
await player.SetPlayPositionNanosecondsAsync(targetPos, false);
- Assert.That(Math.Abs(targetPos - player.GetPlayPositionNanoseconds()), Is.LessThan(1000000),
+ Assert.That(Math.Abs(targetPos - player.GetPlayPositionNanoseconds()), Is.LessThan(Unit),
"The difference is too big.");
}
{
var player = await GetPreparedPlayer();
- const int targetPos = 7000000;
+ long targetPos = ConvertMillisecondsToNanoseconds(7000);
await player.SetPlayPositionNanosecondsAsync(targetPos, true);
- Assert.That(player.GetPlayPositionNanoseconds(), Is.EqualTo(targetPos));
+ Assert.That(Math.Abs(targetPos - player.GetPlayPositionNanoseconds()), Is.LessThan(Unit),
+ "The difference is too big.");
}
[Test]
{
var player = await GetPreparedPlayer();
- var task = await AsyncWrapper.Wrap(() => player.SetPlayPositionNanosecondsAsync(40000000000, false));
+ var task = await AsyncWrapper.Wrap(() => player.SetPlayPositionNanosecondsAsync(40_000_000_000, false));
Assert.That(() => task, Throws.TypeOf<ArgumentOutOfRangeException>());
}