public void TestParse() { var expectedSubs = new SubtitleTrackInfo { TrackEvents = new List<SubtitleTrackEvent> { new SubtitleTrackEvent { Id = "1", StartPositionTicks = 24000000, EndPositionTicks = 72000000, Text = "Senator, we're <br />making our final <br />approach into Coruscant." }, new SubtitleTrackEvent { Id = "2", StartPositionTicks = 97100000, EndPositionTicks = 133900000, Text = "Very good, Lieutenant." }, new SubtitleTrackEvent { Id = "3", StartPositionTicks = 150400000, EndPositionTicks = 180400000, Text = "It's <br />a <br />trap!" } } }; var sut = new SsaParser(); var stream = File.OpenRead(@"MediaEncoding\Subtitles\TestSubtitles\data.ssa"); var result = sut.Parse(stream, CancellationToken.None); Assert.IsNotNull(result); Assert.AreEqual(expectedSubs.TrackEvents.Count,result.TrackEvents.Count); for (int i = 0; i < expectedSubs.TrackEvents.Count; i++) { Assert.AreEqual(expectedSubs.TrackEvents[i].Id, result.TrackEvents[i].Id); Assert.AreEqual(expectedSubs.TrackEvents[i].StartPositionTicks, result.TrackEvents[i].StartPositionTicks); Assert.AreEqual(expectedSubs.TrackEvents[i].EndPositionTicks, result.TrackEvents[i].EndPositionTicks); Assert.AreEqual(expectedSubs.TrackEvents[i].Text, result.TrackEvents[i].Text); } }
private bool TryGetReader(string format, [NotNullWhen(true)] out ISubtitleParser?value) { if (string.Equals(format, SubtitleFormat.SRT, StringComparison.OrdinalIgnoreCase)) { value = new SrtParser(_logger); return(true); } if (string.Equals(format, SubtitleFormat.SSA, StringComparison.OrdinalIgnoreCase)) { value = new SsaParser(_logger); return(true); } if (string.Equals(format, SubtitleFormat.ASS, StringComparison.OrdinalIgnoreCase)) { value = new AssParser(_logger); return(true); } value = null; return(false); }